ポートフォリオ・実績はこちら!!▶︎▶︎▶︎

【人気急上昇中】Laravelとは?できること、Web職人と呼ばれる理由を初心者向けに解説

Laravel
この記事を書いた人
HikoPro

大学生フリーランスエンジニア|ライター|Webディレクター

【海外経験0の普通の大学生→世界を旅する→GoPro Awards受賞→バンコク不動産でインターン(売り上げ100万達成)→インドでIT留学(PHP,Laravel)→ベトナムでWebディレクター兼エンジニア】

HikoProをフォローする
スポンサーリンク

HikoPro
HikoPro

こんにちは!大学生フリーランスエンジニアのHikoProです!

プログラミングで最近はLaravelが人気だと言う噂があるが、

Laravelって何?どんな事ができるの?

初心者向けにLaravelの特徴を教えて欲しい。

今回の記事では今世界中で大人気のPHPのフレームワーク「Laravel」について、、、

  • 人気な理由
  • Laravelでできる事
  • Laravelの特徴
  • 実際にLaravelで開発してみた感想

この辺りを現役エンジニアの僕が初心者向けに分かりやすくご説明します。

多くのサイトが、難しい用語(MVCやcomposerなど)初心者の方には理解しにくい用語があるので、こちらの記事では一切難しい言葉は使わずに解説していきます!

こんな方にオススメ
  • Laravelとは何か知りたい方
  • Laravelが世界で人気な理由を知りたい方
  • Laravelでできる事、作れるアプリを知りたい方
Hiko
Hiko

この記事を読むときっと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サービスを作れるんだね!

Hiko
Hiko

Laravelの大まかな概要が分かった所でもう少し掘り下げていきます!

LaravelはPHPのフレームワーク(ひな形)

Laravelをもう少しプログラミングっぽく言うと、PHPのフレームワークの一種になります。

フレームワークとは

フレームワークとはプログラミング言語(PHPやJavaScript)をより扱いやすくした、ひな形のようなもので、予め便利な機能が備わっており、0からコーディングする必要がないのでシステム開発において大幅な効率の向上が見込める!

PHPはサーバーサイドのプログラミングで、PHPのフレームワークはLaravel以外にも沢山存在します。

PHPの主なフレームワーク
  • CakePHP
  • Laravel
  • Symfony
  • CodeIgniter
  • FuelPHP

これらのフレームワークを使うことにより、プログラミング言語のPHPを使ってサービス開発をするより、効率よく開発する事ができます。

これらのフレームワークは全てPHPの構文が使われているので、「PHPの基礎学習→フレームワークの学習」のように基本的にはこのような流れで習得していきます。

Hiko
Hiko

僕の場合は、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の時代がくる事でしょう。

Hiko
Hiko

なぜこれほどまでLaravelの人気が急上昇なのか解説しますね!

Laravelでできる事・開発できるもの

Laravelの特徴を紹介する前にLaravelで作れるものを先にご紹介します。

その方がLaravelのイメージをインプットしやすいでしょう。

基本的にWeb上で動くものはLaravelで全て作る事ができます。

AIとかVR、ゲーム、iPhoneアプリとかはできないです。

Laravelでできる事、開発できるものは以下の通りです。

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
Hiko
Hiko

こんな感じに書き換えるだけでOK!

  1. MYSQLでデータベース、テーブル作成
  2. .envファイルにSQLの情報を書く
  3. modelとmigtationファイルを生成(artisanコマンド使用)
  4. tableファイルにいろいろ書く

流れとしてはこんな感じです。

スポンサーリンク

ダミーデータの生成が簡単

システムが作動しているかのテスト実験の際に、ちゃんと動作しているか、ダミーデータを10個も100個も必要になってくる時があります。

それを一つ一つ考えて入力していくのはとても効率が悪いですよね!

そんな時にはLaravelのartisanコマンドのfactoryとseederを使えば、ランダムに任意の数のダミーデータを一瞬で自動生成してくれます。

SNS認証が簡単(facebookログインなど)

FacebookやTwitterなどの認証システムを実装する際にもLaravelはとても便利です。

Socialiteと呼ばれるパッケージをインストールし、SNSのAPIキーを取得する事で実装できます。

  1. php artisan make:authでログイン機能作る
  2. Socialiteインストール
  3. APIキーを取得
  4. 処理を書く

今回は詳しくは解説しませんがざっくりこんな感じで実装できます。

Socialiteの使い方を世界一丁寧に解説した

決済システムの導入も簡単

ショッピングサイトを作る際に不可欠な決済システムですが、Laravelでは簡単に実装する事が可能です。

主にstripeとの相性がよく、調べれば実装の方法が書いてあります。

APIキーを設定する箇所などは、もともとひな形ファイルの中にあるので、そこに記述すればOKです。

Vue. js & Bootstrapが標準搭載(フロントサイドが楽)

Laravelはシステムサイドのフレームワークですが、元々JavaScriptのフレームワークのVue.jsCSSのフレームワークBootstrapが標準で備わっています。

つまり、システムエンジニアとフロントエンジニアが、同時並行で開発を進めることも可能です。

チャット機能を実装したりする際には、Vue.jsはとっても効率よく実装できるので、とてもオススメです!

Laravelとは?できる事や特徴まとめ

ネコ君
ネコ君

もうLaravelで早くサービス開発をしたいよー!

いかがでしたでしょうか!

他にもまだまだLaravelの魅力はありますが、かなり専門的な内容になってくるので、今回は割愛します。

Laravelが普及したことにより、どんどんWebサービスの開発が容易になり、プログラミング初心者の方でもオススメです!

TechAcademy [テックアカデミー]では初心者向けにPHP/Laravelコース を提供しているので、さくっとwebサービスを作ってみたい方は受講してみるといいでしょう!

今後Laravelを通して、「Web職人」が増えることを願います!

最後までご覧いただきありがとうございました!

HikoPro
HikoPro

最後までご覧いただきありがとうございました!

Twitterで記事の更新、フリーランスに関する情報を発信しているので、ぜひフォローお願いします!

スポンサーリンク
スポンサーリンク
この記事を書いた人
HikoPro

大学生フリーランスエンジニア|ライター|Webディレクター

【海外経験0の普通の大学生→世界を旅する→GoPro Awards受賞→バンコク不動産でインターン(売り上げ100万達成)→インドでIT留学(PHP,Laravel)→ベトナムでWebディレクター兼エンジニア】

HikoProをフォローする
Laravel
HikoPro Blog

コメント

タイトルとURLをコピーしました