Heim  >  Artikel  >  Backend-Entwicklung  >  Cakephp 三 (一) 惯例优先原则(convention over configuration)

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

WBOY
WBOYOriginal
2016-06-13 12:29:241079Durchsuche

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工具。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn