CakePHPのcore部分をgit submodule化してgithubで管理する
2011-11-09追記
- app/webroot/test.phpのCAKE_CORE_INCLUDE_PATHを修正することを書いてなかったので追加
- bakeのときにはappディレクトリを指定する必要があることを追加
ここから元記事
CakePHP as a Git submodule | Bravo Kernelの通りやればできる。
重要なのはapp/webroot/index.phpを修正してCAKE_CORE_INCLUDE_PATHのディレクトリを指定することくらい
前提
- CakePHP2.0
- Webサーバのdocrootは以下の通り
~/Sites/docroot/
-
- ここに「git clone https://github.com/cakephp/cakephp.git」でcakephpを落としてきたイメージ。
- なので、このディレクトリ配下にREADMEやappやlibやvendorsやpluginsがある
submodule化の流れ
.gitを削除
[17:53]% rm -fR .git [~/Sites/docroot]
cake本体を削除
[17:54]% rm -fR lib [~/Sites/docroot]
後々考えてgitignoreを作成
[17:55]% touch .gitignore [~/Sites/docroot]
初めのcommit
[17:55]% git init [~/Sites/docroot] Initialized empty Git repository in ~/Sites/docroot/.git/ [17:55]% git add . [~/Sites/docroot] [17:55]% git commit -m 'first commit' [~/Sites/docroot] [master (root-commit) 6083f1c] first commit 436 files changed, 67172 insertions(+), 0 deletions(-) # 以下略
git submoduleでcakeを追加
[17:55]% git submodule add https://github.com/cakephp/cakephp.git [~/Sites/docroot] Cloning into cakephp... remote: Counting objects: 134378, done. remote: Compressing obje # 以下略
submoduleを初期化
[18:05]% git submodule init [~/Sites/docroot] Submodule 'cakephp' () registered for path 'cakephp'
念のためupdate
[18:06]% git submodule update [~/Sites/docroot]
cakephpのgitを切り替えたいので一旦中に入る
[18:06]% cd cakephp [~/Sites/docroot]
ローカルに「2.0.2」というbranchを作り、stableであるCakePHP2.0.2のtagデータをcheckoutする
[18:08]% git checkout -b 2.0.2 refs/tags/2.0.2 [~/Sites/docroot/cakephp] Switched to a new branch '2.0.2'
戻る
[18:09]% cd .. [~/Sites/docroot/cakephp]
CakePHPのCoreのディレクトリを修正しないといけないのでapp/webroot/index.phpとテストをするのでapp/webroot/test.phpを修正する
# vim app/webroot/index.phpでCAKE_CORE_INCLUDE_PATHを以下のように修正 //define('CAKE_CORE_INCLUDE_PATH', ROOT . DS . 'lib'); define('CAKE_CORE_INCLUDE_PATH', ROOT . DS . 'cakephp' . DS . 'lib');
commitするためにgit addする
[18:15]% git add app/webroot/index.php [~/Sites/docroot]
git commit
[18:15]% git commit [~/Sites/docroot]
最後にgit hubにpush
# githubのCodeタブに書いてあることを丸写し [18:17]% git remote add origin うんちゃらかんちゃら [~/Sites/docroot] [18:18]% git push -u origin master [~/Sites/docroot]
できたできたー。簡単。
bakeを使う場合
bakeを使う場合には/webroot/index.phpを通らないのでappのディレクトリを指定する必要がある
[16:43]% ./cakephp/lib/Cake/Console/cake -app app bake [~/Sites/fmn/cakephp]