CakePHP - the rapid development php framework

中文手册 Version1.0 Collected by Clove

回到目录

Cake的命名约定

Section 1 嗯?命名约定 ?

是的,命名约定。按照字典上的解释,Convention有如下意思:

Cake中的命名约定产生的魔法,我们称之为“自动魔法(automagic)”。我们对CoC的喜好自不必多言, Cake在没有丢失任何灵活性的情况下将使你的开发效率达到惊人的水平。Cake的命名约定真的非常简单和直观。它们萃取自有经验的web开发人员在web领域使用多年的最佳实践。

Section 2 文件的命名

文件名是带有下划线的。遵照一般规则,如果你有一个类MyNiftyClass,那么在Cake中包含这个类的文件必须命名为my_nifty_class.php。

因此如果你看到这些代码片断,你会很自然的发现:

   1.
      如果一个控制器(Controller)被命名为KissesAndHugsController,
      那么它的文件名必须为kisses_and_hugs_controller.php (注意文件名中的_controller)
      
   2.
      如果一个模型(Model)被命名为OptionValue,那么他的文件名必须为option_value.php
      
   3.
      如果一个组件(Component)被命名为MyHandyComponent,那么他的文件名必须为my_handy.php
      (文件名中不需要_component)
   
   4.
      如果一个Helper被命名为BestHelperEver,那么他的文件名必须为best_helper_ever.php
		

Section 3 Models

CakePHP命名约定是为了使代码的创建过程更加精简合理,且使代码具有更高的可读性。如果你发现前面2条已经掌握,你可以忽略。

Section 4 Controllers

在/app/config/core.php中还有那么一些高级选项可以供你使用,你可以利用它们使你的URL精巧地适应绝大多数情况。

Section 5 Views

你可以强制一个action提交到一个确定的view上,通过在你的action的结尾调用
$this->render('name_of_view_file_without_dot_thtml');
来实现

Section 6 Helpers

Helper类是以首字母大写以及Helper来结尾的方式命名的,文件名中要有下划线
        例如:class MyComponentComponent extends Object 在如下文件中 /app/controllers/components/my_component.php.

如果包含的controller中有如下语句:
var $helpers = array('Html','MyHelper') ;
那么在view中就可以进行这样的访问:
$myHelper->method()。

Section 7 Components

Component类名首字母要大写并以"Component"结尾,文件名则要下划线。
        例如:class MyHelperHelper extends Helper 在如下文件中 /app/views/helpers/my_helper.php.

如果包含的controller中有如下语句:
var $helpers = array('Html','MyHelper') ;
那么在view中就可以进行这样的访问:
$this->MyComponent->method()。

Section 8 Vendors

Vendors并不遵循任何的约定,原因很显然:它们是一些第三方的代码,Cake对它们没有任何影响力