<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ls /proc &#187; convention</title>
	<atom:link href="http://www.lsproc.com/blog/tag/convention/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lsproc.com/blog</link>
	<description>lsproc.com</description>
	<lastBuildDate>Fri, 21 May 2010 14:29:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>CakePHP 命名规则</title>
		<link>http://www.lsproc.com/blog/cakephp_conventions/</link>
		<comments>http://www.lsproc.com/blog/cakephp_conventions/#comments</comments>
		<pubDate>Tue, 30 Oct 2007 17:15:23 +0000</pubDate>
		<dc:creator>lostsnow</dc:creator>
				<category><![CDATA[Program&Database]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[convention]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://localhost/lost/blog/webdesign/cakephp_conventions/</guid>
		<description><![CDATA[转载时请标明文章原始出处和作者信息, 作者: lostsnow.http://www.lsproc.com/blog/cakephp_conventions/ 第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, [...]]]></description>
			<content:encoded><![CDATA[<p>转载时请标明文章原始出处和作者信息, 作者: <a href="http://www.lsproc.com/blog/">lostsnow</a>.<br /><a href="http://www.lsproc.com/blog/cakephp_conventions/">http://www.lsproc.com/blog/cakephp_conventions/</a></p>
<p>第1节 规则,嗯 ?</p>
<p>没错，规则。根据thefreedictionary:</p>
<p>1. 一般约定或者对特定的实践或态度的认可：根据规则，北方一直在地图的最上方。</p>
<p>2. 在一个组里，一个广泛遵守的实践或和过程，特别能促进社会交互；一种习惯：握手的规则。</p>
<p>3. 一种广泛被使用或被接受的设备或者技术，例如在小说，文学或者绘画里：旁白的戏剧规则。</p>
<p>Cake的规则会变魔法，称之为自动魔法。Cake让你的生产率提高到一个令你害怕的水平，但又不失灵活性。Cake的规则确实非常简单，而且直观。他们是从最佳实践里提炼出来的，而这些最佳实践是web开发人员在web开发领域里多年使用的实践。</p>
<p>第2节 文件名</p>
<p>文件名带有下划线。作为一般规则，如果你有一个MyNiftyClass类，那么在Cake里，它的文件应该命名为my_nifty_class.php。因此如果你找到一个小片段，你会自动知道：</p>
<p>1. 如果它是一个命名为KissesAndHugsController的Controller，那么它的文件名必须为kisses_and_hugs_controller.php(注意文件名中的_controller）。</p>
<p>2. 如果它是一个名为OptionValue的Model，那么它的文件名必须为option_value.php.</p>
<p>3. 如果它是一个名为MyHandyComponent的组件，那么它的文件名必须为my_handy.php(在文件名里不需要_component)</p>
<p>4. 如果它是一个名为BestHelperEver的Helper，那么它的文件名必须为best_heler_ever.php.</p>
<p>第3节 Model</p>
<p>1. Model的类名是单数。</p>
<p>2. Model类名中，单个单词的model为大写，多个单词的model是大写的骆驼峰。</p>
<p>实例: Person, Monkey, GlassDoor, LineItem, ReallyNiftyThing</p>
<p>3. 多对多的join表应该命名为: 按字母排列的第一个表的复数_按字母排列的第二个表的复数.例如: tags_users</p>
<p>4. Model文件名使用一个小写的带有下划线的语法。</p>
<p>实例: person.php, monkey.php, glass_door.php, line_item.php, really_nifty_thing.php</p>
<p>5. 与model相关联的表也使用小写的带有下划线的语法，但是他们是复数的。</p>
<p>实例: people, monkeys, glass_doors, line_items, really_nifty_things</p>
<p>CakePHP的命名规则意味着流线型的代码创建，并且让代码更加具有可读性。如果你想他遵循你的方式，你可以覆写它。</p>
<p>1. Model名：在你的Model定义里设置$name变量.</p>
<p>2. 与Model相关的数据库名:在你的Model定义里设置$useTable变量.</p>
<p>第4节 Controller</p>
<p>1. Controller名为复数。</p>
<p>2. 对于单个词的controller，类名为大写，多个词的为大写的骆驼峰。而且Controller类名以'Controller'结尾。</p>
<p>实例: PeopleController, MonkeysController, GlassDoorsController, LineItemsController, ReallyNiftyThingsController</p>
<p>3. Controller文件名采用小写的带有下划线的语法。Controller文件名也以'_controller'结尾，因此如果你有一个名为 PostsController的Controller，其文件名应该为posts_controller.php.</p>
<p>实例: people_controller.php, monkeys_controller.php, glass_doors_controller.php, line_items_controller.php, really_nifty_things_controller.php</p>
<p>4. 对于保护成员的可见性，controller动作名应该预加一个'-'.</p>
<p>5. 对于私有成员的可见性，controller动作名应该预加一个'--'.</p>
<p>第5节 View</p>
<p>1. view在他们显示的动作后命名。</p>
<p>2. 在动作名后命名view，小写。</p>
<p>实例: PeopleController::worldPeace() 期望一个在 /app/views/people/world_peace.thtml的view。 MonkeysController::banana() 期望一个在/app/views/monkeys/banana.thtml的view。</p>
<p>你可以在动作的结尾，调用$this->render('没有.thtml的view文件名')来强制一个动作render一个指定的view</p>
<p>第6节 Helper</p>
<p>1. Helper的类名是骆驼峰的，并以'Helper'结尾，文件名带有下划线。<br />
实例: 在/app/views/helpers/my_helper.php中类MyHelperHelper 扩展了Helper</p>
<p>使用var $helpers = array('Html','MyHelper')将它包含在controller里;在view里，你可以使用$myHelper->methods()l来访问。</p>
<p>第7节 Component</p>
<p>1. 组件的类名是骆驼峰的，并以'Component'结尾，文件名带有下划线。<br />
实例:在 /app/controllers/components/my_component.php里，类MyComponentComponent扩展了对象。</p>
<p>2.</p>
<p>使用$components = array('MyComponent')将它包含在Controller里。在Controller里，使用 $this->MyComponent->method()来访问</p>
<p>第8节 Vendor</p>
<p>vendor不遵循任何规则，原因非常明显：他们是第三方的代码，Cake没有对它们的控制权力。<br />
Last Updated:2006-12-05</p>
<p>From: <a href="http://www.cnblogs.com/confach/articles/577374.html">http://www.cnblogs.com/confach/articles/577374.html</a>
<p>-- EOF --</p>
<h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li>2007-11-13 -- <a href="http://www.lsproc.com/blog/cakephp_note/" title="Cakephp 笔记">Cakephp 笔记</a> (0)</li><li>2007-11-13 -- <a href="http://www.lsproc.com/blog/cakephp_callback_function/" title="Cakephp 的回调函数">Cakephp 的回调函数</a> (0)</li><li>2010-05-21 -- <a href="http://www.lsproc.com/blog/nginx_php_pathinfo_securit/" title="Nginx/PHP 文件类型错误解析漏洞：fix_pathinfo">Nginx/PHP 文件类型错误解析漏洞：fix_pathinfo</a> (2)</li><li>2010-04-12 -- <a href="http://www.lsproc.com/blog/nginx_userid_decode/" title="nginx userid 模块客户端 cookie 解码">nginx userid 模块客户端 cookie 解码</a> (0)</li><li>2010-03-08 -- <a href="http://www.lsproc.com/blog/use_ob_flush_on_nginx_fastcgi/" title="nginx+factcgi 下使用 ob_flush">nginx+factcgi 下使用 ob_flush</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.lsproc.com/blog/cakephp_conventions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
