LUMENとLARAVELのメモ

作成日:2019-03-22, 更新日:2022-11-29

基本

・Laravelはフレームワーク
・Laravelからパフォーマンスを向上させるために機能を削ったり、ゴニョゴニョしたヤツがLumen
・LumenはAPIサーバなどの用途に使いやすい・・・らしい。
・Laravelは人気があり、色々と用意してくれているので開発速度が速くなる。その代わり処理速度は遅い
・ファイル数は多い→(環境を移すとき)アップに時間がかかる
・Laravelは理解を深めながら使うんじゃなくて、理解を深めてから使う必要アリ
・「laravel 〇〇関数名〇〇」でGoogleさんに聞いても公式サイトが出てこない(※FuelPHPだと公式が出てくる)

ヘルパ関数とファサード

調べてもよく分からん。

「app\helpers\〇〇〇.php」を追加して「\App\helpers\sample::〇〇〇();」で何かするほうがメンテが楽だと思う。
→namespaceやuseは便利だけど、複数のサイトを管理しているとドコに何があるのかが分からなくなるから苦手

ヘルパ関数

・グローバル関数

ファサード(Facade)

・CakePHPで言うところの「コンポーネント」
・staticクラスっぽく見えるけど別物。
・config/app.phpのaliasesで設定。
・色んなものに依存しまくって裏側を全部やってくれるヘルパ関数みたいなもの(DIコンテナ、IoCとかでググる)
・テスト記述時にモック入替え可能→未調査

Laravelを勉強してて・・・所感

ひとまずアンチLaravelになった。
アンチLaravelでも使う必要があるから愚痴りながらでも使う。

Xoopsやsmartyよりは理解しやすい

Xoopsやsmartyに比べると分かりやすいけどFuelPHPに比べると分かりづらい。
→「昔のMACのOS(漢字トーク)」と「Windows」ぐらいの違いを感じる。
※Windowsはインストしたアプリを削除するにはアンインストーラーを使わないと面倒なコトになる(昔のMACはアプリと環境設定ファイルを削除すれば大丈夫だった→Windowsはレジストリもいじらなくちゃいけない)

Xoopsやsmartyはソースを追いかけられない。
多分、追いかけることはできるけど、ドコを見れば追いかけることができるのかが分からない。

Laravelは追いかけることは可能。途中で迷子になることもある。

Laravelで一つのサイトだけ運用する人にとっては便利

複数のサイトを運用する場合、面倒。

Artisansコマンドを叩く

・何かを作るたびにコンソールでArtisansコマンドを叩く必要あり
→叩かなくても手動でファイルを用意すればいいんだけど修正箇所があちこちあるので面倒
※ファイルを作って、そのファイルの呼び出し元を別で設定して、その設定を読み込ませる設定を別のトコでして・・・という感じ。

そのサイト(アプリ)に特化

・ことあるごとにルーティングやバリデーション、ミドルウェアを作る必要あり。
→そのサイトに特化したソースになるので他のサイトからコピペしづらい。

色々と用意してくれている

色々と用意してくれているのは分かるけど何を用意してくれているのかは分からない
→公式を全部読めば分かると思う。

公式を全部読まないなら「自作したほうが早くない?」と自問自答しながら調べるコトになる

ルーティングのトコで色々してくれる

ルーティングのタイミングで色々としれくれるのは便利だと思う。
調べると「〇〇を記載するだけで動作します」的な感じ。

ただ、動作する理由が分からない。
→例外的な処理を追加したいときあちこちソースを調べる必要がある。
※公式を全部読めばいい。

調べた結果・・・Artisansコマンドを叩く。or ファイルを作って呼出し元を用意して、用意した呼出し元をどっかに登録して・・・

ルーティングは都度登録

・ページを増やす→ルーティングに記述を行う。

以前のバージョンは省略ができたそうだ。
・以前「URL:/hoge」以下は「コントローラー:hoge」で紐づけることが出来たそうだ
・現在はできない(※設定をいじるなら可能だそうだ)
→現在は「URL:/hoge/xxx」と「コントローラー:hoge@xxx」とすべて紐づける必要あり
※「コントローラーを見ないと紐づけが分からないってのはダメ」という考えだそうだ

単語の説明がない

・guard、ファサード、ヘルパー、ミドルウェアにProviders、Eloquent・・・それぞれの役割についての説明が基本、無い。
※公式の英語を読めば理解できるかもしれない。

日本語の解説サイトは無駄に多い

Googleの検索結果の1~10位の内、半分以上は同一内容。
※英語サイトを読めば解決すると思う。英語が苦手なら頑張れ。俺も頑張る。

中途半端なコピペだったり、元のサイトが中途半端だったかもしれないが・・・「どっから出てきた?」という変数・関数がよくある。

まとめ

・Laravelは「勉強してから使う」が正解
※FuelPHPは「勉強しながら使う」が可能

関連項目

Laravel、Lumen

LUMENの「.env」の設定
https://blog.shimabox.net/2016/11/07/laravel-lumen-helloworld/

LUMENとLARAVELの違い
https://laravel10.wordpress.com/2015/04/21/lumen%E3%81%A8laravel%E3%81%AE%E9%81%95%E3%81%84/

LumenとLaravelの違いメモ
https://qiita.com/crhg/items/2ca642904955a2846de7

公式

Laravel【公式】
Lumen【公式】
Lumen【GitHub】

公式:laravel5.7のドキュメント

Prologue Release Notes - Upgrade Guide - Contribution Guide - API Documentation
Getting Started Installation - Configuration - Directory Structure - Homestead - Valet - Deployment
Architecture Concepts Request Lifecycle - Service Container - Service Providers - Facades(ファサード) - Contracts
The Basics Routing - Middleware - CSRF Protection - Controllers - Requests - Responses - Views - URL Generation - Session - Validation - Error Handling - Logging
Frontend Blade Templates - Localization - Frontend Scaffolding - Compiling Assets
Security Authentication - API Authentication - Authorization - Email Verification - Encryption - Hashing - Password Reset
Digging Deeper Artisan Console - Broadcasting - Cache - Collections - Events - File Storage - Helpers(ヘルパー関数) - Mail - Notifications - Package Development - Queues - Task Scheduling
Database Getting Started - Query Builder - Pagination - Migrations - Seeding - Redis
Eloquent ORM Getting Started - Relationships - Collections - Mutators - API Resources - Serialization
Testing Getting Started - HTTP Tests - Console Tests - Browser Tests - Database - Mocking
Official Packages Cashier - Dusk - Envoy - Horizon - Passport - Scout - Socialite - Telescope

Laravel Cheat Sheet