Contenu connexe
Similaire à Customize CakePHP bake (20)
Customize CakePHP bake
- 4. Plugin & view blocks
bakeする際にプラグインやビューブロックを
反映したカスタマイズ・テンプレートを作成
して楽をしたい。
- 5. 準備 1: composer.json
"require": {
"cakephp/cakephp": "2.5.*",
"cakedc/utils": "1.4.*",
"cakedc/search": "2.5.*",
"twitter/bootstrap": "3.3.*",
"slywalker/boost_̲cake": "1.0.*",
}
- 6. 準備 2: テンプレート
コピー元:
Vendor/cakephp/cakephp/lib/Cake/Console/Templates/default
コピー先:
app/Console/Template/◯◯◯
コピーされるフォルダ
actions classes views
- 8. 編集 1: model テンプレート
対象ファイル:
app/Console/Template/◯◯◯/classes/model.ctp
サーチプラグイン対応:
$actsAs = array_̲merge($actsAs,array('Search.Searchable'));//サーチプラグインのビヘイバー
if (!empty($actsAs)):
最終⾏行行直前に追加
//サーチプラグイン対応
$modelObj = ClassRegistry::init($name);
if ($modelObj) {
$schema = $modelObj-‐‑‒>schema(true);
$fields = array_̲keys($schema);
} else {
$fields = $schema = $associations = array();
}
echo "public $filterArgs = array(n";
foreach ($fields as $value) {
if ($value=='id') {
echo "'$value' => array('type' => 'value'),n";
} else {
echo "'$value' => array('type' => 'like'),n";
}
}
echo "'keyword' => array('type' => 'like', 'field' => array('field1', 'field1')),n";
echo ");nn";
- 9. 編集 2: view テンプレート
対象ファイル:
app/Console/Template/◯◯◯/views/index.ctp
など
※ビューブロックを拡張指定する。
<?php
$this-‐‑‒>extend(ʻ‘/index');
※ビューブロックに渡すデータを設定する。
- 10. 編集 3: controller テンプレート
対象ファイル:
app/Console/Template/◯◯◯/classes/controller.ctp
※サーチプラグイン対応
□冒頭に追記
$components = array_̲merge($components,array(ʻ‘Search.Prgʼ’));
□components展開後に記述
echo " public $presetVars = true;";
- 11. 編集 4: actions テンプレート
対象ファイル:
app/Console/Template/◯◯◯/actions/controller_̲actions.ctp
※サーチプラグイン対応
□function index 内に追加
$this-‐‑‒>Prg-‐‑‒>commonProcess();
$this-‐‑‒>paginate = array(
'conditions' => $this-‐‑‒><?php echo $currentModelName ?>-‐‑‒>parseCriteria($this-‐‑‒>passedArgs),
'order'=>'<?php echo $currentModelName ?>.id ASC'
);