初めてCakephp3でプラグインを書いた

php.iniを読み込みたいのが動機

CakePHP3になれるために、自分で使うようのシンプルなブログCMSツールを作っていて、アップロードディレクトリを変更したいという理由で、 php.iniを変更したかったのですが、CoreのCakeServerコマンドではphp.iniを読み込んでのビルドインサーバー起動ができなかったので、 プラグイン作成の練習も兼ねてサクッとやってみました。

名前はInstantCakeにしてあります。5分で考えた名前なので、そのうち変更するかもしれません。

リポジトリはこちらです。Pakegistにも登録してあるので、composerでインストールできちゃいます。

webuilder240/instant-cake

InstantCakeのインストール方法

リポジトリのREADME.mdにも書いてありますが、

Cake3から本格的にComposerをガッツリ使う仕様になっているので、composerでinstallしましょう。

1
composer require webuilder240/instant-cake

次に、config/bootstrap.phpにPluginの読み込みをさせましょう。 ビルドインサーバー自体本番環境での使用は推奨されてないので、開発環境でのみ読み込むようにしましょう。

1
2
3
4
<?php
    if (Configure::read('debug')) {
        Plugin::load('InstantCake');
    }

使い方

まずはビルドインサーバーで読み込みたいphp.iniファイルを作成しておきましょう。 下記サンプルではCake3のROOTディレクトリに置いていると思っておいてください。

1
2
# php.iniの箇所は読み込みたいphp.iniのファイルを指定しましょう
bin/cake instant_cake -c php.ini

機能としてはこれだけです。

-cのオプションがないと、bin/cake server のコマンドと同一のものになります。(内容も -cオプションの追加以外は cake serverのものとほぼ同一です。)

-cのオプションを指定できるようにしただけなので、なんてこと無いプラグインです。

ですが、いちいちVagrantで用意しなくてもphp.iniをいじれるのはいいですよね。

よろしければぜひ使ってみてください。

プルリクも歓迎します〜。