

プログラミングで最近はLaravelが人気だと言う噂があるが、
Laravelって何?どんな事ができるの?
初心者向けにLaravelの特徴を教えて欲しい。
今回の記事では今世界中で大人気のPHPのフレームワーク「Laravel」について、、、
- 人気な理由
- Laravelでできる事
- Laravelの特徴
- 実際にLaravelで開発してみた感想
この辺りを現役エンジニアの僕が初心者向けに分かりやすくご説明します。
多くのサイトが、難しい用語(MVCやcomposerなど)初心者の方には理解しにくい用語があるので、こちらの記事では一切難しい言葉は使わずに解説していきます!
- Laravelとは何か知りたい方
- Laravelが世界で人気な理由を知りたい方
- Laravelでできる事、作れるアプリを知りたい方

この記事を読むときっとLaravelでサービス開発をしたくなりますよ!
LaravelとはWeb職人

Laravel(ララベル)は「ウェブ職人のためのPHPフレームワーク。」をモットーに作られたPHPのフレームワーク(後ほど解説)で、Laravelを使うと、Webサービスを早く、簡単に、効率よく開発する事ができます。
Laravel は、MVCのWebアプリケーション開発用の無料・オープンソースのPHPで書かれたWebアプリケーションフレームワークである。LaravelはMITライセンスの下でリリースされており、そのソースコードはGitHubにホスティングされている。
ウィキペディア
http://laravel.jp/ をみてみると、、、
- やりたいことが、シンプルにできるフレームワーク。
- Laravel はオフィスに夜遅くまで残りたくない人のためのフレームワークです。
- Laravel は PHP 製にもかかわらず、Ruby のように美しい!
- Laravel は私の人生を変えました。アイデアを素早く形にできる、最高のフレームワークです
このように、ユーザーからの意見が書かれており、僕なりにLaravelをまとめると、
「Laravelはアイデアをすぐに”美しいコード”で実現でき、プログラミングを好きにさせてくれるもの」と言えるでしょう。

とにかくLaravelを使うと、簡単にWebサービスを作れるんだね!

Laravelの大まかな概要が分かった所でもう少し掘り下げていきます!
LaravelはPHPのフレームワーク(ひな形)

Laravelをもう少しプログラミングっぽく言うと、PHPのフレームワークの一種になります。
フレームワークとはプログラミング言語(PHPやJavaScript)をより扱いやすくした、ひな形のようなもので、予め便利な機能が備わっており、0からコーディングする必要がないのでシステム開発において大幅な効率の向上が見込める!
PHPはサーバーサイドのプログラミングで、PHPのフレームワークはLaravel以外にも沢山存在します。
- CakePHP
- Laravel
- Symfony
- CodeIgniter
- FuelPHP
これらのフレームワークを使うことにより、プログラミング言語のPHPを使ってサービス開発をするより、効率よく開発する事ができます。
これらのフレームワークは全てPHPの構文が使われているので、「PHPの基礎学習→フレームワークの学習」のように基本的にはこのような流れで習得していきます。

僕の場合は、3週間PHPの基礎学習をしてすぐにLaravelの使い方を学びました!
世界でLaravelの人気が爆発中!

PHPのフレームワークはいくつかあると先ほどお話ししましたが、やはり人気なフレームワークや使いやすいフレームワークと言うのが存在します。
Google Trendsで過去10年のトレンド傾向をみてみると、このようになっています。
- 2009年〜2019年現在
- PHP5つのフレームワークを比較
- 全世界
- Web検索を参考にトレンドを計測
10年間のトレンドを見るとSymfonyが安定して人気でしたが、2014年辺りからLaravelの人気が急速に上昇しているのが分かると思います。
過去10年間右肩上がりに注目を浴びている言語なので、今後もLaravelの人気は止まらないでしょう。
次に日本でのLaravelのトレンドをみてみましょう。
- 2009年〜2019年現在
- PHP5つのフレームワークを比較
- 日本のみ
- Web検索を参考にトレンドを計測
以前はCakePHPが圧倒的な人気でしたが、2018年を界にLaravelの人気がCakePHPの人気を追い越しました。
以前日本では「CakePHP=PHPのフレームワーク」と認識されるくらい不動の人気でしたが、それがLaravelによって覆されたのです。
今後は日本でもLaravelの時代がくる事でしょう。

なぜこれほどまでLaravelの人気が急上昇なのか解説しますね!
Laravelでできる事・開発できるもの

Laravelの特徴を紹介する前にLaravelで作れるものを先にご紹介します。
その方がLaravelのイメージをインプットしやすいでしょう。
基本的にWeb上で動くものはLaravelで全て作る事ができます。
AIとかVR、ゲーム、iPhoneアプリとかはできないです。
Laravelでできる事、開発できるものは以下の通りです。
- ショッピングサイト(例:Amazon、メルカリ)
- マッチングサービス(例:Airbnb、クラウドソーシング系)
- ブログサービス(例:はてなブログ、WordPress)
- 掲示板、口コミサイト(例:Qiita、2ちゃんねる)
- 予約サイト(例:Booking.com、Skyticket)
- SNS(例:Facebook、Twitter)
- チャットアプリ(例:Slack)
- Todoリスト
- 勤怠管理システム
- メールサービス
まさに「ウェブ職人のためのPHPフレームワーク。」ですね!
ちなみに僕もLaravelを使って留学マッチングサービスの開発を行いました!
→ Laravelを使って留学マッチングサービスを開発します!
簡単なTodoリストなら数時間もあれば作れてしまうほど、Laravelは優秀です!
Laravelの特徴

なぜこれほどまでにLaravelが人気になった背景には沢山の理由があります。
僕が実際にLaravelで開発してみた感想を含めて、Laravelの特徴を初心者向けにご紹介します。
artisanコマンド(ファイルの自動生成)が便利
Laravelといえば自動ファイル生成コマンド(artisanコマンド)が沢山ある事で人気です。
自動生成コマンドとは簡単に言うと、、、
「php artisan make:controller PostsController -r」と入力すれば、
ブログや投稿機能に必要な、
- create:情報を入力する
- edit:情報を編集する
- show:情報をページで表示させる
- store:情報をデータベースに送信する
- destroy :データをDBから削除する
などの必要なひな形ファイルを一瞬で作ってくれたり、データーベースとやり取りするmodelファイルを作れたりします。
ターミナルで「php artisan list」と叩くと、使えるコマンドが一覧で表示されるので、このリストを参照して必要なコマンドを使っていきます。
php artisan list
Laravel Framework 5.8.16
Usage:
command [options] [arguments]
Options:
-h, --help Display this help message
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi Force ANSI output
--no-ansi Disable ANSI output
-n, --no-interaction Do not ask any interactive question
--env[=ENV] The environment the command should run under
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Available commands:
clear-compiled Remove the compiled class file
down Put the application into maintenance mode
dump-server Start the dump server to collect dump information.
env Display the current framework environment
help Displays help for a command
inspire Display an inspiring quote
list Lists commands
migrate Run the database migrations
optimize Cache the framework bootstrap files
preset Swap the front-end scaffolding for the application
serve Serve the application on the PHP development server
tinker Interact with your application
up Bring the application out of maintenance mode
app
app:name Set the application namespace
auth
auth:clear-resets Flush expired password reset tokens
cache
cache:clear Flush the application cache
cache:forget Remove an item from the cache
cache:table Create a migration for the cache database table
config
config:cache Create a cache file for faster configuration loading
config:clear Remove the configuration cache file
db
db:seed Seed the database with records
event
event:cache Discover and cache the application's events and listeners
event:clear Clear all cached events and listeners
event:generate Generate the missing events and listeners based on registration
event:list List the application's events and listeners
key
key:generate Set the application key
make
make:auth Scaffold basic login and registration views and routes
make:channel Create a new channel class
make:command Create a new Artisan command
make:controller Create a new controller class
make:event Create a new event class
make:exception Create a new custom exception class
make:factory Create a new model factory
make:job Create a new job class
make:listener Create a new event listener class
make:mail Create a new email class
make:middleware Create a new middleware class
make:migration Create a new migration file
make:model Create a new Eloquent model class
make:notification Create a new notification class
make:observer Create a new observer class
make:policy Create a new policy class
make:provider Create a new service provider class
make:request Create a new form request class
make:resource Create a new resource
make:rule Create a new validation rule
make:seeder Create a new seeder class
make:test Create a new test class
migrate
migrate:fresh Drop all tables and re-run all migrations
migrate:install Create the migration repository
migrate:refresh Reset and re-run all migrations
migrate:reset Rollback all database migrations
migrate:rollback Rollback the last database migration
migrate:status Show the status of each migration
notifications
notifications:table Create a migration for the notifications table
optimize
optimize:clear Remove the cached bootstrap files
package
package:discover Rebuild the cached package manifest
queue
queue:failed List all of the failed queue jobs
queue:failed-table Create a migration for the failed queue jobs database table
queue:flush Flush all of the failed queue jobs
queue:forget Delete a failed queue job
queue:listen Listen to a given queue
queue:restart Restart queue worker daemons after their current job
queue:retry Retry a failed queue job
queue:table Create a migration for the queue jobs database table
queue:work Start processing jobs on the queue as a daemon
route
route:cache Create a route cache file for faster route registration
route:clear Remove the route cache file
route:list List all registered routes
schedule
schedule:run Run the scheduled commands
session
session:table Create a migration for the session database table
storage
storage:link Create a symbolic link from "public/storage" to "storage/app/public"
vendor
vendor:publish Publish any publishable assets from vendor packages
view
view:cache Compile all of the application's Blade templates
view:clear Clear all compiled view files
ログイン機能が3秒でできる
僕がLaravelを使って最も衝撃だったのがログイン機能を一瞬で作れた事です。
PHPを使うと、ログインシステムを作るには結構な作業量が必要ですが、Laravelだと、、、
php artisan make:auth
このように1行artisanコマンドを打つだけでログインシステムが自動的にできます。
- 新規登録画面
- ログイン画面
- ログアウト機能
- パスワードを忘れた場合
- パスワードの再設定
上記のような初心者には作れないような複雑なシステムを作る事ができます。
あとは自由にカスタマイズして、必要な項目を追加したりする事が可能です。
データベースとの連携が簡単
PHPでMySQLなどのデータベースと連携させるには、連携させる用のファイルを作って、コーディングする必要がありますが、Laravelだと.envファイルと言うのが予め用意されており、そこにPORT番号やユーザーネーム、パスワードを入力するだけで連携が可能です。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=8889
DB_DATABASE=HOMEABROAD
DB_USERNAME=1234
DB_PASSWORD=1234

こんな感じに書き換えるだけでOK!
- MYSQLでデータベース、テーブル作成
- .envファイルにSQLの情報を書く
- modelとmigtationファイルを生成(artisanコマンド使用)
- tableファイルにいろいろ書く
流れとしてはこんな感じです。
ダミーデータの生成が簡単
システムが作動しているかのテスト実験の際に、ちゃんと動作しているか、ダミーデータを10個も100個も必要になってくる時があります。
それを一つ一つ考えて入力していくのはとても効率が悪いですよね!
そんな時にはLaravelのartisanコマンドのfactoryとseederを使えば、ランダムに任意の数のダミーデータを一瞬で自動生成してくれます。
SNS認証が簡単(facebookログインなど)
FacebookやTwitterなどの認証システムを実装する際にもLaravelはとても便利です。
Socialiteと呼ばれるパッケージをインストールし、SNSのAPIキーを取得する事で実装できます。
- php artisan make:authでログイン機能作る
- Socialiteインストール
- APIキーを取得
- 処理を書く
今回は詳しくは解説しませんがざっくりこんな感じで実装できます。
決済システムの導入も簡単
ショッピングサイトを作る際に不可欠な決済システムですが、Laravelでは簡単に実装する事が可能です。
主にstripeとの相性がよく、調べれば実装の方法が書いてあります。
APIキーを設定する箇所などは、もともとひな形ファイルの中にあるので、そこに記述すればOKです。
Vue. js & Bootstrapが標準搭載(フロントサイドが楽)
Laravelはシステムサイドのフレームワークですが、元々JavaScriptのフレームワークのVue.jsとCSSのフレームワークBootstrapが標準で備わっています。
つまり、システムエンジニアとフロントエンジニアが、同時並行で開発を進めることも可能です。
チャット機能を実装したりする際には、Vue.jsはとっても効率よく実装できるので、とてもオススメです!
Laravelとは?できる事や特徴まとめ

もうLaravelで早くサービス開発をしたいよー!
いかがでしたでしょうか!
他にもまだまだLaravelの魅力はありますが、かなり専門的な内容になってくるので、今回は割愛します。
Laravelが普及したことにより、どんどんWebサービスの開発が容易になり、プログラミング初心者の方でもオススメです!
TechAcademy [テックアカデミー]では初心者向けにPHP/Laravelコース を提供しているので、さくっとwebサービスを作ってみたい方は受講してみるといいでしょう!
今後Laravelを通して、「Web職人」が増えることを願います!
最後までご覧いただきありがとうございました!
