基本的には、以下のサイトを参考にした
CakePHPのcore部分をgit submodule化してgithubで管理する - JavaScriptとかPerlとかPHPとかさくらVPSとか勉強する
一応流れを書いておく
大まかにはリンク先と異なるところは、app/Console/cake.phpを触っているところかな?
上のように修正すれば、わざわざcakephp/lib/Cake/Console/cake.phpを実行しなくてもいいし、パラメータも設定しなくてもいいので、スッキリします。
例えばbakeする場合はこんな感じ。
よりドキュメント通りに動くほうが良いと思うので、こっちの方がいいんじゃないかな?
CakePHP2.x系からはConsole部分もappディレクトリ内に出来たので、こうやって気楽にカスタマイズ出来るのが素敵だわ‐。
CakePHPのcore部分をgit submodule化してgithubで管理する - JavaScriptとかPerlとかPHPとかさくらVPSとか勉強する
一応流れを書いておく
# cakephp clone
git clone git://github.com/cakephp/cakephp.git project
cd project
# 不要なディレクトリの削除&gitディレクトリの作り直し
rm -r .git
rm -r lib
git init
# cakephpをsubmoduleで追加
git submodule add git://github.com/cakephp/cakephp.git
git submodule update --init
# app/webroot/index.phpを編集
vi app/webroot/index.php
//define('CAKE_CORE_INCLUDE_PATH', ROOT . DS . 'lib');
+ define('CAKE_CORE_INCLUDE_PATH', ROOT . DS . 'cakephp' . DS . 'lib');
# app/webroot/test.phpを編集
vi app/webroot/test.php
//define('CAKE_CORE_INCLUDE_PATH', ROOT . DS . 'lib');
+ define('CAKE_CORE_INCLUDE_PATH', ROOT . DS . 'cakephp' . DS . 'lib');
# app/Console/cake.phpを編集
vi app/Console/cake.php
...
$ds = DIRECTORY_SEPARATOR;
$dispatcher = 'Cake' . $ds . 'Console' . $ds . 'ShellDispatcher.php';
if (function_exists('ini_set')) {
$root = dirname(dirname(dirname(__FILE__)));
+ // for managing cakephp's core-code by git-submodule
- ini_set('include_path', $root . $ds. 'lib' . PATH_SEPARATOR . ini_get('include_path'));
+ ini_set('include_path', $root . $ds . 'cakephp' . $ds . 'lib' . PATH_SEPARATOR . ini_get('include_path'));
}
...
+ // for managing cakephp's core-code by git-submodule
+ $idx = array_search('-app', $argv);
+ if ($idx === false) {
+ $argv[] = '-app';
+ $argv[] = $root . $ds . 'app';
+ }
unset($paths, $path, $dispatcher, $root, $ds);
return ShellDispatcher::run($argv);
# 変更をcommit
git add .
git commit -m 'Initial commit'大まかにはリンク先と異なるところは、app/Console/cake.phpを触っているところかな?
上のように修正すれば、わざわざcakephp/lib/Cake/Console/cake.phpを実行しなくてもいいし、パラメータも設定しなくてもいいので、スッキリします。
例えばbakeする場合はこんな感じ。
php cakephp/lib/Cake/Console/cake.php -app ../app bake
↓
php app/Console/cake.php bakeよりドキュメント通りに動くほうが良いと思うので、こっちの方がいいんじゃないかな?
CakePHP2.x系からはConsole部分もappディレクトリ内に出来たので、こうやって気楽にカスタマイズ出来るのが素敵だわ‐。