Laravelとは?|基本的な用語の解説とLaravelプロジェクトの作成について解説
- システム
エンジニア - Laravelとはどのようなものか教えていただけますか。
- プロジェクト
マネージャー - LaravelはWebアプリケーションフレームワークのことです。アプリケーションはMVCモデルにしたがって動作します。
Laravelとは?
Laravelは、Webアプリケーションを効率的かつ高度に開発できるPHPのWebアプリケーションフレームワークです。
2011年にリリースされ、その後一気にシェアを拡大し、今ではPHPのみならず他の言語のフレームワークの中でも高いシェアを誇っています。
特徴としては、比較的自由に開発ができる柔軟性、学習コストの低さ、多機能性があげられます。
Webアプリケーションについて
Web上のリソースを操作できるアプリケーションのことを、Webアプリケーションといいます。
Web上のリソースの操作には主に4つのメソッド(GET、POST、PUT、DELETE)を使用します。
GETはデータの取得、POSTは新規データの送信、PUTはデータの更新、DELETEはデータの削除を行います。これらの4つのメソッドは、合わせてCRUDメソッドと呼ばれます。
Web上のリソースとは?
Webページに表示される全てのものをリソースと呼びます。
リソースの中には大きく分けて、ユーザに変更が許可されているものと、変更が許可されていないものがあります。
Webアプリケーション作成する時は、セキュリティ上の安全を担保するために、変更の許可の付与が重要になります。LaravelなどのWebアプリケーションフレームワークでは、不用意な許可を制限するようにできています。
URLとは?
URLとはUniform Resource Locatorの略称であり、その名の通り、Web上のリソースを特定するために使われます。
識別は数字の並びで行われますが、URLは人間にとってわかりやすい表記に変換されており、URLの頭には通信規約を表すhttpやhttpsが表記されています。またその後ろにworld wide webの略称のwww、ドメイン名、最後にファイル名等の順で続きます。
Webアプリケーションフレームワークについて
Webアプリケーションの土台となるプログラムのことを、Webアプリケーションフレームワークといいます。
Webアプリケーションフレームワークには、Web開発における共通処理がまとめてあります。
Webアプリケーションを1から作成するには、膨大なプログラムが必要となりますが、フレームワークを用いることで、共通処理を書かなくていいため、効率的に開発が行えます。
ライブラリとフレームワークの違いについて
フレームワークと似たものにライブラリが存在します。ライブラリとは、便利なプログラムのコードが集められたファイルのことです。
ライブラリとフレームワークの違いは、ライブラリはユーザが書いたプログラムによって呼び出される側ですが、フレームワークはユーザの書いたプログラムを呼び出す側という点です。
ライブラリとフレームワークは似ているようで全く異なるものなので、混同しないようにする必要があります。
フレームワークを扱う際の注意点
上述した通り、ライブラリは便利な道具の寄せ集めであり、道具を利用するかしないかはユーザに委ねられています。
一方、フレームワークはWebアプリケーションの土台であり、ユーザはフレームワークの枠組みの中で開発していくことになります。
フレームワークを用いる際は、ユーザは必ずフレームワークのルールに沿って開発をしなければならないので、フレームワークのルールをしっかりと学んでおく必要があります。
Laravelでプロジェクトを始める方法
Laravelを用いたWebアプリケーションを作成する際に、まずLaravelプロジェクトを作成します。
Laravelプロジェクトには、Laravelによるアプリケーション開発のベースとなるファイルが格納されています。
プロジェクトの作成はphpとcomposerがインストールされたターミナル上で
1
2
|
$ composer create-project laravel/laravel プロジェクト名 --prefer-dist<br>
Installing laravel/laravel (vバージョン)<br>
|
として作成します。
composerとは?
composerとは、PHPのライブラリ管理システムのことです。PHPのライブラリやフレームワークをインストールしたり、バージョンをコントロールするために利用します。
composerを利用すれば、あるライブラリをインストールする時に、そのライブラリに必要なライブラリ(依存ライブラリ)を自動的にインストールすることができます。
Laravelのディレクトリ・ファイル構造
プロジェクト作成のコマンドでファイルやフォルダがいくつか作成されますが、Laravelは膨大なプログラムで構成されているので、全てのファイルを理解することは困難です。
ここでは開発する上で、変更する必要があるファイルやフォルダについてのみ簡単に説明します。開発する際に重要なファイルは以下に示す通りです。
・app/
・.env
・database/migrations/
・resources/views/
・routes/web.php
.envについて
.envは環境設定ファイルのことです。.から始まるファイルは隠しファイルなので設定によっては表示されないので注意が必要です。
.envファイルには、ローカル環境やステージング環境、本番環境で異なる環境変数を設定するために記述します。また、どの環境でも同じである環境変数は/configフォルダ内に記述します。
環境変数には、使用するデータベース情報や、外部サーバの機密情報、デバック設定などがあります。
/database/migrationsについて
/database/migrationsはマイグレーションファイルが格納されるフォルダです。
マイグレーションファイルとは、データベースにテーブルを作成・編集するのに用いられます。
通常、テーブルを新規作成するには、SQLコマンドをデータベースに直接実行します。カラムを追加する場合も同じです。しかし、SQLコマンドを使用した場合、テーブル定義を元に戻すことが困難です。
マイグレーションファイルを使用すれば、戻したいテーブル定義まで簡単かつ正確に戻すことができます。これをロールバックと呼びます。
MVCモデル
Laravelにおいて、Webページの表示までの流れを理解する上で重要なのがMVCモデルです。
MVCはModel、View、Controllerのことであり、アプリケーションの開発設計のパターンの1つです。
また、MVCに加えてRouterも重要な役割を担います。ここではModel、View、Controller、Routerについて説明します。
Modelについて
Modelとは表示するデータの元となるリソースのことです。
LaravelではModelはデータベースを操作する機能を作る際に使用されます。Modelの関数はSQL文の代わりになります。
1つのテーブルに1つのModelが存在し、データベースのレコード1つにModelのインスタンス1つが対応します。
Webアプリケーションでは扱うデータを明確にし、Modelを作成するための情報を揃える必要があります。開発はModelの作成からスタートするのが良いでしょう。
Controllerについて
Controllerは、ユーザから送信されてきたHTTPリクエストをController内に記述された関数に割当てて処理します。
また、HTTPリクエストに対応したModelの取得や作成、保存を行い、Viewを表示します。
HTTPリクエストとはCURDメソッド(GET、POST、PUT、DELETE)のことです。
Laravelにおいて、Controllerのファイルはapp/Httpに格納します。
Viewについて
Viewは、Controllerによって処理されたHTTPリクエストの結果を表示するWebページのことです。
ViewではCSSを反映したり、HTMLに埋め込まれたPHPにより、Controllerによって選択された適切なModelの情報を表示します。
また、Viewファイルはresources/viewに格納されており、URLによりその位置を特定し表示されます。
Routerについて
Routerでは、URLのルーティングを一元管理しています。
ルーティングとはユーザのリクエスト内容(HTTPリクエスト)とサーバ側の処理(Controller)を紐付けることです。
Laravelでは、routes/web.phpのファイルがRouterの役割をしています。このファイルを見ることで、Webアプリケーションのルーティングを全て把握できます。またルーティングを行う際はこのファイルに記述します。
- システム
エンジニア - Laravelでプロジェクトを始める方法についてよく分かりました。
- プロジェクト
マネージャー - ご紹介したように、フレームワークを用いる際、ユーザは必ずフレームワークのルールに沿って開発をしなければなりません。フレームワークのルールをしっかりと学んでください。
Webアプリケーションの理解を深めてLaravelを活用しよう
Webアプリケーションフレームワークにおける基本的な用語の解説と、初学者がLararvelプロジェクトを始める際に理解すべき重要な点について解説しました。
実際にWebアプリケーションをLaravelを用いて開発する際は、初学者にとって様々な障壁が存在します。
Webアプリケーションの基本について理解した上で、リファレンスサイトなどで一つ一つ調べながら解決しましょう。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。
-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。
新着案件New Job
-
開発エンジニア/東京都品川区/【WEB面談可】/在宅ワーク
月給29万~30万円東京都品川区(大崎駅) -
遠隔テストサービス機能改修/JavaScript/東京都港区/【WEB面談可】/テレワーク
月給45万~60万円東京都港区(六本木駅) -
病院内システムの不具合対応、保守/東京都豊島区/【WEB面談可】/テレワーク
月給30万~30万円東京都豊島区(池袋駅) -
開発/JavaScript/東京都豊島区/【WEB面談可】/テレワーク
月給50万~50万円東京都豊島区(大塚駅) -
債権債務システム追加開発/東京都文京区/【WEB面談可】/在宅勤務
月給62万~67万円東京都文京区(後楽園駅) -
PMO/東京都豊島区/【WEB面談可】/在宅勤務
月給55万~55万円東京都豊島区(池袋駅)