cakephp + composer を試す

2014/07/11 | 開発記録 | hideichi

色々なサイトを見ていると、
そもそも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のお約束設定など。

前の記事:

次の記事:

2014/07/11 | 開発記録

コメント/トラックバック

トラックバック用URL:

この投稿のコメント・トラックバックRSS




管理人にのみ公開されます

前の記事:

次の記事:

【二種免許】深視力検査合格のコツや裏技
【二種免許】深視力検査合格のコツや裏技

東京では免許更新の際、ゴールド免許の方や島嶼にお住まいの方以外は、鮫洲...

no image
[cakephp4] dirtyとoriginal

patchEntityすると、変更したところと、変更前の内容が取れる。...

BaserTestCaseで特定プラグインの有無でfixturesを振り分ける
BaserTestCaseで特定プラグインの有無でfixturesを振り分ける

baserCMSのTestCaseで、特定のプラグインの有無を調べて、...

kusanagi で letsencryptが更新されない
kusanagi で letsencryptが更新されない

結論から、アパッチを直接再起動すると直るかも。 systemctl r...

baserCMS プラグインのアップデートスクリプト
baserCMS プラグインのアップデートスクリプト

(参考) http://project.e-catchup.jp/pr...

→もっと見る

PAGE TOP ↑