Laravelの主な特徴とは?Laravelの導入方法とおすすめ理由7選も解説
- システム
エンジニア - PHPのフレームワークであるLaravelとは、どのようなものなのでしょうか?
- プロジェクト
マネージャー - ほかのフレームワークと比較してバージョンアップが頻繁でドキュメントが豊富なため、ここ数年シェアを拡大しています。
Laravelとは?
Laravelとはphpのフレームワークの一種であり、Zend Framework、FuelPHP、CakePHP、CodeIgniter、Symphonyといった他のフレームワークの中でも特に人気です。Symphonyをベースに開発され、潜在的なバグなど、様々な問題点を抜本的に見直していることが特徴です。また、他のphpのフレームワークと比較して、バージョンアップが頻繁に行われます。
そもそもフレームワークとは何か?
フレームワークという意味は、英語で直訳すると、「枠組み」「構造」という意味ですが、プログラミングの用語では、テンプレートと呼ばれます。ソフトウェア業界では、ルール化されたプログラムの集合体を表します。
Laravelもその一つで、アプリ開発で利用される面倒なプログラムをまとめて提供しており、ルール化されていることから、一からプログラミングを記述する必要が無く、効率的に学習できコストも低くできる使い方があるようです。
Laravelの主な特徴5選
他のphpフレームワークと比較して、Laravelの特徴とは何でしょうか。Laravelでは、様々な機能を保持しておりますが、その中で5点代表的なものを上げていきたいと思います。
1:Eloquent
Eloquentとは、Laravelが提供するアクティブレコード機能で、ORM(オブジェクトリレーションマッピング)を利用したデータ操作を提供します。
ORMとはリレーショナルデータベースのレコードとプログラム上のオブジェクトを柔軟に結び付ける機能を持ち、アクティブレコードとはORMを利用したデザインパターンを指します。
Eloquentを利用することで、データベースにアクセスする処理を意識せずにプログラミングできます。
2:Blade
Bladeとは、Laravel専用のHTMLテンプレートエンジンです。HTMLテンプレートエンジンとは、作成したプログラムと表示するHTMLテンプレートを分離し開発する仕組みと言われています。
Bladeのルールに基づいた記述で、レイアウト構成やコンポーネント(細分化)して管理することができます。
3:Artisan
Artisan(アルチザン)とは、Laravel専用のコマンドツールで、プログラムファイルの作成や、データベース管理、サーバ起動など様々な操作をコマンドベースで実行可能です。
例として、モデルとコントローラを作成したいとして、以下のコマンドを入力することによって、自動的にファイルを生成してくれます。
1
|
$php artisan make:controller TopicController --resource --model=topic
|
4:Facade
Facade(ファサード)とは、サービスコンテナに登録したクラスに、静的なインターフェィスを提供する仕組みです。Facadeを利用することによって、静的な呼び出しでクラスインスタンスの扱いができるようになります。
長く複雑なプログラムやテストによって、設計の見直しが発生した場合、Facadeを利用した依存性注入を行い、プログラムを整理しテストを簡単にできるようにする目的で利用されることが多いです。
5:その他の機能について
代表的な機能を5点紹介いたしました。Laravelの公式ドキュメントやAPIリファレンスを確認することで、膨大なフレームワークだと認識できるかと思います。
バージョン5からバージョン7へとかなりの頻度でアップデートされています。しかし、大規模なフレームワークのため、多機能である一方で、使用方法を誤るとパフォーマンスが低下することもあるので、注意が必要かもしれません。
PHP環境のインストール
Laravelを利用するには、phpの環境をPCにインストールする必要があります。Laravel自体、求めるphpのバージョンも異なってきます。2020年9月8日に最新版のLaravel8.x.xが登場しておりますが、まだあまり利用されていないため、今回は、2020年3月にリリースされたLaravel7では、phpのバージョンは、php7.2.5で行うことにします。
XAMPPを利用する
PHPを導入する際、様々な書籍やネットで紹介されているもので、XAMPPがあります。XAMPPとは、PHP環境を一括で設定してくれる便利なもので、自分でサーバなど構築する必要が無くなります。Laravelをインストールする上で欠かせないツールだと考えられます。
Composerのインストール
前節のXAMPPのインストールが完了したら、いよいよLaravelを導入することになります。その前にやる必要がある可能性があるのが、Composerのインストールです。Composerとは、様々なPHPのライブラリの依存関係を解決してくれるライブラリ管理ツールです。
1:Homebrewでインストール(Mac)
話が変わりまして、一度MacでLaravelを動作させるための環境構築作りについて解説いたします。Macには、Homebrewというパッケージ管理システムがあります。Homebrewとは、プログラムで必要なライブラリをインストール、アンインストールできるソフトウェアです。Composerをインストールする前にHomebrewをインストールします。
Homebrewのインストール
では、実際にHomebrewをRubyコマンドでインストールしてみましょう。
1
|
$ /usr/bin/ruby -e "($curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
|
Homebrewの動作確認
Homebrewのインストールが完了したらHomebrewのコマンド、brewでバージョン確認します。
1
2
|
$brew --version
Home brew ○.○.○
|
※○.○.○には、インストールしたバージョンが入ると考えられます。
Composerを検索
今度は、brewでComposerパッケージが存在するか検索してみます。
1
2
3
|
$brew search composer
==> Formulae
composer
|
Composerをインストール
パッケージ確認後、一度Homebrewをアップデートします。アップデートができたら実際にComposerをインストールして完了となります。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
$brew update
$brew install composer
...
==> Downloading https://getcomposer.org/download/1.10.6/composer.phar
######################################################################## 100.0%
...
<h3>2:インストーラを利用(Windows用)</h3>
<img src='https://pakutaso.cdn.rabify.me/shared/img/thumb/soucecodeIMGL9011.jpg?d=350'>
ユーザーがWindowsの場合を説明します。Windows OSの場合は、インストーラを利用すると便利です。インストーラとは、<strong><mark>コンピュータに新たなアプリケーションを導入し、使用可能な状態にすることです。</mark></strong>Laravelで利用するComposerでは、Composerのダウンロードサイト「Installation – Windows」にアクセスし、「Composer-Setup.exe」をダウンロードしてインストールしてください。
<div><a href="https://getcomposer.org/doc/00-intro.md#installation-windows" target='_blank' rel="nofollow, noopener">Installation - Windows</a></div>
<h3>3:Composer公式のコマンドでインストールする場合</h3>
<img src='https://www.pakutaso.com/shared/img/thumb/N811_commandkey.jpg'>
Homebrew、Windows用インストーラ以外にも、PHPコマンドでインストールできます。PHPコマンドとは、<strong><mark>PHPで利用されるコマンドの一覧</mark></strong>のことです。PHPにて、ターミナルで以下のPHPコマンドを実行し、composer.pharファイルが作成されていれば成功です。
<pre><code>
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php -r "if (hash_file('sha384', 'composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
$ php composer-setup.php
$ php -r "unlink('composer-setup.php');"
|
composer.pharのパスを変更する
composer.pharとは、LaravelでComposerを実行するための、Composerの実行ファイルですが、現状のままだとファイルパスを直接指定してコマンドを実行しなければいけません。そこで、Composerをどの階層からでも実行できるようにファイルパスを変更します。
下記は「/usr/local/bin/」にcomposer.pharを移動し、composerに名称を変更した例です。これで「composer」と入力するだけでComposerを実行することができます。
1
2
3
|
$ sudo mv composer.phar /usr/local/bin/composer
|
Composerのバージョンを確認する
Composerをインストール出来たら、Laravelの中で、Composer自体を実行できるか、確認してみましょう。バージョン確認とは、使用している実機で動作しているComposerのバージョンをコマンドラインなどで確認を行う方法です。以下のコードを打つことによって、それが実証されると考えられます。
1
2
3
4
|
$ composer --version
Composer version 1.9.2 yy-mm-dd ○○:○○:○○
|
Homesteadで環境構築する方法
Laravelの環境構築において、上記までのPHP、Webサーバ、Composerをインストールするのは、それぞれを単体で環境構築している場合になります。しかし、それでは時間と労力がかかるため、Homesteadと呼ばれる一括ツールのようなものをインストールし、環境構築をする方が手っ取り早いと考えられます。
Homesteadとは?
Homesteadとは、開発環境を用意したVagrantのようなものです。Vagrantとは、仮想環境のVirtualBox上で動作し、設定ファイルを利用することにより、効率的に管理できるツールです。VirtualBoxとは、オープンソースの仮想化ソフトウェアの一つとして利用されています。
Homesteadのイメージをインストールして起動すると、上述した環境構築をせずとも、Laravelの環境を手に入れることができます。OSも限定されることなく、Windows,Mac,Linuxで同じ環境を構築できます。Laravelには、JavaのようにOSに依存しない環境構築を行える機能があると考えられます。
Homesteadのインストール
Homesteadのインストール方法は、Laravelの公式サイトに記載されています。その前に、VirtualBoxとVagrantのインストールが必要です。
Vagrantに「laravel/homestead」を追加、設定して起動するとPHP、Webサーバ、データベースなどに連携したLaravelの開発環境が利用できます。Homesteadのインストールや設定に関しては公式サイトを参考にしてください。
Laravelのプロジェクトを作成する
開発環境が用意できたら、いよいよLaravelのプロジェクトを作成してみます。Laravelプロジェクトとは、Laravelを利用して、プロジェクトを作成することです。Laravelプロジェクトの作成方法は「Composerコマンド」と「Laravelコマンド」2つの方法がありますが、今回は「Composerコマンド」を利用します。
Composerでプロジェクト作成する方法
「composer create-project」でLaravelのプロジェクトを作成します。composer create-projectとは、新規でプロジェクトをディレクトリに作成するときに利用します。ここではポジトリを「laravel/laravel」、プロジェクト名を「laravel_app」としました。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
$ composer create-project laravel/laravel --prefer-dist laravel_app
Installing laravel/laravel (v○.○○.○)
...
> @php artisan key:generate --ansi
Application key set successfully.
<h4>「–prefer-dist」と「–prefer-source」オプションの違い</h4>
<img src='https://www.pakutaso.com/shared/img/thumb/MAX_sumahodon20141025170110_TP_V.jpg'>
composer create-projectには「–prefer-dist」と「–prefer-source」オプションがありダウンロードの形式が異なります。「-prefer-dist」とは、zipファイルを作成するコマンドであり、「-prefer-source」とは、git cloneを作成することを意味します。
<div><table class="table"><thead><tr><th>オプション</th><th>ダウンロード形式</th></tr></thead><tbody><tr><td>–prefer-dist</td><td>zip</td></tr><tr><td>–prefer-source</td><td>git clone</td></tr></tbody></table></div>
<h3>Laravelのファイル構成を確認</h3>
<img src='https://pakutaso.cdn.rabify.me/shared/img/thumb/ransomwareIMGL1944.jpg?d=350'>
プロジェクトの中にはいくつかのファイルやディレクトリがありますが、venderフォルダがLaravelの中核となるライブラリのプログラム群です。<strong><mark>venderフォルダ</mark></strong>とは、Composerに依存したフォルダの事を指していると考えられています。その他、publicはWeb公開ディレクトリ、appは開発するプログラムといったようにLaravel独自のルールで構成され、この仕組みをフレームワークと呼びます。
<pre><code>
.editorconfig
.env
.env.example
.gitattributes
.gitignore
.styleci.yml
README.md
app
artisan
bootstrap
composer.json
composer.lock
config
database
package.json
phpunit.xml
public
resources
routes
server.php
storage
tests
vendor
webpack.mix.js
|
Artisanでサーバを起動する
LaravelではApacheやNginxといったWebサーバを立てなくてもサーバを起動することができます。Apacheとは、WindowsやUNIX等の現在のOSバージョンを含む、オープンソースのHTTPserverを開発、メンテナンスする上で威力を発揮するソフトウェアです。Nginxとは、高い稼働率を誇るサイトのうち約65%以上で広範囲に支持されている高信頼のWebサーバシステムの事です。Webサーバをオープンソースをでは実際にサーバを起動してみましょう。
サーバを起動する
サーバを起動するには、artisanコマンドにserveオプションをつけます。artisanコマンドとは、artisanで利用するコマンドの一覧の事を指していると考えられます。serveオプションとは、ApacheやNginxのようなlaravelのアプリケーションのサーバを設置する際に使用するオプションです。成功するとサーバのURLとstartedの文字が確認できます。
1
2
3
4
5
|
$ php artisan serve
Laravel development server started: http://127.0.0.1:8000
[Sat May 23 01:57:03 2020] PHP ○.○.○ Development Server (http://127.0.0.1:8000) started
|
ブラウザで確認する
サーバのデフォルトURLは「http://127.0.0.1:8000」で設定されています。URLとは、「Uniform Resource Locator」の略称で、インターネット上に存在する情報資源(文書や画像など)の場所を指し示す技術方式です。実際にブラウザでアクセスすると既にアプリが作成された状態でページが表示されます。「127.0.0.1」の部分は「localhost」のため、「http://localhost:8000」でアクセスしても構いません。localhostとは、ローカルホストとは、通信ネットワークにおける位置関係を示す用語の一つで、利用者や稼働中のソフトウェアにとって、自らの側のコンピュータや端末のことを指すと考えられています。
また起動中のサーバを終了したい場合、起動中のターミナルで「Ctrl + C」を入力して終了します。
Laravelをおすすめする理由6選
それでは、今までの説明でLaravelを利用することのメリットを簡潔にご紹介いたします。
・Webアプリケーションが簡単に開発できる
・プログラミング初心者でも学習しやすい
・ディレクトリ構成を自由に設定できる
・コマンドが充実している
・MVCモデルを採用している
・バリデーションが容易にできる
以上、6点を説明していきます。
1:Webアプリケーションが簡単に開発できる
Laravelのメリットとは、この記事の導入部分でも説明しましたが、PHPや面倒なプログラミングを行う必要が無く、一括した開発ツールで作成できることが特徴です。初心者がプログラムを組むことに難がある場合は、Laravelを導入することが一番だと考えられます。
2:プログラミング初心者でも学習しやすい
初心者がとっつきやすくなる理由とは、例えば、PHPのオブジェクト指向や、セキュリティ対策などをサーバに組み込むことが必要になったとして、これらのスキルをPHPで一から組んでいくことは膨大な労力と費用が掛かるのでおすすめできない可能性が高いと考えられているためです。
3:ディレクトリ構成を自由に設定できる
ディレクトリ構成を自由に設定できることで、以下のメリットがあると考えられます。ディレクトリ構成とは、フォルダやそれに含まれるファイルの位置関係を表していると考えられます。
・開発を合理的にわかりやすくできる。
・ファイルの位置関係やオブジェクト指向をより理解できるようになる。
・作業に対して整理されて、わかりやすい。
上記のような点で、コストもかからず、作業効率が上がると考えられます。
4:コマンドが充実している
この記事の前半でも説明しましたが、Composerには様々なコマンドが充実しており、それによって環境構築が容易になっていると考えられます。
1
2
3
4
|
$ php -r(" ");
$ php composer setup.php
|
5:MVCモデルを採用している
MVCモデルは、モデルのM(Model)、ビューのV(View)、コントローラのC(Controller)の頭文字を取っています。Mとは、システム設計のことで、Vとは、開発したプログラムを表示する機能のこと、Cとは、ユーザーの入力に基づき、モデルとビューを制御することです。Laravelもそれに属すフレームワークです。
6:バリデーションが容易にできる
Laravelを活用すると、様々なバリデーションが容易に活用できます。バリデーションとは、入力の決まりに沿っているかチェックする機構のことです。Laravelにはそういう機能が、デフォルトで入っていることから、容易に行うことができるというわけです。
- システム
エンジニア - Laravelの導入方法にも、さまざまなやり方があるのですね。
- プロジェクト
マネージャー - そうですね。OSによって異なるので、しっかり理解しておきましょう!
Laravelとはどのようなものか知り活用してみよう
この記事ではLaravelの特徴から、環境構築、プロジェクト作成、サーバ起動について解説しました。
Laravelの導入はOSや利用するツールによって様々な方法があり、環境構築に戸惑うことも多いかも知れませんが、色々な技術を利用していることがわかります。
まずは実際にLaravelを起動して体感してみてください。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。
-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。
PHP新着案件New Job
-
ECサイトの開発/HTML/東京都千代田区/【WEB面談可】/在宅勤務
月給26万~26万円東京都千代田区(秋葉原駅) -
採用管理システム運用保守/Apache/東京都渋谷区/【WEB面談可】
月給50万~60万円東京都渋谷区(代々木駅) -
採用管理システム開発のテスター/Apache/東京都渋谷区/【WEB面談可】
月給25万~35万円東京都渋谷区(代々木駅) -
社内システムの開発/PHP/神奈川県相模原市/【WEB面談可】/在宅勤務
月給45万~60万円神奈川県相模原市(相模大野駅) -
販売管理システム開発支援SE/PHP/東京都渋谷区/【WEB面談可】/テレワーク
月給45万~60万円東京都渋谷区(新宿駅) -
採用管理システムリプレース、追加開発/Apache/東京都渋谷区/【WEB面談可】
月給42万~48万円東京都渋谷区(代々木駅)