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




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

前の記事:

次の記事:

[baserCMS]blackHoleに吸い込まれてページが見つかりません
[baserCMS]blackHoleに吸い込まれてページが見つかりません

ページが見つかりません デバッグモード エラー: The reques...

baserCMSプラグイン開発要約
baserCMSプラグイン開発要約

http://basercms.net/manuals/3/progr...

無印MacBookの後悔を公開
無印MacBookの後悔を公開

MacBook (Retina, 12-inch, Early 201...

ドコモの赤チャリに乗ってみた
ドコモの赤チャリに乗ってみた

東京自転車シェアリング。 http://docomo-cycle.jp...

AUポイントを移行
AUポイントを移行

諸事情がありまして、AUから撤退します。 iphoneからandroi...

→もっと見る

PAGE TOP ↑