初めに
こんにちはスタイルエッジLABOのSです。
初めて元Sler(Laravel初心者)がLaravelを使ってみた感想などまとめます。
この記事はこれまでPHPでのシステム開発に触れる機会が少ないエンジニアでも
理解が深まったということでこれからPHPに触れていく方に少しでも役に立てば幸いです。
Laravelのディレクトリ構成
app・・・アプリケーション本体 config・・・諸々の設定(設定というより系統別の定数群など諸々) database・・・migration,seederなどデータベースに関連するファイルを格納 public・・・ユーザーに公開するディレクトリ(css, javascriptなどを格納) resources・・・主にビュー(画面のテンプレート)など格納する routes・・・大雑把に言うと入力や選択されたURLを設定に基づいて該当のコントロールファイルなどに 導くファイルが格納される
※その他、ディレクトリは多数は存在しますが割愛します。
サクッと認証フォームが作成できる!
Laravelでは
php artisan make:auth php artisan migrate
を実行するだけでサクッと認証フォームが作成できます。
作成したフォームを表示した結果がこちら。
※実際にはphp artisan migrateを実行しなくてもフォームの表示だけならできます。
テンプレートエンジンがBlade
ちょっと調べてみるとtwig, volt, smarty, mustacheなど
テンプレートエンジンは多々あって
比較したり使ったりしてみると面白いかと思います!
特筆すべきではないかもしれませんがディレクティブに対して@を付けるため
他のテンプレートエンジンと異なりディレクティブがわかりやすくお気に入りです!
例)
@if ($cnt > 0) ※ディレクティブ部分 {{ $cnt }}件のデータがあります。 @else データがありません。 @endif
※ディレクティブ・・・コンパイラーに与える指示文。
クエリビルダーで大体のSQLが作成できる
クエリビルダーとはデータ取得のために発行するSQLを作成する必要がありますが、
それを簡単に組み立てる仕組みです。
慣れさえすれば比較的容易にSQLを作成できると思います。
例えば
$a = DB::table('A') ->whereIn('id', [1, 2, 3]) ->get();
のように「A」テーブルよりカラム「id」が「1,2,3」と一致するデータの結果を取得することができます。
※getメソッドは、PHPのstdClassオブジェクトのインスタンスを結果として含む、
Illuminate\Support\Collectionで返却されます。
但しクエリビルダーで作成されるSQLについては
必ず実際に発行されるSQLを確認しましょう。
例えば
SELECT * FROM A WHERE id IN (1, 2, ・・・)
のようなデータが増えると実行エラーが発生するようなSQLが
意図せず出来てしまう恐れもあります。
動いたからといって結果を確認せずに使用するのは控えましょう。
SQLの良し悪しはレスポンスに直結します。
つまりSQLが遅い⇒時間がかかる⇒使用者のストレスが溜まる⇒矛先が管理者へ
という悪い循環が出来てしまい誰も幸せになりません。
なので設計・製造時から必ず考慮しましょう!
※遅いSQLを組む必要があるというのはDBの構造がそもそも・・・
という可能性もあるので設計の時点で意識しておくことが大事です。
まとめ
今回はLaravelについて触れてみました。
覚えることは色々ありますが逆に覚えてしまえば非常にわかりやすい印象を持ちました。
世の中には色々とフレームワークが存在します。
それぞれ一長一短があり常にベストなフレームワークは存在しないと思います。
開発が始まった時の状況やニーズで選択できるものも変わってくると思います。
その時に取捨選択するための情報を持っていることが大切です。
なので情報に対する感度を高めておくことが改めて大切かなと思いました。
今後更にコア部分にも触れられることを期待・・・したいと思います!
※初心者でも先輩方に教わりながら今回学ぶことができよかったです。
最後に
スタイル・エッジ LABOでは、一緒に働く仲間を募集しています。 もし興味を持っていただけましたら、ぜひ採用サイトものぞいてみてください!