LoginSignup
3
2

More than 5 years have passed since last update.

[CakePHP 2.x]CakePHPプラグインの作り方

Last updated at Posted at 2016-10-06

なぜプラグインを作るのか

そこに共通機能があるから!

Controllerの共通機能をComponentにするのと同じように、
プロジェクトの共通機能はプラグインにしましょう。


環境

  • PHP 5.6
  • CakePHP 2.x

プラグインに必須のファイル

composer.json

以上


プラグイン側のcomposer.json

composer.json
{
    "name": "パッケージ名",
    "type": "cakephp-plugin",
    "description": "説明",
    "repositories": [
        { "packagist": false },
        {
            "type": "composer",
            "url": "https://packagist.jp/"
        }
    ],
    "require": {
        "composer/installers": "*"
    },
    "extra": {
        "installer-name": "プラグインのインストール名"
    }
}

必須項目

  • name:パッケージ名。小文字。プラグインをインストールするときに指定する名前。
  • type:プラグインの種別を指定できます。これはcomposer/installersライブラリの機能。CakePHPの場合はcakephp-pluginとします。
  • require:typeを指定するためにcomposer/installersをインストールするようにします。

任意の項目

  • extra:composer/installersライブラリの機能。installer-nameを指定すると、パッケージ名ではなく、ここで指定されたディレクトリにインストールされるようになる。

プラグインを利用する側のcomposer.json

以下が、プラグインを利用する側のcomposer.jsonの例です。
手で書いても良いですが、composerコマンドで指定するほうが良いです。
注:以下では、非公開のプライベートリポジトリを使用するため、リポジトリURLを指定しています。

composer.json
{
    "repositories": [
        {
            "type": "git",
            "url": "git@github.com:リポジトリ名"
        }
    ],
    "require": {
        "パッケージ名": "バージョン"
    }
}
composerコマンド
composer require 'パッケージ名:バージョン'

プラグイン内のファイル構成

必要な機能だけ用意することができます。

プラグインroot
+---Lib
+---Model
+---Test
|   \---Case
|       \---Model
\---composer.json

プラグインのテスト

プラグインを利用する側から、通常のテストと同様に実行することができます。

公式ドキュメントにも記載されています。

# プラグインのテストを実行する
./Console/cake test プラグイン名 Controller/コントローラ名

コマンドラインからのテスト実行

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2