PHP-Laravel- プログラミング

Laravelとは?現在の、PHPフレームワークの筆頭として大活躍

Laravel とは?

Laravel は、PHP の Web アプリケーションフレームワークです。

多くのプロジェクトの開発で、よく使われる共通タスクを容易にすることによって、開発の苦痛を取り除くことを目的として作られています。

現在、最新版がバージョン10となっています。※2023/8 現在 詳細はこちら

基本的な機能

  • シンプルで高速なルーティングエンジン
  • 強力な依存性注入コンテナ
  • セッションやキャッシュを保存する複数のバックエンド
  • 表現力豊かで直感的なデータベース ORM
  • データベースに依存しないスキーママイグレーション
  • 堅牢なバックグラウンドジョブ処理
  •  リアルタイムのイベント放送

Laravel はアクセスしやすく、パワフルで、大規模で堅牢なアプリケーションに必要なツールを提供します。

MVC モデル

モデル、ビュー、コントローラー(いわゆる MVC モデル)を採用しています。

これにより、「どこに何の処理を書くのか」というのをプロジェクトで統一しやすくしています。

MVCの説明

Composer によるパッケージ管理

Composer とは PHP のパッケージ管理ツールです。

便利なパッケージがたくさんあるので、基本的に困ることはなく、コマンド1つでいろんな悩みを解決してくれます。

公式ページの URL https://getcomposer.org/

英語の意味は、「指揮者」です。
Composer をインストールする方法はこちらの記事

Composer

Blade テンプレートエンジンによる軽く、分かりやすい画面の作成

Blade テンプレートは、PHP の書き方をベースとして、XSS 対策を簡単に行うことができます。

また、その方法が、 {{ }} で囲うだけで、フロントエンドフレームワークである Vue と同じなので覚えやすいです。

CSRF 対策が立ったの1行で実装できます。

表示されるファイルの情報は、自動的にキャッシュ化され、表示の高速化に繋がっています。

また、それ以外の部分は、HTML + CSS と全く同じように書けて、共通化させたいところは component 化させることも可能で、
色々な開発方法が可能となっています。

Eloquent を使った簡単なデータ取得

Eloquent は、Laravel が採用しているデータを操作するための仕組みのことです。

データに紐づいたデータを取得(リレーション)することを簡単、かつ柔軟に操作することが可能になっています。

初心者にも上級者にも合う

Laravel は「なんでもできるフレームワーク」と言っても良いのではないかと僕は思います。

もしくは、「どんな書き方をしても、動かそうと思えば動かせるフレームワーク」とも言い換えられます。

なぜ初心者に合うのか

情報量が非常に多いです。

初心者は、一番最初フレームワークをみた時に何も分からないと思います。

分からないときはネットで検索をかけて調べるしか方法はないと思いますが、Laravel であればネットに情報が無限に転がっているので、
非常に解決しやすいです。

なぜ上級者に合うのか

ここで指す上級者というのは「サービスを作る人」という意味での上級者で、フレームワークの上級者という意味ではありません。

Laravel は、冒頭の引用のところでもあったように、「めんどくさいところを解決する雛形」です。

ある程度雛形が用意された状態から、自分たちが作りたいサービスの形へ変化させるのが最も効率が良く、結果として早く完成させることができるはずです。

フレームワークを利用して、早く質の良いものを作るというのはプログラミングの世界だけではなく、スピーチやプレゼンなどにも
フレームワークがあります。

Ruby on Rails との比較

Ruby on Rails は Ruby のフレームワークで MVC モデルで Laravel と似たようなフレームワークです
(Laravel は RubyonRails から多大なる影響を受けて作られているはずです)

Laravel は 2011 年にリリースされ、バージョン 5.5 で劇的に使いやすくなった、ということでそこから需要が増えています。

現在では、若干ですが Laravel の方が Google トレンド上の数値は上みたいですが、「同じくらい」人気だと思います。

自分は、フレームワークがどちらが良いとかは思わないのですが、ruby は言語的に独特な書き方があるので、今まで php をやってきた人であれば、Laravel の方がおすすめなのではないかな?と思います。

自分は、クラウドワークスで案件を取るために RubyonRails でブログを作成して、その後 Laravel を学習する機会があり現在 Laravel のプロダクトに関わっていますが、そんなに差はないです。

つまり、RubyonRails を使えれば Laravel が使えないということはないでしょうし、Laravel が使えれば RubyonRails が使えないということはないと思います。もちろん好みはあると思いますが。

要するに、「Laravel と Rails のどっちを学ぼうか?」となった時はそこまで悩む必要はないと思います。

このブログにたどり着いた時点で Laravel を学んでいい気はします。

https://trends.google.co.jp/trends/explore?date=all&q=Rails,Laravel

Laravel おすすめ学習書

動かして学ぶ!Laravel開発入門
デジタルハリウッド・ジーズアカデミーなどでLaravel講座をもつ著者が、多くの受講生の声を反映して執筆したLaravelの入門書です。

サンプル作りを通して、LaravelによるWebアプリの設計・作成の基本、ルーティング、リエクスト処理、ビュー、認証、ページネーション、モデルのリレーション、ファイルアップロードの基本などを一通り学ぶことができます。

PHPフレームワークLaravel入門第2版 [ 掌田津耶乃 ]

PHPフレームワークのロングセラー定番解説書が、新バージョン対応で改訂! 本書は、Laravelのインストールから、フレームワークの中心になるModel-View-Controller(MVC)の使い方、開発に役立つ各種機能をわかりやすく解説した入門書です。

新しいディレクティブ(@csrf/@error)、バリデーションルール(増補解説+自作)、Bootstrapによるぺジネーションリンク、Auth(Laravel/uiパッケージ)の使い方などの項目を追加しました!

Docker & Laravel Sailの最新開発環境で現場のLaravel9を学ぶ!

まとめ

以上、ざっくりではありますが Laravel についてまとめてみました。

Laravel は Vue を入れたり React を入れることも簡単ですし、Blade テンプレートはデプロイすれば分かりますが本当に軽いですし、もちろん API としても使うこともできます。

Laravel は半年や1年でバージョンがアップされており、現在も積極的に開発が進んでいるフレームワークなので、もっと便利になっていくのでは?と期待しています。
ポートフォリオで何のフレームワークを覚えようか?と悩んでいたりする方は、Laravelをおすすめします。
(つい最近知り合いが Laravel のポートフォリオで未経験採用されています)

自信を持って学習を進めていいのではないかな?と思います。

こちらいろいろとまとめて書いています。併せて読んで頂けると幸いです。
https://akihisa-h.com/category/programming/php-laravel/
https://akihisa-h.com/category/programming/php/

それでは、最後まで読んでいただきありがとうございました。

-PHP-Laravel-, プログラミング