CakePHP 命名规则

第1节 规则,嗯 ?

没错,规则。根据thefreedictionary:

1. 一般约定或者对特定的实践或态度的认可:根据规则,北方一直在地图的最上方。

2. 在一个组里,一个广泛遵守的实践或和过程,特别能促进社会交互;一种习惯:握手的规则。

3. 一种广泛被使用或被接受的设备或者技术,例如在小说,文学或者绘画里:旁白的戏剧规则。

Cake的规则会变魔法,称之为自动魔法。Cake让你的生产率提高到一个令你害怕的水平,但又不失灵活性。Cake的规则确实非常简单,而且直观。他们是从最佳实践里提炼出来的,而这些最佳实践是web开发人员在web开发领域里多年使用的实践。

第2节 文件名

文件名带有下划线。作为一般规则,如果你有一个MyNiftyClass类,那么在Cake里,它的文件应该命名为my_nifty_class.php。因此如果你找到一个小片段,你会自动知道:

1. 如果它是一个命名为KissesAndHugsController的Controller,那么它的文件名必须为kisses_and_hugs_controller.php(注意文件名中的_controller)。

2. 如果它是一个名为OptionValue的Model,那么它的文件名必须为option_value.php.

3. 如果它是一个名为MyHandyComponent的组件,那么它的文件名必须为my_handy.php(在文件名里不需要_component)

4. 如果它是一个名为BestHelperEver的Helper,那么它的文件名必须为best_heler_ever.php.

第3节 Model

1. Model的类名是单数。

2. Model类名中,单个单词的model为大写,多个单词的model是大写的骆驼峰。

实例: Person, Monkey, GlassDoor, LineItem, ReallyNiftyThing

3. 多对多的join表应该命名为: 按字母排列的第一个表的复数_按字母排列的第二个表的复数.例如: tags_users

4. Model文件名使用一个小写的带有下划线的语法。

实例: person.php, monkey.php, glass_door.php, line_item.php, really_nifty_thing.php

5. 与model相关联的表也使用小写的带有下划线的语法,但是他们是复数的。

实例: people, monkeys, glass_doors, line_items, really_nifty_things

CakePHP的命名规则意味着流线型的代码创建,并且让代码更加具有可读性。如果你想他遵循你的方式,你可以覆写它。

1. Model名:在你的Model定义里设置$name变量.

2. 与Model相关的数据库名:在你的Model定义里设置$useTable变量.

第4节 Controller

1. Controller名为复数。

2. 对于单个词的controller,类名为大写,多个词的为大写的骆驼峰。而且Controller类名以'Controller'结尾。

实例: PeopleController, MonkeysController, GlassDoorsController, LineItemsController, ReallyNiftyThingsController

3. Controller文件名采用小写的带有下划线的语法。Controller文件名也以'_controller'结尾,因此如果你有一个名为 PostsController的Controller,其文件名应该为posts_controller.php.

实例: people_controller.php, monkeys_controller.php, glass_doors_controller.php, line_items_controller.php, really_nifty_things_controller.php

4. 对于保护成员的可见性,controller动作名应该预加一个'-'.

5. 对于私有成员的可见性,controller动作名应该预加一个'--'.

第5节 View

1. view在他们显示的动作后命名。

2. 在动作名后命名view,小写。

实例: PeopleController::worldPeace() 期望一个在 /app/views/people/world_peace.thtml的view。 MonkeysController::banana() 期望一个在/app/views/monkeys/banana.thtml的view。

你可以在动作的结尾,调用$this->render('没有.thtml的view文件名')来强制一个动作render一个指定的view

第6节 Helper

1. Helper的类名是骆驼峰的,并以'Helper'结尾,文件名带有下划线。
实例: 在/app/views/helpers/my_helper.php中类MyHelperHelper 扩展了Helper

使用var $helpers = array('Html','MyHelper')将它包含在controller里;在view里,你可以使用$myHelper->methods()l来访问。

第7节 Component

1. 组件的类名是骆驼峰的,并以'Component'结尾,文件名带有下划线。
实例:在 /app/controllers/components/my_component.php里,类MyComponentComponent扩展了对象。

2.

使用$components = array('MyComponent')将它包含在Controller里。在Controller里,使用 $this->MyComponent->method()来访问

第8节 Vendor

vendor不遵循任何规则,原因非常明显:他们是第三方的代码,Cake没有对它们的控制权力。
Last Updated:2006-12-05

From: http://www.cnblogs.com/confach/articles/577374.html

Tags: cakephp, convention, php

相关日志

If you enjoyed this post, please consider to leave a comment or subscribe to the feed and get future articles delivered to your feed reader.

Comments

还没有评论。

发表评论

(必填)

(必填)


*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word

Comment moderation is enabled. Your comment may take some time to appear.