覚書
復習用。。
ドキュメント:https://readouble.com/laravel/
導入手順
php.iniの中を修正
extension=fileinfo
をコメントアウトする。
Composerを入れる。
cd laravel_project_folder
# Laravelインストーラを使う版()
laravel new
# もしくは↓
# Composerから入れる版(PhpStormからLaravel入れるととこっち。version、オプションは要確認)
composer create-project --prefer-dist laravel/laravel 5.8
# どちらかというと、composerから入れた方が良い?
インストールが終わったら
php artisan serve
やっといた方がいいこと
IDE
PhpStorm推奨。Larvel用のプラグインがあって補完が強力。
でも、EclipseでやったことないからEclipseだとどうなるかは不明。
PhpStormの初期設定 の 初期設定を実行する
をやる。
その後、↓を実行すると
-
routes\web.php
の中とかでContorllerの補完や、Controllerへのジャンプ等が効くようになる。 - Facadeになっている場合、Facadeの実装へつないでくれる中間コードを生成してくれる。
- 等
※上手く動いてない場合はPhpStorm再起動(Just restart
)するといいかも。。?
composer require --dev barryvdh/laravel-ide-helper
php artisan ide-helper:generate
php artisan ide-helper:meta
php artisan ide-helper:models
※modelsの方は、yes/no
を聞かれるが、no
で。no
にすると、_ide_helper_models.php
が生成され、yes
にすると、Modelのソースに直接修正が入る。
↑の後、config/app.php
の providers
に↓を入れる。(多分、5.5以降は不要。元ネタを参照)
Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,
※元ネタ、https://github.com/barryvdh/laravel-ide-helper#complete-phpdocs-directly-from-the-source
デバッグ
デフォルトのままだとデバッグ(というかブレークして変数の中身をみたりっていうのが)できない。
この記事 参照。
※APIにも対応
debugbar等で画面に表示するタイプのヤツは、IDE上でブレークするのに比べるとどうしてもきつい。
画面にデバッグ情報を表示する場合はこの辺りも参考に
https://note.mu/kurashicom_tech/n/n09b31d151f06
DB接続
php.iniの↓のコメントアウトを解除する必要あり。
;extension=pdo_mysql
ログ
標準出力にログが出せるようにしておく。
ログのフォーマットを決めれるようにしておく。
ミドルウェア(Laravelの)
リクエスト、レスポンスのログを出す。
Nginx、php-fpm
php-fpmの役割、https://hackers-high.com/linux/php-fpm-config/
Nginxからリクエストを転送してもらう必要ある。
セッション管理
redisに切り替えるの推奨。デフォルトだと起動しているサーバに保持する。
やり方
-
https://readouble.com/laravel/5.8/ja/session.html の
設定
のところ
※config/session.php
内のdriver
をredis
に変える -
ドライバの事前要件
のRedis
のところ参照
routes
- APIはapi.phpに書く
- urlのプレフィックスに/api/がつく
- ミドルウェアが極小
- 画面はweb.phpに書く
- ミドルウェアが最初から沢山
ミドルウェアの詳細は app/Http/Kernel.php
メッセージの取得
"msg_id" => ":msg_id message_string"
↑のメッセージが定義されてるとして、msg('MSG_ID') とかしたら、"MSG_ID message_string" が取得できるようなメソッド作る。
モック
TODO
記憶の片隅
artisan
php artisan serve --host 0.0.0.0 --port 8000
にしないと、ローカルからしか接続できない。
名前付きルート
ルートを設定する時は名前つける。リダイレクトとかする時は名前で指定する。
※URLが変わっても遷移先の指定をしている部分のソースの修正なしで追従できる。
artisan
artisan
というコマンドを実行している風に見えるが、artisan
をphpとして実行しているだけ。artisan
の中身はphp。
サーバ
開発中は php artisan serve
で起動したサーバを使用してよいが、リリースする際には nginxやphp-fpmを使用する必要がある。
※artisan serve
で起動しているサーバはシングルスレッドなので処理能力が超低い、確か。
サーバレス
Laravel使うと、Lambdaでは起動できない。(少なくとも2019の1月頃は)
AWS上で実行する場合、EC2を使うか、ECSを使うか。
Lambdaで動かしている日本語の記事が出てきた(2019/09時点)。
-
AWS Lambda で Laravel を動かしてみた
※ただ、まだ、商用でやる感じではない気がする。。
※日本語じゃないリンク