`
penergy
  • 浏览: 39260 次
社区版块
存档分类
最新评论

Cakephp 3 (一) 惯例优先原则(convention over configuration)

阅读更多
在Cakephp 3 cookbook中提到,Cakephp 是惯例优先原则的忠实实践者。Cakephp中,提供一套完整的约定编程体系。惯例优先原则是一个重要的设计模式,目的是统一项目过程中命名不一致的问题,有效加快版本迭代更新速度。

Cakephp 3中 MVC三个模块的命名规则有具体介绍。

1) 控制器命名(Controller Convention)
   控制器类(Controller class)是复数、骆驼拼写法(CamelCased),以Controller结尾。例如订单(Order)控制器,写为 OrdersController。
  在控制器中,可以自定义多个公开的方法,如order中有个public function view(),url对应为/orders/view。
  如果遇到多单词组合的控制器类(如RedApplesController),其对应的url有四种等价形式
  - /redApples
  - /RedApples
  - /Red_apples
  - /red_apples
   注:cakephp有一整套完善的routing改写机制。可以把上述url改写成dashedroute,例如 /red-apples/go-pick, 对应为RedApplesController::goPick()

2) 文件和类名命名 (Model and Database Conventions)
    对于控制器(Controller),如RedApplesController,对应文件叫做RedApplesController.php
    对于组件(Component),如MyHandyComponent,对应文件叫做MyHandyComponent.php
    对于数据表处理类(Table),如AppleTable.php, 对应文件叫做AppleTable.php

3) 模式和数据库命名规则
    Table类是复数、骆驼拼写法(CamelCased),如People,BigPeople,ReallyBigPeople等。相对应的,在数据库中的命名为:复数,并带有下划线。如people, big_people, really_big_people.

     在数据表中,外键的命名(Foreign key), 如面包师有很多蛋糕,则在蛋糕表中,有外键baker_id.从例子看出,外键命名为单数_id

4) 视图命名(View Convention)
     在控制器中可以创建function,如PeopleController::getReady(),在文件夹中,会显示为people/get_ready.ctp

用一个例子来总结Cakephp的命名规则:
数据库表格:people - 复数,小写
控制器:PeopleController - 复数,骆驼
视图:PeopleController:: index()

关于Cakephp惯例优先原则看似繁琐。但在实际运用中,Cakephp如同RoR,Laveral一样提供了command工具,进行Fast development。 在下一个章节,我会具体谈到,如何使用command工具。
分享到:
评论

相关推荐

    CakePHP3-Proffer, CakePHP 3的上传插件.zip

    CakePHP3-Proffer, CakePHP 3的上传插件 CakePHP3-ProfferCakePHP 3的上传插件。 是什么?,needed upload upload upload upload upload upload upload plugin plugin plugin

    cakephp php-framework

    There are two main ways to get a fresh copy of CakePHP. You can either download an archive copy (zip/tar.gz/tar.bz2) from the main website, or check out the code from the git repository. To download ...

    cakephp-3-0-1

    CakePHP 3.0.1 发布,此版本是个 bug 修复版本 CakePHP 3.0.0 稳定版是向后不兼容版本,现在 CakePHP 最低要求: PHP 5.4.16 及其以上 mbstring 扩展 intl 扩展

    CakePHP 3.4 开发手册文档 CakePHP Cookbook Documentation Release 3.4

    CakePHP 3.4 开发手册文档 CakePHP Cookbook Documentation Release 3.4

    cakePHP经典官方教程

    cakePHP经典官方教程,含大量实例代码。

    cakePHP 中文手册

    CakePHP有多个特点,这些特点让CakePHP成为了快速开发框架中的佼佼者之一。 1.活跃友好的社区 2.灵活的许可协议(Licensing) 3.兼容PHP4和PHP5 4.数据库交互和简单查询的集成 5.应用程序Scaffolding 6....

    PHP的框架之CakePHP-CakePHP教程

    打包下载,里面有CakePHP的框架源码,下载后可直接使用,版本是1.1的,稳定版;CakePHP的分页组件源码;CakePHP的中文及英文教程,CHM格式;CakePHP的中文打印版教程,WORD格式,下载后可直接打印,方便的;CakePHP...

    cakephp 框架

    cakephp 框架 cakephp 框架 cakephp 框架 cakephp 框架 cakephp 框架

    CakePHP php框架 v3.7.0 beta1.zip

    CakePHP 是一个运用了诸如ActiveRecord、Association Data Mapping、Front Controller和MVC等著名设计模式的快速开发框架。该项目主要目标是提供一个可以让各种层次的PHP开发人员快速地开发出健壮的Web应用,而 又...

    CakePHP php框架 v3.8.5

    CakePHP 是一个运用了诸如ActiveRecord、Association Data Mapping、Front Controller和MVC等著名设计模式的快速开发框架。该项目主要目标是提供一个可以让各种层次的PHP开发人员快速地开发出健壮的Web应用,而 又...

    CakePHP php框架 v3.7.8.zip

    CakePHP 是一个运用了诸如ActiveRecord、Association Data Mapping、Front Controller和MVC等著名设计模式的快速开发框架。该项目主要目标是提供一个可以让各种层次的PHP开发人员快速地开发出健壮的Web应用,而 又...

    PHP的框架之CakePHP-CakePHP教程终极教程

    打包下载,里面有CakePHP的框架源码,下载后可直接使用,版本是1.1的,稳定版;CakePHP的分页组件源码;CakePHP的中文及英文教程,CHM格式;CakePHP的中文打印版教程,WORD格式,下载后可直接打印,方便的;CakePHP...

    cakephp分页.docx

    cakephp分页,cakephp框架的分页的方法的文档,是cakephp框架的内容。

    audit-stash, CakePHP 3的灵活和坚如磐石的审计日志跟踪.zip

    audit-stash, CakePHP 3的灵活和坚如磐石的审计日志跟踪 用于CakePHP的 AuditStash插件 这个插件为应用程序中的任何表类实现"审核跟踪",即记录任何特定表的实体的创建。修改或者删除的能力。这个插件存储了审计日志...

    CakePHP PHP MVC框架

    CakePHP 一个开源PHP web 开发框架,PHPMVC结构框架,易与开发,是PHP技术人员的开发好的选择之一!

    Beginning CakePHP:From Novice to Professional

    Lead you from a basic setup of CakePHP to building a couple applications that will highlight CakePHPs functionality and capabilities without delving too deeply into the PHP language, but rather ...

    cakephp的CMS教程

    是cakephp框架的内容,用cakephp开发了一个的简单的CMS系统教程。

    cakephp中acl详解

    cakephp中acl详解

    cakephp-1.2 manual

    cakephp-1.2 manual 英文版,离线版。

    cakephp 框架书籍 英文版

    cakephp 框架书籍 英文版

Global site tag (gtag.js) - Google Analytics