Laravel

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

いつもご利用ありがとうございます。このブログは、広告費によって運営されています。

オススメ本
Web技術を勉強するなら、かなりオススメの雑誌です。毎月新しい発見があります。ついに最終号・・・、みなさん買いましょう!!
読んで損することはない名著。命名で悩むことが多い人はこの本がオススメです。

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 の学習方法でオススメの流れ

基本的な機能

Laravel の機能をざっくり説明

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

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/

英語の意味は、「指揮者」です。

⇨Composer をインストールする方法はこちらの記事

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

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

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

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

=>CSRF トークンの設置方法についてこの記事で書いています。

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

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

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

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

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

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

Laravel はなんでもできるフレームワーク

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

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

なぜ初心者に合うのか

Laravel は初心者にオススメのフレームワークです。

理由としては、

  1. 情報量が非常に多い
  2. コントローラーに全てを書いても動く
  3. ログイン機能など、よく使われる機能のほとんどはパッケージで実装できる

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

分からないときはネットで検索をかけて調べるしか方法はないと思いますが、Laravel であればネットに情報がたくさん見つかりますので、非常に解決しやすいです。

なぜ上級者に合うのか

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

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

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

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

Laravel は学習が簡単

Laravel の学習のオススメの方法

Laravel で初めてフレームワークを触る人も多いかと思います。

一般的な人であれば、フレームワークの勉強は1周で 100%を理解することは不可能です。

理解するまで同じところにとどまったとしても、次の内容をやると前の内容は忘れますし、忘れたら戻るようなやり方をしていたら本当に1つの教材も終わりません。

  1. ハンズオン形式でとりあえず動くコードが書けたら次に進む
  2. 一度やったところには戻らず、とりあえず最後までやる

というやり方で進めてみてください。

書籍で学習する方法

書籍では、ハンズオン形式で自分のパソコンでコードと画面を動かしながら、成功体験を積むのがオススメです。

例えばこういった書籍があります。

Laravel 9の最新環境でWebアプリケーションを構築! PHPでWebアプリケーションを構築する際、第一候補として挙がるのがLaravelでしょう。本書は、最新バージョンであるLaravel 9に対応した、プロを目指す方のためのLaravel入門書です。

動画で学習する方法

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 日時点のものです。

LaravelとRubyonRailsの検索数の比較

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 は全然問題と感じています。

自信を持って学習を進めていってください。

メンターに興味がある人はお問い合わせからご連絡ください。

⇨ お問い合わせ

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