.net column
.NET開発者のためのブログメディア

Laravelの主な特徴とは?Laravelの導入方法とおすすめ理由7選も解説

2020年06月08日

SE
PHPのフレームワークであるLaravelとは、どのようなものなのでしょうか?

PM
ほかのフレームワークと比較してバージョンアップが頻繁でドキュメントが豊富なため、ここ数年シェアを拡大しています。

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専用のコマンドツールで、プログラムファイルの作成や、データベース管理、サーバ起動など様々な操作をコマンドベースで実行可能です。

例として、モデルとコントローラを作成したいとして、以下のコマンドを入力することによって、自動的にファイルを生成してくれます。

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コマンドでインストールしてみましょう。

Homebrewの動作確認


Homebrewのインストールが完了したらHomebrewのコマンド、brewでバージョン確認します。

※○.○.○には、インストールしたバージョンが入ると考えられます。

Composerを検索


今度は、brewでComposerパッケージが存在するか検索してみます。

Composerをインストール


パッケージ確認後、一度Homebrewをアップデートします。アップデートができたら実際にComposerをインストールして完了となります。

composer.pharのパスを変更する


composer.pharとは、LaravelでComposerを実行するための、Composerの実行ファイルですが、現状のままだとファイルパスを直接指定してコマンドを実行しなければいけません。そこで、Composerをどの階層からでも実行できるようにファイルパスを変更します。

下記は「/usr/local/bin/」にcomposer.pharを移動し、composerに名称を変更した例です。これで「composer」と入力するだけでComposerを実行することができます。

Composerのバージョンを確認する


Composerをインストール出来たら、Laravelの中で、Composer自体を実行できるか、確認してみましょう。バージョン確認とは、使用している実機で動作しているComposerのバージョンをコマンドラインなどで確認を行う方法です。以下のコードを打つことによって、それが実証されると考えられます。

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」としました。

Artisanでサーバを起動する


LaravelではApacheやNginxといったWebサーバを立てなくてもサーバを起動することができます。Apacheとは、WindowsやUNIX等の現在のOSバージョンを含む、オープンソースのHTTPserverを開発、メンテナンスする上で威力を発揮するソフトウェアです。Nginxとは、高い稼働率を誇るサイトのうち約65%以上で広範囲に支持されている高信頼のWebサーバシステムの事です。Webサーバをオープンソースをでは実際にサーバを起動してみましょう。

サーバを起動する


サーバを起動するには、artisanコマンドにserveオプションをつけます。artisanコマンドとは、artisanで利用するコマンドの一覧の事を指していると考えられます。serveオプションとは、ApacheやNginxのようなlaravelのアプリケーションのサーバを設置する際に使用するオプションです。成功するとサーバのURLと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には様々なコマンドが充実しており、それによって環境構築が容易になっていると考えられます。

5:MVCモデルを採用している


MVCモデルは、モデルのM(Model)、ビューのV(View)、コントローラのC(Controller)の頭文字を取っています。Mとは、システム設計のことで、Vとは、開発したプログラムを表示する機能のこと、Cとは、ユーザーの入力に基づき、モデルとビューを制御することです。Laravelもそれに属すフレームワークです。

6:バリデーションが容易にできる


Laravelを活用すると、様々なバリデーションが容易に活用できます。バリデーションとは、入力の決まりに沿っているかチェックする機構のことです。Laravelにはそういう機能が、デフォルトで入っていることから、容易に行うことができるというわけです。

SE
Laravelの導入方法にも、さまざまなやり方があるのですね。

PM
そうですね。OSによって異なるので、しっかり理解しておきましょう!

Laravelとはどのようなものか知り活用してみよう


この記事ではLaravelの特徴から、環境構築、プロジェクト作成、サーバ起動について解説しました。

Laravelの導入はOSや利用するツールによって様々な方法があり、環境構築に戸惑うことも多いかも知れませんが、色々な技術を利用していることがわかります。

まずは実際にLaravelを起動して体感してみてください。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags