2つの!Composer で CakePHP 2 のプラグインを管理したいのにわからなかったこと!
- Composer で管理できる CakePHP プラグインの調べ方がわからなかった。
- プラグインの名前、バージョンをどのように記述すればよいかわからなかった。
Composer で管理できる CakePHP 2 のプラグインを調べる方法!そして composer.json への記述方法
- Packagist で検索する。
- 探し方は、プラグインの GitHub ページにあるリポジトリ名またはオーナー名で検索する。
composer.json に適当に CakePHP プラグイン設定を書いてみて失敗した風景><
[root@localhost cake1]# php composer.phar update Loading composer repositories with package information Initializing PEAR repository http://pear.cakephp.org Updating dependencies (including require-dev) Your requirements could not be resolved to an installable set of packages. Problem 1 - The requested package cakephp/cakeplus could not be found in any version, there may be a typo in the package name. Potential causes: - A typo in the package name - The package is not available in a stable-enough version according to your minimum-stability setting see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more details. Read <http://getcomposer.org/doc/articles/troubleshooting.md> for further common problems. [root@localhost cake1]#
このエラーが出た時の composer.json はこんな感じです。CakePHP のプラグインも Composer で管理できると聞きかじってでもどうすれば?という状態で適当に書いていました><。。。
{ "name": "example-app", "repositories": [ { "type": "pear", "url": "http://pear.cakephp.org" } ], "require": { "cakephp/cakephp": ">=2.4.9", "cakephp/debug_kit": "2.2.*", "cakephp/cakeplus": "*" }, "config": { "vendor-dir": "Vendor/" } }
DebugKit のような超有名で、プラグインページで Composer でのインストール方法が案内されているプラグインなら問題ありません。
手順に従って、Composer を update するだけですもの。
問題は、Composer でのインストール方法が案内されていない CakePHP プラグインで、そもそも Composer で管理できるのか?そして、具体的に composer.json にどのように記述すればよいのか?ですわ。
調べていたらアッサリ解決いたしました♪
Composer で扱えるかどうかの判断、そしてインストール方法!cakeplus を具体例に♪
たとえば、ichikaway さまの cakeplus を Composer で管理したい!とします。
README には Composer でのインストール方法がありません。
Composer で扱えるかどうかの判断、そしてインストール方法はこちらのサイトにございます!
「ichikaway」で検索してみますと、Packages の検索結果として、「ichikaway/cakeplus」が表示されました!
これをクリックして詳細ページへと移動します。
ページの require: に続く部分が composer.json に記述する部分ですの!具体的には「”ichikaway/cakeplus”: “2.0.*@dev”」となりますわね♪
早速 composer.json に記述いたします。
{ "name": "example-app", "repositories": [ { "type": "pear", "url": "http://pear.cakephp.org" } ], "require": { "cakephp/cakephp": ">=2.4.9", "cakephp/debug_kit": "2.2.*", "ichikaway/cakeplus": "2.0.*@dev" }, "config": { "vendor-dir": "Vendor/" } }
そして update しますと、、、
php composer.phar update
次のように無事アップデートできました♪
[root@localhost cake1]# php composer.phar update Loading composer repositories with package information Initializing PEAR repository http://pear.cakephp.org Updating dependencies (including require-dev) - Installing ichikaway/cakeplus (2.0.x-dev a273a8a) Cloning a273a8aabdca1b245764a489abd16185afb8bc86 Failed to download ichikaway/cakeplus from source: Failed to clone git@github.com:ichikaway/cakeplus.git, git was not found, check that it is installed and in your PATH env. sh: git: コマンドが見つかりません Now trying to download from dist - Installing ichikaway/cakeplus (2.0.x-dev a273a8a) Downloading: 100% Writing lock file Generating autoload files [root@localhost cake1]#
ちょっとエラーが出ておりますけれども、そうでした。
わたくし、git はインストールしておりませんでしたわ><、てへ。でも、調べてみますと無事にプラグインをダウンロードできていたようですの♪
これにて完了です♪
おわりに
こちらでエラーに体当たりながらなんとか CakePHP をインストールできましたの。
つづいてプラグインも、、、という時にやっぱりまたエラー><。
でも、何とかなりましたわ、えへへ。
嬉しく存じます。
ただ、Composer の Pacagist の検索結果に出てこないプラグインも当然ございますわね。。。その場合、やはり Composer での管理は諦めて自力で面倒を見るしか無いのかしら。。。
以上です。