読者です 読者をやめる 読者になる 読者になる

ほげほげ(仮)

仮死状態

CakePHPで使用するプラグインをComposerで管理する

PHP

CakePHPをやることになってしまいました。

色々と調べてたら最近ではComposerが良さげとのことなので試した時のメモです。

環境

CakePHP用のComposerをインストール

CakePHP用のがあるのでそっちを使う。

uzyn/cakephp-composer

gitからcloneする。

$ cd app/Plugin
$ git clone git://github.com/uzyn/cakephp-composer.git Composer

Config/bootstrap.phpに下記を追加する。

CakePlugin::load('Composer', array('bootstrap' => true));

次のコマンドでComposerをインストール。途中でy/n聞かれるので「y」。

$ cd ../
$ Console/cake composer.c
Composer plugin for CakePHP

Composer is not installed.
Would you like to install the latest version of Composer? (y/n)
[y] > y
Setting up Composer
Downloading composer.phar from http://getcomposer.org/composer.phar...
Composer installed and saved successfully.
Warning Error: Creating default object from empty value in [xxxx/app/Plugin/Composer/Console/Command/ComposerShell.php, line 223]

   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/

インストールが完了するとComposerのAAとヘルプが表示され、appディレクトリ配下にcomposer.jsonが作られる。

プラグインを入れてみる

次の2つのプラグインを入れてみる。

composer.jsonを修正する。

{
    "require": {
        "cakephp/debug_kit": "2.2.*@dev",
        "cakedc/migrations": "dev-develop"
    },
    "config": {
        "vendor-dir": "Vendor"
    }
}

次のコマンドでインストールする。

$ Console/cake composer.c install

インストールが完了するとapp/PluginDebugKitMigrationsのディレクトリが出来る。

インストールしたプラグインを読み込むためにapp/Config/bootstrap.phpに下記を追加する。

CakePlugin::load('DebugKit');
CakePlugin::load('Migrations');

Git管理

よく分かってないこと多いんですが、app/Config/bootstrap.phpCakePlugin::loadを書いちゃってるのでapp/PluginにないとComposerがエラーになっちゃう感じです。
なのでapp/PluginもGit管理しなければならない。あとComposerの中に.gitがあるのでこれを削除しないとダメですね。

app/PluginディレクトリをGitから除外して、RubyのBundlerのような使い方したいんですけど…

この辺のやり方がわかってません…

まとめ

はぁ… PHP