WebプログラミングV

 目次へ 前へ 次へ

2015/12/21 久米

VCakePHP

2.規約とAPI

2.1規約

(1)命名規約

CakePHPの規約

  場所 単数/複数
規約
記法の規約
cakeフォルダ - 特になし 特になし caketest
データベース - 特になし 特になし caketest
テーブル - 複数形
スネーク記法 neko_chans
C src>Controller>
テーブル+Condroller.php
複数形
キャメル記法 src>Controller>
NekoChansController.php
M
テーブル
src>Model>Table>
テーブル+Table.php
複数形

キャメル記法 src>Model>Table>
NekoChansTable.php
M
エンティティー
src>Model>Entity>
テーブル.php
単数形 キャメル記法 src>Model>Entity>
NekoChan.php
V
コンテンツ
src>Template>テーブル *1>
アクション.ctp *2
*1複数形
*2複数形 
*1キャメル記法
*2スネーク記法.ctp
src>Template>NekoChans>
search_kind.ctp
V
レイアウト
src>Template>Layout>
レイアウト名.ctp
特になし 特になし src>Template>Layouts>
neko22.ctp
css webroot>css >
css名.css
特になし 特になし webroot>css>
neko22.css
関数名   特になし
キャメル記法
searchKind

※テーブル:テーブル名をスネーク記法やキャメル記法で記述したもの。例 neko_chans、NekoChans、NekoChanなど
※アクション:テーブル+Condroller.phpの中の関数
※なにも決めなければ全てデフォルトが使われる
※ctp:CakePHP Template

 

(2)テーブルの列作成の規約

列名 null ok? 意味   備考
id int not null 主キー、オートインクリメント ほぼ必須  
nameかtitle varchar not null 表題 オプション  
created datetime null 作成日時 オプション
modified datetime null 更新日時 オプション

※CakePHP2.0の時はcreatedとmodifiedの日時が自動で更新されたが、
CakePHP3.0では自動更新させるために、下記のような設定をする必要がある。
http://book.cakephp.org/3.0/en/orm/behaviors.html
の $this->addBehavior('Timestamp'); 

 

(3)ルーティング 

URLから特定のコントローラのアクション(関数)にマップすること

CakePHPの規約>コントローラ名とURL

  url 備考
  http://ホスト/フォルダ/アプリケーション/コントローラ/アクション(Controllerの関数名) Controllerの中の指定した関数が実行される
http://localhost/web3/caketest/neko-chans/ 関数名indexの場合は省略可
http://localhost/web3/caketest/neko-chans/add 関数名addの場合
http://localhost/web3/caketest/neko-chans/search-kind  

※URLの単語と単語の間は、アンダースコアではなく、ダッシュで区切る
例 neko_chans → 正式には neko-chans

 

演習1 ネコカフェメニューのテーブル作成してみよ。

 

2.2主なAPI

CakePHP3.x API

 

Controller

Request

 

Table

Query

 

FormHelper

HtmlHelper