CakePHP2をComposerで入れたあとcakeコマンド使えるようにしたりする初期設定

こんにちは!
最近流行り?のComposerを使ってCakePHPを導入していましたが、色々使いにくいなぁと思っていたのですが、それは僕が使い慣れてないだけだったので、これからCakePHPをComposerで導入しようと思っている人向けにやるべき初期設定を書こうと思います。

それでは始めましょう

composer.jsonの設定

composer.jsonの設定は以下のような感じです。
本当に最低限のインストールしかしない設定になっています。

{
    "name": "test-app",
    "repositories": [
        "type": "pear",
        "url": "http://pear.cakephp.org"
    ],
    "require": {
        "pear-cakephp/cakephp": "2.3.*"
    }
    "config": {
        "vendor-dir": "Vendor/"
    }
}

このあとにcomposer.pharを用いてインストールを行います。
ここらへんは公式ドキュメントが詳しいのでそちらを参照下さい。

編集すべき部分と編集内容

アプリを作成することが出来たら、.htaccessなど、変更する部分はあると思いますが、composerでインストールしたときの編集すべき特有な部分は3つあります。

  • app/webroot/index.php
  • app/webroot/test.php
  • app/Console/cake.php

それぞれのファイルの変更点は以下に書きます。

app/webroot/index.php CAKE_CORE_INCLUDE_PATH部分

define('CAKE_CORE_INCLUDE_PATH', ROOT . DS . 'Vendor' . DS . 'pear-pear.cakephp.org' . DS . 'CakePHP');

app/webroot/test.php CAKE_CORE_INCLUDE_PATH部分

define('CAKE_CORE_INCLUDE_PATH', ROOT . DS . 'Vendor' . DS . 'pear-pear.cakephp.org' . DS . 'CakePHP');

app/Console/cake.php

if (function_exists('ini_set')) {
    $root = dirname(dirname(dirname(__FILE__))).$ds.'Vendor'.$ds.'pear-pear.cakephp.org'.$ds.'CakePHP';

    // the following line differs from its sibling
    // /app/Console/cake.php
    ini_set('include_path', $root . PATH_SEPARATOR .  $ds . 〜〜));
}

これを書いてあげることで、どの環境でも設定を変更することなく、動作するようになります。
僕は、ROOT定数を使うという発想がなかったので、各環境においてそれぞれの絶対パスを全て打ち込んでいました。プログラマーとしてまだまだですね。。。

最後に

公式ドキュメントにも同じようなことが書いてありますが、明示的に3つ編集すべきだよ!っていう記事があればさらに便利だなーと思ったのでこんな記事を書いてみました。
僕はまだまだcomposerを使いこなすことが出来ていませんが、もし3つ編集するんじゃなくて、別の方法があるよ!っていうことがあれば教えてくださると助かります!

CakePHPをやるのであればこの本は持っていて損はないです!よく訳に立ってます!

安藤 祐介 岸田 健一郎 新原 雅司 市川 快 渡辺 一宏 鈴木 則夫
技術評論社
売り上げランキング: 17,808