Symfony2中的命名约定
Symfony2有著很多的命名約定,這一點大家可能在閱讀Symfony2Book中已經(jīng)看到了。那么Symfony2到底有多少命名約定呢,它們的命名約定分別是什么呢?由于Symfony2中不同組件的命名約定各不相同,所以很有必要將各種不同的命名約定都做一個梳理。下面是本人梳理出來的命名約定,如果在以后碰到這里沒有的會再繼續(xù)完善,也歡迎各位兄弟指出丟失的命名約定。
Bundle命名約定
Bundle還是一個PHP名稱空間。該名稱空間必須遵循PHP5.3名稱空間和類名的技術(shù)互操作性標(biāo)準:它由供應(yīng)商段開始,后面接著0或更多的類別段,結(jié)束是名稱空間的簡稱,必須以Bundle后綴結(jié)束。Bundle的類名必須遵循以下幾個簡單的規(guī)則:
- 只能用字母數(shù)字和下劃線;
- 使用駝峰命名法;
- 使用描述性的縮寫名(不多于2個單詞);
- 名稱的前綴為供應(yīng)商(或可選的類別名稱空間);
- 名稱必須以Bundle結(jié)尾。
如:
| Acme\Bundle\BlogBundle | AcmeBlogBundle |
| Acme\Bundle\Social\BlogBundle | AcmeSocialBlogBundle |
| Acme\BlogBundle | AcmeBlogBundle |
控制器命名約定
控制器類名必須遵循以下幾個簡單的規(guī)則:
- 使用駝峰命名法;
- 名稱必須以Controller結(jié)尾;
- 其方法必須以Action結(jié)尾;
在路由文件中控制器的命名約定如下:
例如,在路由中_controller參數(shù)值為AcmeBlogBundle:Blog:show,那么它所代表的是:
?
| AcmeBlogBundle | BlogController | showAction |
路由命名約定
路由文件位于app/config/routing.yml,如果要導(dǎo)入其它路由文件,該被導(dǎo)入路由文件的命名約定如下:
例如,在路由文件中resource: "@AcmeHelloBundle/Resources/config/routing.yml"語句所代表的是:導(dǎo)入AcmeHelloBundle中的路由文件。
模板命名約定
模板的名稱約定如下:
- AcmeBlogBundle(bundle):模板位于AcmeBlogBundle目錄之中(如src/Acme/BlogBundle)
- Blog(controller):指定模板位于Resources/views目錄中的Blog子目錄下
- index.html.twig(template):文件名叫index.html.twig
翻譯命名約定
Symfony2可以根據(jù)翻譯文件的命名約定來確定翻譯的細節(jié)。每個消息文件必須按照domain.locale.loader這種模式命名:
- domain: 可選,用來按組來組織消息(如admin、navigation或缺省消息),參見使用消息域;
- locale: 翻譯的語言環(huán)境(如:en_GB、en等)。所謂語言環(huán)境基本上是指用戶語言和國家。它可以是字符串,然后你的應(yīng)用程序可以用它來管理翻譯和其它不同的格式(如貨幣格式)。我們建議使用ISO639-1語言代碼,加上一個下劃線(_),然后再加上ISO3166國家代碼(如:fr_FR對應(yīng)法語/法國);
- loader: Symfony2如何引導(dǎo)和分析文件(如:xliff、php或yml)。
事件命名約定
唯一的事件名可以是任意字符串,但最好能夠遵循一些簡單的命名約定:
- 只使用小寫字母、數(shù)字、點號(.)和下劃線(_);
- 名稱空間的前綴后跟點號(如:core.);
- 名字后面跟動詞,表明采取什么動作(如:request)。
這里有一些推薦的事件名示例:
- core.response
- form.pre_set_data
本文轉(zhuǎn)自 firehare 51CTO博客,原文鏈接:http://blog.51cto.com/firehare/594498,如需轉(zhuǎn)載請自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的Symfony2中的命名约定的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【VMCloud云平台进阶篇】Monit
- 下一篇: 千岛湖救人工程师再次暖心,“感动阿里奖”