PR/BLOG

広報・ブログ

はじめてのフレームワーク 【Laravel編】

えりちゃん
コーヒーが苦手

ゆいちゃん
趣味は海のある町への旅行

ともちゃん
捨てることが得意

リーダー五十嵐氏
本日の講師

はじめに

リーダー五十嵐氏

今回は、「Laravel」というフレームワークについて学んでいくよ。

ともちゃん

前々回でフレームワークの種類についてまとめましたが、「Laravel」はPHPのフレームワークですよね!

ゆいちゃん

PHPのフレームワークの中でもよく耳にするので、人気のフレームワークのようです。

リーダー五十嵐氏

そうだね。PHPのフレームワークは「CakePHP」など他にもあるけど、
近年注目されている「Laravel」について学んでいこう!

「Laravel」について

  • PHPのWebアプリケーションフレームワーク。
  • MITライセンスの下でリリースされているオープンソースソフトウェア。
  • MVCモデルと呼ばれる設計パターンを採用。
えりちゃん

プログラムを機能ごとにファイル分けすることで、プログラムの構成が分かりやすくなるんですね!

リーダー五十嵐氏

MVCモデルはLaravelの他にも様々なフレームワークに採用されているからフレームワークを使う前にしっかり理解しておこうね。続いてLaravelの機能について紹介するよ。

Artisanコマンドラインインターフェース

  • Laravelが持つ独自の専用コマンド。
  • Artisanコマンドを実行することで、LaravelのControllerやModelなどの雛形作成が容易に可能。

マイグレーション

  • データベースのテーブルの定義(カラム名・データ型・制約等)を管理する仕組み。
  • Laravelでは、Artisan migrateコマンドを実行すると、定義を記述したファイルを元に自動でデータベースを構成し、容易にテーブル作成が可能。

Eloquent ORM

  • Laravelが持つ独自のデータベースのデータ操作を行う機能。
  • データベースのテーブルと「モデル」というクラスの関連付けを行い使用する。
  • 命名規則があり、クラス名を複数形のスネークケース(小文字)にしたものがテーブル名として使用。(「users」テーブルの場合、「User」がモデルクラス名となる。※プロパティを定義し、テーブル名を指定することも可能。)
  • 関連付けされたテーブルのレコードを取得できるなど、データ操作に関する処理記述が容易に可能。

Blade

  • LaravelのView作成に使用するテンプレートエンジン。
  • Viewの中に直接PHPを記述することが可能。拡張子を「.blade.php」で作成。
  • ディレクティブと呼ばれる機能(@extends,@section,@yield)を使用することで、共通で使用したいレイアウトを親Viewとして、異なる部分だけを子Viewとして作成し、テンプレート継承が容易に可能。
えりちゃん

便利な機能がたくさんあるんですね!

リーダー五十嵐氏

今回は一部だけの紹介だけど、Laravelには他にも豊富に機能があるから調べてみてね。
それでは、実際にLaravelを使ってみよう!

Laravelのインストール方法

リーダー五十嵐氏

Laravelを使うには、まず環境を作ろうね。
PHPとComposerというツールをインストールする必要があるよ。
インストール方法については色々あるから、Webを参考にしてみてね。

ゆいちゃん

PHPについては、過去に学んだPHPの環境構築の際に紹介したXAMPPが使えますね。

リーダー五十嵐氏

そうだね!今回もXAMPPを使用してローカル開発環境を作ってみよう。
PHPが古いバージョンだとLaravelをインストールできないから、すでにPHPがインストールされていても注意して確認してね。(現在最新のLaravel8.x.xでは、PHP7.3以上が必要)

ともちゃん

PHPとComposerのインストールまで準備できました♪

リーダー五十嵐氏

ComposerはPC(Windowsの場合)のコマンドプロンプトを起動して「composer -V」を実行すると、以下のようにバージョン情報が表示されるよ。ちゃんとインストールされているか確認してみよう。

リーダー五十嵐氏

続いてLaravelをインストールするために、ComposerとPHPのパスの設定が必要だよ。
Composerの公式から提供されているインストーラーを使用すれば自動的に設定されるけど、パスが通っているかどうか以下のコマンドでそれぞれ確認してみてね。

リーダー五十嵐氏

確認できたらLaravelをインストールしよう!
Composerを使用して、Laravelをインストールすることができるよ。以下のコマンドを参考にしてね。

ゆいちゃん

コマンドで指定したディレクトリに「Test」というフォルダ名でLaravelプロジェクトの雛形が作成できました!

ともちゃん

作成したプロジェクトのディレクトリに移動して、以下のコマンドでインストールしたLaravelのバージョン確認ができますね!

リーダー五十嵐氏

インストールできたら、Laravelを起動してみよう!
サーバ(Apache)を起動して、コマンド「php artisan serve」を実行してみてね。
ブラウザから「http://localhost:8000」へアクセスするとLaravelのページが表示されるよ。

えりちゃん

Laravelがうまく起動できました!

ゆいちゃん

さっそくLaravelの機能を試してみたいです!

リーダー五十嵐氏

OK!起動できたら、Laravelを使って簡単なプログラムを作ってみよう!

Laravelを利用してみよう!

リーダー五十嵐氏

まずは、URLを指定して「Hello World」のページを表示させるルーティングの設定をしてみよう。

ともちゃん

ユーザーからリクエストされたURLに対して、どのような処理を受け渡しするのかを設定するのがルーティングですよね!

リーダー五十嵐氏

そうだね。Laravelでは、ルーティングの設定をroutes/web.phpに記述するよ。
リクエストURLに対して処理させたいControllerのアクションを設定してみよう。真似して書いてみてね。

えりちゃん

これで/sampleへアクセスされた時に、SampleControllerのindexアクションが実行されるんですね!

リーダー五十嵐氏

続いて、設定したアクションを記述するControllerを作成しよう。
Controllerは以下のコマンドで簡単に作成できるよ。

リーダー五十嵐氏

作成したControllerに「Hello World」のページを表示するよう、対象のViewを返す処理を記述するよ。

ゆいちゃん

Laravelにおいて、ViewはBladeが使われているんですよね!
「Hello World」を記述したBladeファイルを作ってみましたが、どこに保存すればいいんでしょうか。

リーダー五十嵐氏

view関数は、resources/viewsフォルダを参照しているからviewsの下に保存しよう。
例は引数にsampleを指定することで、フォルダの中のsample.blade.phpを呼び出す処理を記述しているよ。
準備ができたら、Laravelを起動して指定したURLにアクセスしてみよう!

ゆいちゃん

ルーティングで設定したリクエストURLに対する処理が動いて、「Hello World」が表示されましたね!

ともちゃん

今度はLaravelを使って、データベースと連携した処理を試してみたいです!

リーダー五十嵐氏

連携するには、データベースの設定が必要だよ。
Laravelでは、config/database.phpがデータベースの設定ファイルになっているから確認してみよう。

えりちゃん

デフォルトでは、MySQLが採用されていて.envに記述された情報を読み込むように設定されているんですね!

リーダー五十嵐氏

.envファイルを開くと、「DB_xxxx」と記述された箇所があるよ。そこがデータベース接続情報にあたるから接続先データベース名やユーザー、パスワードなど環境に合わせて設定してみてね。

リーダー五十嵐氏

テーブルを新規作成する場合は、以下のartisan makeコマンドでマイグレーションファイルを作成してテーブルの定義を記述してみよう。artisan migrateコマンドを使うとマイグレーションファイルを元に簡単にデータベースのテーブルが作成できるよ。

リーダー五十嵐氏

例のように–createオプションをつけると、マイグレーションファイルで扱うテーブル名を含んで作成できるよ。

ゆいちゃん

1つ目のコマンドで指定した「test」というマイグレーションファイルが作成され、
2つ目のコマンドで接続先のデータベースに指定した「tests」というテーブルが作成されました!

リーダー五十嵐氏

テーブルが作成できたら、Eloquent ORMを使ってモデルとテーブルを紐づけてみよう!
以下を参考にモデルを作成して設定してみてね。

ともちゃん

「SampleTest」というモデルクラスが作成されました!命名規則があって、モデル名をスネークケースにした複数形(例だとsample_tests)が自動的にテーブル名とされるんですよね。

リーダー五十嵐氏

そうだね。例のようにテーブル名を指定することもできるよ。
基本的なデータベース操作は予めメソッドが用意されているから作成したモデルを使用することで、簡単にデータを取得できて便利になるよ!

えりちゃん

「$fillable」と「$guarded」はどのような場合に必要な設定なんですか?

リーダー五十嵐氏

Laravelでデータベースにデータを挿入する処理は、主にcreateメソッドを使用する、fill+saveメソッドを使用する、という方法があるよ。これらのメソッドを使用するには、デフォルトで複数代入から保護されているため「$fillable」「$guarded」のどちらか一方を設定する必要があるよ。

ゆいちゃん

予期しないデータの変更を防ぐために、代入を許可する属性を指定する必要があるんですね!

リーダー五十嵐氏

続いて、ルーティングで設定したViewにデータベースから取得した値を表示させる処理を作ってみよう!
まずは、作成したモデルを使用して必要なデータを取得するメソッドを作ろう。
以下の例では、引数で受け取った$idに一致するデータを取得して返す処理を記述しているよ。

リーダー五十嵐氏

作成したメソッドから取得したデータを配列に入れて、Viewへ受け渡す処理をControllerへ記述するよ。

リーダー五十嵐氏

Viewへ渡したデータを、例のように変数を埋め込んで表示することができるよ。
ここまで出来たら/sampleへアクセスして確認してみてね。

えりちゃん

データベースからデータを取り出して、表示することができました!
Laravelはデータ操作が簡単にできますね!

おわりに

えりちゃん

Laravelには便利で豊富な機能があるので、人気のフレームワークなんですね!

ゆいちゃん

開発プロジェクトに合わせてLaravelを選択することで、より早く開発が進められるようになりますね!

ともちゃん

他のフレームワークとも比較して、もっと色々機能を試してみたいと思います!

リーダー五十嵐氏

はじめてのフレームワークシリーズはこれで終了するよ。
学んだことを活かして、用途に合わせたフレームワークを色々試してみてね。
次回も引き続き、情報処理技術について学んでいこう!

一覧に戻る
ゆりちゃん

技術開発推進部ゆりちゃんからのお願い顔マークを押して、技術ブログの
感想をお聞かせください^^