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

数字と文字

Laravelとは?|基本的な用語の解説とLaravelプロジェクトの作成について解説

2021年03月31日
SE
Laravelとはどのようなものか教えていただけますか。
PM
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がインストールされたターミナル上で


として作成します。

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アプリケーションのルーティングを全て把握できます。またルーティングを行う際はこのファイルに記述します。

SE
Laravelでプロジェクトを始める方法についてよく分かりました。
PM
ご紹介したように、フレームワークを用いる際、ユーザは必ずフレームワークのルールに沿って開発をしなければなりません。フレームワークのルールをしっかりと学んでください。

Webアプリケーションの理解を深めてLaravelを活用しよう


Webアプリケーションフレームワークにおける基本的な用語の解説と、初学者がLararvelプロジェクトを始める際に理解すべき重要な点について解説しました。

実際にWebアプリケーションをLaravelを用いて開発する際は、初学者にとって様々な障壁が存在します。

Webアプリケーションの基本について理解した上で、リファレンスサイトなどで一つ一つ調べながら解決しましょう。


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

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

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

Search

Popular

reccomended

Categories

Tags