Linux環境(CentOS)でCakePHPをgit管理する手順をまとめてみました。
こんにちは。
gitをぼちぼち使い始めていたのですが、CakePHPでgit管理する場合にコアファイルも管理すべきかそうしないべきか、バージョンをあげるときを考えたら、どうするべきかなどで悩んでいました。そのときはCakePHPではコアディレクトリを管理下から外してました。
今回は、コアディレクトリをsubmodule化してコアディレクトリも管理します。こうすることで、バージョン上げも容易?にできるのかと思います。今回はcakephpを2つ使います。ひとつは、今までのように使いますが、コアファイルは削除します。そして、もうひとつのやつは、subumodule化してコアファイルを使用します。今回はほんとに備忘録的な意味合いが強いですがが、、
最初に全体の流れ
- 1つ目のcakephpをダウンロードする
- ダウンロードしたコアファイルを削除してgitの設定
- 実際に使用するコアファイルのダウンロードをする
- 設定をする
1.1つ目のcakephpをダウンロードする
$ git clone git://github.com/cakephp/cakephp.git $ cd cakephp
2.ダウンロードしたコアファイルを削除してgitの設定
$ rm -rf lib $ rm -rf .git $ git init
3.実際に使用するコアファイルのダウンロードをする
$ git submodule add git://github.com/cakephp/cakephp.git $ git submodule update --init
4.設定をする
# 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 <?php #!/usr/bin/php -q $ds = DIRECTORY_SEPARATOR; $dispatcher = 'Cake' . $ds . 'Console' . $ds . 'ShellDispatcher.php'; if (function_exists('ini_set')) { $root = dirname(dirname(dirname(__FILE__))); // the following line differs from its sibling // /lib/Cake/Console/Templates/skel/Console/cake.php //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'; } if (!include($dispatcher)) { trigger_error('Could not locate CakePHP core files.', E_USER_ERROR); } unset($paths, $path, $dispatcher, $root, $ds); return ShellDispatcher::run($argv);
$ git add .
$ git commit -m "Initial commit"
今回は以下のサイトを参考にしました。ありがとうございました!
俺流CakePHPセットアップ方法 - a long log
CakePHP 2.xのコア部分をGitのSubmoduleにて管理 - longkey1::blog
Gitと一緒にCakePHPを楽しむ – CakePHP Advent Calendar 2010 6日目