cakephp3に既存プラグインを導入する

新規でプラグインを追加する場合、「bin/cake bake plugin hoge」とすれば各所にコードを追加してくれるが、新しくプラグインを導入する場合はちょっとハマることがあるのでまとめておく。

cake/vender/cakephp-plugins.phpに追加

'Hoge' => $baseDir . '/plugins/Hoge/',

cake/composer.jsonに追加

  "autoload": {
"psr-4": {
"App\\": "src/",
"Hoge\\": "./plugins/Hoge/src",//追加
}
},

cake/config\bootstrap.phpに追加

Plugin::load('AoringoOreo', ['routes' => true]);

最後にsshでcomposerのキャッシュを削除する。

$ composer dumpautoload

cakephp3をxserverにを導入する

sshでxserverにログインし、ディレクトリに移動。

$ curl -s https://getcomposer.org/installer | /usr/bin/php7.1

phpのバージョンを指定してからインストールする。バージョン指定していないとミスる。


{
"require": {
"monolog/monolog": "1.0.*"
}
}

composer.pharが入ったことを確認して、同じ場所にcomposer.jsonとして上記コードを配置する。やらないとmonologのバージョンが指定されていないぞって怒られる。


$ /usr/bin/php7.1 composer.phar install
$ /usr/bin/php7.1 composer.phar update

sshに戻り、phpのバージョンを指定してからcomposerのインストールとアップデート。composerの拡張子も含める。これでcomposerの導入ができる。


$ /usr/bin/php7.1 composer.phar create-project --prefer-dist cakephp/app

これでようやくcakephpが入る。

初期画面が見れた。まだ何もしていないのに、「終わった・・・」感が出てしまう。

.htaccessファイルをルートディレクトリに作って、appディレクトリにアクセスするようにする。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !/app
RewriteRule ^(.*)$ app/$1 [L]
</IfModule>

Xserverだとcakephp3.6以降でエラーが出る。

xserver環境だと、3.6以降でutf8mb4でmysqklでログインできない、と出る。cakephpの内部コードと合わないらしく、ここは手っ取り早くマイナーバージョンを指定してインストールする。


$ /usr/bin/php7.1 composer.phar create-project --prefer-dist cakephp/app:3.5.*

今度こそデータベースまで完全にOKだ。

参考

xserverにcakePHP3をインストールしてみた

CakePHP3系をレンタルサーバーで初期設定完了!エックスサーバー編。

XSERVER X10 に CakePHP 3.x をインストールする|加藤 正人|株式会社パルムゲート