tohokuaikiのチラシの裏

技術的ネタとか。

「Laravelリファレンス」 2-1 はじめてのLaravel

この本の2章に沿った勉強。基本的にこの本は手取り足取りの入門書では無くて、WEBの情報を本としてまとめてくれたくらいの感じで取っ付くと良いかも。まぁ、「Laravelリファレンス」だもんね。

Laravel リファレンス[Ver.5.1 LTS 対応] Web職人好みの新世代PHPフレームワーク

Laravel リファレンス[Ver.5.1 LTS 対応] Web職人好みの新世代PHPフレームワーク

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