カテゴリー
コンピューター

Composer で CakePHP 2 のプラグインをインストールしようとして躓いたこと!

2つの!Composer で CakePHP 2 のプラグインを管理したいのにわからなかったこと!

  • Composer で管理できる CakePHP プラグインの調べ方がわからなかった。
  • プラグインの名前、バージョンをどのように記述すればよいかわからなかった。

Composer で管理できる CakePHP 2 のプラグインを調べる方法!そして composer.json への記述方法

  • Packagist で検索する。
  • 探し方は、プラグインの GitHub ページにあるリポジトリ名またはオーナー名で検索する。

composer.json  に適当に CakePHP プラグイン設定を書いてみて失敗した風景><

スクリーンショット 2014-09-09 21.11.07.png

[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 で扱えるかどうかの判断、そしてインストール方法はこちらのサイトにございます!

スクリーンショット 2014-09-09 21.32.27.png

「ichikaway」で検索してみますと、Packages の検索結果として、「ichikaway/cakeplus」が表示されました!

これをクリックして詳細ページへと移動します。

スクリーンショット 2014-09-09 21.35.09.png

ページの 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

次のように無事アップデートできました♪

スクリーンショット 2014-09-09 21.41.42.png

[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 での管理は諦めて自力で面倒を見るしか無いのかしら。。。

以上です。

コメントを残す