cakephp + composer を試す
色々なサイトを見ていると、
そもそもcakephp自体を、composerでインストールしよう。
みたいな流れになっている。
それが一番composerらしいやり方なんだろうけど、エラーでまくりで上手くできませんでした。
たぶんパス関係のエラーなんだろうけど、調べるのが面倒で調べてない。
このパスを、こう変えました。
っていう作業手順書みたいなの、書かなきゃいけないじゃん。
意味ないじゃん。やーめた。
もうちょっと、こなれてきてから考えよう。
と思ったら、最新のcakephpにcomposer.jsonって、最初からあるじゃないですか。
じゃあこれ、そのまま使ったらええんじゃないの?
というわけで、以下のようにやったら、まあ一応できました。
1) cakephpダウンロード
version 2.5.2
mkdir test git clone https://github.com/cakephp/cakephp.git test
2) composer ダウンロード
cd test curl -sS https://getcomposer.org/installer | php
3) composer インストール
php composer.phar install
基本的に以上で終わり。
4) インストールされているパッケージを表示する
php composer.phar show -i
現在composerで管理しているリストを出してくれる。
json見れ、って話だとは思うが、こっちの方が見やすいかも。
5) composer アップデート
php composer.phar update
composer.jsonを書き換えたら、アップデートする。
追加しても、削除しても、とにかく変えたらアップデートすれば良いらしい。
試しに composer.json を書き換えてやってみる。
{
"name": "cakephp/cakephp",
"description": "The CakePHP framework",
"type": "library",
"keywords": ["framework"],
"homepage": "http://cakephp.org",
"license": "MIT",
"extra": {
"installer-paths": {
"app/Plugin/Migrations": ["cakedc/migrations"],
"app/Plugin/Users": ["cakedc/users"],
"app/Plugin/Search": ["cakedc/search"],
"app/Plugin/Utils": ["cakedc/utils"],
"app/Plugin/DebugKit": ["cakephp/debug_kit"]
}
},
"authors": [
{
"name": "CakePHP Community",
"homepage": "https://github.com/cakephp/cakephp/graphs/contributors"
}
],
"support": {
"issues": "https://github.com/cakephp/cakephp/issues",
"forum": "http://stackoverflow.com/tags/cakephp",
"irc": "irc://irc.freenode.org/cakephp",
"source": "https://github.com/cakephp/cakephp"
},
"require": {
"php": ">=5.2.8",
"ext-mcrypt": "*",
"cakedc/migrations": "2.2.*",
"cakedc/users": "2.0.*",
"cakedc/search": "2.2.*",
"cakedc/utils": "1.4.*",
"cakephp/debug_kit": "2.2.*@dev"
},
"require-dev": {
"phpunit/phpunit": "3.7.*",
"cakephp/debug_kit" : "2.2.*"
},
"bin": [
"lib/Cake/Console/cake"
]
}
6) autoloader 設定
bootstrap.php の後ろに追記。
// composerのautoloadを読み込み
require ROOT . '/vendor/autoload.php';
// CakePHPのオートローダーをいったん削除し、composerより先に評価されるように先頭に追加する
// https://github.com/composer/composer/commit/c80cb76b9b5082ecc3e5b53b1050f76bb27b127b を参照
spl_autoload_unregister(array('App', 'load'));
spl_autoload_register(array('App', 'load'), true, true);
CakePlugin::loadAll();
これ要らないと思ってた。
上記のアップデートを自動でやる奴なのかと思ってたから。
クラスオートローディング機能とはPHP5.3から本格的に利用され始めた機能で、requireやincludeを記述することなく、クラスが使われているとそれに応じたファイルを自動的に読みこむ機能です。
http://codezine.jp/article/detail/7827
すげえじゃんw
これ採用w
公式に載ってたPATHだと動かなかった orz
http://book.cakephp.org/2.0/ja/installation/advanced-installation.html
require APP . ‘Vendor/autoload.php’;
http://php-tips.com/2014/02/08/cakephp2-composer-install/
require ROOT . ‘/vendor/autoload.php’;
後は、cakephpのお約束設定など。
前の記事: vagrant sahara 使いどころなど、
次の記事: 【夫、開発に明け暮れる日の晩ごはん】
2014/07/11 | 開発記録
前の記事: vagrant sahara 使いどころなど、
次の記事: 【夫、開発に明け暮れる日の晩ごはん】
コメント/トラックバック
トラックバック用URL:
この投稿のコメント・トラックバックRSS