Laravelとは?現在の、PHPフレームワークの筆頭として大活躍
いつもご利用ありがとうございます。このブログは、広告費によって運営されています。
Laravel は、日本でも世界でも人気のあるフレームワークです。現在 PHP でどのフレームワークを採用するかといえば、まず最初に上がってくる選択肢の1つです。
今回はその Laravel について書いていきたいと思います。
Laravel とは?
Laravel は、PHP の Web アプリケーションフレームワーク
多くのプロジェクトの開発で、よく使われる共通タスクを容易にすることによって、開発の苦痛を取り除くことを目的として作られています。
引用 https://github.com/laravel/laravel
Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as:
基本的な機能
Laravel の機能をざっくり説明
- シンプルで高速なルーティングエンジン
- 強力な依存性注入コンテナ
- セッションやキャッシュを保存する複数のバックエンド
- 表現力豊かで直感的なデータベース ORM
- データベースに依存しないスキーママイグレーション
- 堅牢なバックグラウンドジョブ処理
- リアルタイムのイベント放送
Laravel はアクセスしやすく、パワフルで、大規模で堅牢なアプリケーションに必要なツールを提供します。
引用https://github.com/laravel/laravel
Simple, fast routing engine. Powerful dependency injection container. Multiple back-ends for session and cache storage. Expressive, intuitive database ORM. Database agnostic schema migrations. Robust background job processing. Real-time event broadcasting. Laravel is accessible, powerful, and provides tools required for large, robust applications.
ざっくり説明するなら、「早い」「柔軟」「セキュリティ」と言っています
MVC モデル
モデル、ビュー、コントローラー(いわゆる MVC モデル)を採用しています。
これにより、「どこに何の処理を書くのか」というのをプロジェクトで統一しやすくしています。
Composer によるパッケージ管理
Composer とは PHP のパッケージ管理ツールです。
便利なパッケージがたくさんあるので、基本的に困ることはなく、コマンド1つでいろんな悩みを解決してくれます。
公式ページの URLhttps://getcomposer.org/
英語の意味は、「指揮者」です。
Blade テンプレートエンジンによる軽く、分かりやすい画面の作成
Blade テンプレートは、PHP の書き方をベースとして、XSS 対策を簡単に行うことができます。
また、その方法が、 {{ }} で囲うだけで、フロントエンドフレームワークである Vue と同じなので覚えやすいです。
CSRF 対策が立ったの1行で実装できます。
=>CSRF トークンの設置方法についてこの記事で書いています。
表示されるファイルの情報は、自動的にキャッシュ化され、表示の高速化に繋がっています。
また、それ以外の部分は、HTML + CSS と全く同じノリで書け、共通化させたいところは component 化させることも可能で、色々な開発方法が可能となっています。
Eloquent を使った簡単なデータ取得
Eloquent は、Laravel が採用しているデータを操作するための仕組みのことです。
データに紐づいたデータを取得(リレーション)することを簡単、かつ柔軟に操作することが可能になっています。
初心者にも上級者にも合う
Laravel はなんでもできるフレームワーク
Laravel は「なんでもできるフレームワーク」と言っても良いのではないかと僕は思います。
もしくは、「どんな書き方をしても、動かそうと思えば動かせるフレームワーク」とも言い換えられます。
なぜ初心者に合うのか
Laravel は初心者にオススメのフレームワークです。
理由としては、
- 情報量が非常に多い
- コントローラーに全てを書いても動く
- ログイン機能など、よく使われる機能のほとんどはパッケージで実装できる
初心者は、一番初めのとき、フレームワークをみた時に何も分からないと思います。
分からないときはネットで検索をかけて調べるしか方法はないと思いますが、Laravel であればネットに情報がたくさん見つかりますので、非常に解決しやすいです。
なぜ上級者に合うのか
ここで指す上級者というのは「サービスを作る人」という意味での上級者で、フレームワークの上級者という意味ではありません。
Laravel は、冒頭の引用のところでもあったように、「めんどくさいところを解決する雛形」です。
ある程度雛形が用意された状態から、自分たちが作りたいサービスの形へ変化させるのが最も効率が良く、結果として早く完成させることができるはずです。
フレームワークを利用して、早く質の良いものを作るというのはプログラミングの世界だけではなく、スピーチやプレゼンなどといった別のスキルにも同じようにフレームワークがあります。
Laravel は学習が簡単
Laravel の学習のオススメの方法
Laravel で初めてフレームワークを触る人も多いかと思います。
一般的な人であれば、フレームワークの勉強は1周で 100%を理解することは不可能です。
理解するまで同じところにとどまったとしても、次の内容をやると前の内容は忘れますし、忘れたら戻るようなやり方をしていたら本当に1つの教材も終わりません。
- ハンズオン形式でとりあえず動くコードが書けたら次に進む
- 一度やったところには戻らず、とりあえず最後までやる
というやり方で進めてみてください。
書籍で学習する方法
書籍では、ハンズオン形式で自分のパソコンでコードと画面を動かしながら、成功体験を積むのがオススメです。
例えばこういった書籍があります。
動画で学習する方法
Udemy という動画教材のプラットフォームで選ぶのがオススメです。
書籍と同様にハンズオンで自分の手元で動かしながら進めましょう
PHP から Laravel まで サーバーサイドをとことんやってみよう【初心者から脱初心者へ】【わかりやすさ最重視】
書籍が良いか動画が良いか?
自分は動画派ですが、人それぞれ好みがあるので自分の好きな方を選んでください。
悩んでいる方はとりあえず動画でやってみましょう。
動画の良いところは、実際に画面で何をしているのか見られるので、どういう操作をしているのか想像がつきやすいからです。
Composer のパッケージが豊富
Composer とは?
Composer とは、開発で使うパッケージやライブラリを管理したりインストールしたりできる機能を持つツールです。
PHP で開発する際は必須と言って良いと思います。
Laravel では Composer が初期搭載されている
Laravel では、この Composer を使うことを前提にフレームが作られています。
なので、Composer のパッケージを使いたいと思った時にコマンド1つでパッケージを導入することができます。
データベースの作成・操作が簡単
マイグレーションファイルで簡単にデータベースを作成できる
Laravel では、マイグレーションという機能で簡単にデータベースを作成・アップデートすることができます。
詳しくは、Laravel でデータベースを作成する方法(マイグレーション)をご覧ください
データの保存・取り出しが簡単
Laravel では、データの保存や取り出しが非常に簡単で、単純なものであれば1行で済んだりします。
慣れれば簡単な投稿機能であれば 10 分くらいで出来ます。
⇨【初心者向け】Laravel で投稿機能を作る方法(掲示板的なやつ)
Ruby on Rails との比較
Ruby on Rails は Ruby のフレームワークで MVC モデルで Laravel と似たようなフレームワークです(Laravel は RubyonRails から多大なる影響を受けて作られているはずです)
まず最初に検索の比較を Google トレンドで検索してみました。
この画像は 2023 年 8 月 3 日時点のものです。
https://trends.google.co.jp/trends/explore?date=all&q=Rails,Laravel
日本で絞っても同じようなグラフになります。
Laravel は 2011 年にリリースされ、バージョン 5.5 で劇的に使いやすくなった、ということでそこから需要が増えています。
現在では、Laravel の方が Google トレンド上の数値は上のようなのですが、「同じくらい」人気という感覚で良いかなと思います。
自分は、フレームワークがどちらが良いとかは思わないのですが、ruby は言語的に独特な書き方があるので、今まで php をやってきた人であれば、
- Laravel の方がおすすめなのではないかな?と思います。
自分は、クラウドワークスで案件を取るために Ruby on Rails でブログを作成して、その後 Laravel を学習する機会があり現在 Laravel のプロダクトに関わっていますが、そんなに差はないと感じています。
Ruby on Rails を最初に学んでもそのときの知識を生かしながら、いざというときには Laravel を学ぶことはできるでしょうし、
逆に、Laravel を最初に学んでも Ruby on Rails に生きると思います。
要するに、「Laravel と Rails のどっちを学ぼうか?」となった時は、すでに触っている方を進めていけば良いと思います。
このブログにたどり着いているみなさんは、 Laravel をこのまま学べば良いんじゃないかと思います。
まとめ
以上、ざっくりではありますが Laravel についてまとめてみました。
Laravel は Vue を入れたり React を入れることも簡単ですし、Blade テンプレートはデプロイすれば分かりますが本当に軽いですし、もちろん API としても使うこともできます。
Laravel は半年や1年でバージョンがアップされており、現在も積極的に開発が進んでいるフレームワークなので、もっと便利になっていくのでは?と期待しています。
ポートフォリオでなんのフレームワークを覚えよう?
と悩んでいる方は、全然 Laravel で大丈夫だと思います。
僕はメンターとして毎年 10 人ほどポートフォリオ作成と転職のアドバイスをしていますが、Laravel は全然問題と感じています。
自信を持って学習を進めていってください。
メンターに興味がある人はお問い合わせからご連絡ください。
それでは、最後まで読んでいただきありがとうございました。