この本の2章に沿った勉強。基本的にこの本は手取り足取りの入門書では無くて、WEBの情報を本としてまとめてくれたくらいの感じで取っ付くと良いかも。まぁ、「Laravelリファレンス」だもんね。
Laravel リファレンス[Ver.5.1 LTS 対応] Web職人好みの新世代PHPフレームワーク
- 作者: 新原雅司,竹澤有貴,川瀬裕久,大村創太郎,松尾大,丸山弘詩
- 出版社/メーカー: インプレス
- 発売日: 2015/12/04
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
Composerや開発環境は一通りそろえた。VagrantでDebian8を作成した。
Laravelのインストール
とりあえず、
$ composer global require "laravel/installer:~1.1"
書籍には、installer=~1.1って書いてあったのだけど、調べても=~っていうシンタックスは無いし、:でも大丈夫だったので=は:のシノニムかな?
特に何もエラーっぽいのでなかったので大丈夫かな?
が、Laravelコマンドが使えない
そもそも環境変数の$COMPOSER_HOMEが無い。無いので、$composer global info とかしても何も情報で無いっぽい。仕方ないので、.bashrcに
export COMPOSER_HOME=~/.composer
を記述。
ていうか、そもそもこのディレクトリなかったし。
改めて先ほどのコマンドを実行
すると最初の一行に
Changed current directory to /home/vagrant/.composer
あれっ?ということは、・・・と思って先ほどの実行結果を見てみると
Changed current directory to /home/vagrant/.config/composer
って出ていた。
なるほど、$COMPOSER_HOMEを指定してないとこのディレクトリが仮のCOMPOSER_HOMEとして使われるのか。多分、HOMESTEAD使ってる前提なのかすっ飛ばしてるけど、この環境変数設定を書いておいてくれると嬉しい。
ということで、laravel installerの再インストール完了。
.bashrcに
export COMPOSER_HOME=~/.composer export PATH=$PATH:~/bin:$COMPOSER_HOME/vendor/bin
と追加。source .bashrcでlaravelコマンドが使えるようになった。
vagrant@debian:~$ laravel new laravel/20161214
としてLaravelプロジェクトを作成。laravel/20161214/vendorにものすごい勢いでライブラリが蓄積されていく
vagrant@debian:~/laravel/20161214$ composer info laravel/framework name : laravel/framework descrip. : The Laravel Framework. keywords : framework, laravel versions : * v5.3.26
最新安定板の5.3.26がインストールされた。
日本語パッケージの追加
vagrant@debian:~/laravel/20161214$ composer require laravel-ja/comja5:~1
問題無くインストール完了。
アプリケーションの設定
本書では「Laravelは規約よりも設定を重視」とあるけど、これは最近のFrameworkなら「設定より規約」なんじゃないか?文章の意味も通らなくなってるし。
設定
メモ * envファイルにデフォルトDBの設定値を記述 * php artisan clear-comliedでコンパイル済みコアClassファイルの削除 php artisan optimizeコマンドだと.envのAPP_DEBUG=trueの場合にコンパイル済みコアClass削除する。
Whoopsの利用
エラー表示にWhoopsを使う場合。
本書では、$composer require しているけど、折角なのでcomposer.jsonに書いてcomposer updateする。
"require-dev": { ... "filp/whoops": "~2.1"
まぁ同じことですが。ただ、whoopsは開発環境だけで良いはずなので、
$ composer require filp/whoops:~2.1 --dev
とした方がいいかも。
app/Exceptions/Handler.php のサンプルコードに無かったので写経。TYPOが心配。
<?php public function render($request, Exception $exception) { if (config('app.debug')){ $whoops = new \Whoops\Run; $whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler()); return new \Illuminate\Http\Response( $whoops->handleException($exception), $exception->getStatusCode(), $exception->getHeaders() ); } return parent::render($request, $exception); }
artisanコマンド
php artisanで実行できるコマンド。コマンド無しで実行するとコマンドリストが出る。
artisan serve
Railsのビルトインと同じようにアクセス可能ホストの制限が掛かっているので下記のようにして起動すると良い。
$ php artisan serve --host 0.0.0.0
Laravelのartisanでサーバを立ち上げた時にプライベートIPでアクセスできない問題と、その対処法 - Front-end beginner's luck