CakePHP3:composer install時にディレクトリを作成する

Composerを使ってCakePHPをインストールすると、logとかtmpディレクトリを適宜作って、かつ、パーミッションを設定してくれます。 これまでは、アプリケーション独自のディレクトリを作る場合に手動でスクリプトを叩いていたのですが、面倒かつ、抜けがでるので Composerにやらせることにしました。

やり方は簡単で、composer.jsonに次の記載をするだけです:

    "scripts": {
        "post-install-cmd": [
             "mkdir -p ./data/uploads; chmod 777 ./data/uploads",
             "App\\Console\\Installer::postInstall"
        ],

App\\Console\\Installer::postInstallは最初から入っていて、tmpやらlogやらを作ってくれます。 その上の行でdata/uploadsディレクトリを作成し、パーミッションを設定しています。

シェルスクリプト、もしくはPHPでプログラムを書いて作成に失敗した場合はエラーを出すとよりよいでしょう。