Php 是否有命名控制器函数的约定?

Php 是否有命名控制器函数的约定?,php,codeigniter,naming-conventions,Php,Codeigniter,Naming Conventions,在MVC中,一些控制器函数需要在渲染视图之前访问模型,而另一些只是加载视图 在博客应用程序中,我有两个功能: public function add_post() { // loads the view for adding a new post } public function add_new_post() { // queries database and inserts post } 我习惯于使用Java,在Java中,所有方法都有一个高度提示性的动词来描述该方法应该

在MVC中,一些控制器函数需要在渲染视图之前访问模型,而另一些只是加载视图

在博客应用程序中,我有两个功能:

public function add_post()
{
    // loads the view for adding a new post
}

public function add_new_post()
{
    // queries database and inserts post
}
我习惯于使用Java,在Java中,所有方法都有一个高度提示性的动词来描述该方法应该做什么。因此,我将使用add_post_view()代替add_post(),并且可以使用add_post()代替add_new_post()


但我担心在末尾添加“视图”似乎是多余的——但除此之外,我想知道对于那些喜欢具有高度可读性代码的人来说,该约定是什么。您将如何重写这两个函数的名称

对于php,一般来说,没有专门的命名约定,或者应该说是标准化的。这些年来,我在几家公司工作,从这个IsmyFunction到这个IsmyFunction再到这个IsmyFunction,我都见过

不过,我个人的选择是,如果它的内部功能(模型或控制器等)不支持AJAX,我倾向于使用下划线方法,在每个函数下面或上面加上几个注释,让我有一个想法。但是对于我打算与AJAX一起使用的函数,比如在控制器中,我通常采用驼峰式的方法。一般来说,这都是关于你的偏好。如果你更喜欢下划线,那么就用驼峰格,或者任何适合你的


如果这将是一个团队项目,或者可能是一个团队加入的项目,或者你希望被收购的项目。我要说的是,从最简单的学习曲线来看,你最不想做的事情就是让其他人加入或销售一种产品,你必须花很长时间培训人们如何阅读你的代码。而不是收集和离开,或者让它们开始构建。

使用“精简”控制器是一种良好的做法,即不要在任何单个控制器上添加太多方法。考虑到这一点,我通常有一个名字很好的控制器,上面只有一个(两个max)公共方法。通常对应于GET和POST。

据我所知,CodeIgniter对此没有约定。我喜欢Rails做这件事的方式,在你的例子中可能是这样的:
new\u post
create\u post
edit\u post
update\u post
。不幸的是,仅仅使用
new
,是不可能的,因为这在PHP中是一个保留字。@misha我喜欢new_post和create_post之间的区别。一旦理解了惯例,编辑和更新帖子就完全有意义了。但这仍然给我带来了一个问题,因为新发布的帖子不是以动词开头的,编辑/更新可能会让那些不熟悉该惯例的人感到困惑。但我相信大多数程序员都能推断出update在某种程度上是指SQL中的update,因此这是一个不错的替代方案。啊,对不起,我没有注意到方法名必须以动词开头。那么,在这种情况下,您可以对视图执行
add_post
write_post
,并
create_post
insert_post
将其插入数据库