かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

CakePHP3 Composerでインストールしたらautoload.phpが読み込めないエラーが出た

Mac OS X Yosemite環境・Homebrewでcomposerコマンドをインストールしています。

CakePHPをComposerでインストール

CakePHPをComposerでインストールできるようだったので公式ドキュメントを元にターミナルを起動して下記コマンドで インストールしました。

$ php composer.phar create-project --prefer-dist cakephp/app [app_name]

autoload.phpが読み込めないエラーが出た

インストール後アプリのURLにアクセスすると下記のようなエラーが表示されていました。

Warning: require(/myapp/vendor/autoload.php): failed to open stream: No such file or directory in /myapp/config/bootstrap.php on line 23

Fatal error: require(): Failed opening required '/myapp/vendor/autoload.php' in /myapp/config/bootstrap.php on line 23

/venerフォルダ内をみてみるとemptyとなっていました。何も無いので当然autoload.php読み込めないですよね...

インスールに問題があったのだと思いComposerでインストールした際のログを見ていると次のような問題があったと表示されていました。

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - cakephp/cakephp 3.2.x-dev requires ext-intl * -> the requested PHP extension intl is missing from your system.

どうやらphp.intlというものが無いのが原因のようです。

php.intlをインストールする

Homebrewで検索します。

$ brew search intl
homebrew/php/php53-intl         homebrew/php/php56-intl
homebrew/php/php54-intl         homebrew/php/php70-intl
homebrew/php/php55-intl         intltool

自分の環境のバージョンにあったものをインストールします。

$ brew install php54-intl

サーバーを再起動する

php.intlのインストールが完了したら、サーバーを再起動させるようにメッセージが出ているので、それに従ってサーバーを再起動させます。

再度CakePHPのアプリページにアクセスする

f:id:kikiki-kiki:20151103150415p:plain
上のようなページが表示されていればOK


[参考]

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)