[MVCモデル]とは?Laravelにも使われる概念を初心者に向けて解説
今回はLaravelにも使われている「MVCモデル」と呼ばれるアーキテクチャ(構造)について解説します。
「そもそもMVCとはなんのこと?」
「MVCとは何を行っているの?」
という方に向けて、MVCモデルの概要とそれぞれの役割について、主に下記の2点について解説します。
- MVCとは?
- MVCのそれぞれの役割
前回はルーティングについて解説しました。ルーティングについては前回の記事Laravelのルーティングの書き方とパラメータの使い方にて解説しています。
1.MVCとは?
MVCとは(Model-View-Controller)の略で、処理をモデル(Model)、ビュー(View)、コントローラ(Controller)の3つに分けて記述する考え方です。機能ごとにファイルを分けることによって処理を見やすくしています。
3つそれぞれの役割は、おおまかに以下のようになっています。
- モデル(Model):データベース系の処理を行う
- ビュー(View):画面表示を行う
- コントローラ(Controller):モデルとビューの橋渡しなど、全体の制御を行う
では、「Model」、「View」、「Controller」それぞれの役割について解説します。
2.MVCのそれぞれの役割
2-1.モデル(Model)
モデル(Model)とは、「データベースとのアクセスの処理」を担当しています。
Controllerからデータを受け取る命令が出され、命令に合うデータをデータベースから探します。そして受け取ったデータをControllerに送ります。
2-2.ビュー(View)
ビュー(View)とは、「Webブラウザに表示する見た目の生成」を担当しています。
まずルーティングで、アドレスとControllerのアクションメソッドを紐付けます。ルーティングに関してはLaravelのルーティングの書き方とパラメータの使い方にて解説しています。
ユーザーがリクエスト(アドレスにアクセス)するとControllerのアクションメソッドの処理が実行されます。
Controllerがリクエストに合うデータをViewに渡します。
ViewがControllerから受け取ったデータをレンダリング(見た目を整えて表示)してユーザーに渡します。
2-3.コントローラ(Controller)
コントローラ(Controller)とは、「ユーザーからリクエストを受け取り、ModelとViewの橋渡し」を担当しています。
ユーザーからのリクエストを受け取り、リクエストに合うデータをモデル経由で受け取ります。その後モデル経由で受けとったデータをViewに渡します。
まとめ
いかがでしたでしょうか?今回はMVCの概要とそれぞれの役割を解説しました。まとめると下記の4点です。
- MVCとは、処理を3つに分けて記述する考え方
- Modelとは、「データベースとのアクセスの処理」を担当
- Viewとは、「Webブラウザに表示する見た目を生成」を担当
- Controllerとは、「ユーザーからリクエストを受け取り、ModelとViewの橋渡し」を担当
Laravelで開発を行うにはMVCの知識が必要になってきます。MVCそれぞれの役割をしっかり理解し、効率的にアプリケーションの開発をしましょう!
Laravelのルーティングの書き方とパラメータの使い方
Laravelの勉強を始めて「ルーティング」という言葉が出てくると思いますが
「正直、ルーティングについてよく理解できていない」
「ルーティングの書き方がわからない」
という方に向けて、Laravelの勉強を始めたばかりでもルーティングの基本を理解し、パラメータを使用してルーティングを記述する方法をまとめました。下記の3点について解説します。
- ルーティングの基本について理解する
- ルーティングを記述してアクセスする
- パラメータを受け取って使用する
前回の記事ではLaravelをMacにインストールする方法について解説しました。まだインストールされていない方はPHPフレームワークLaravelをMacにインストールしてブラウザに表示させる方法にて解説しています。
1.ルーティングとは?
特定のアドレスにアクセスしたとき、どの処理を呼び出して実行するかを管理するのが「ルーティング」です。
「https://~/◯◯というアドレスにアクセスしたら□□という処理を呼び出す」というアドレスと処理の紐付けを行っているのが「ルーティング」です。
デフォルトで用意されているトップページのルート情報を見てみましょう。作成したプロジェクトの「routes」フォルダの中にあるweb.phpを開くと下記のコードが記述されています。
この場合、「’/’というアドレスにアクセスしたらfunction内の処理を実行する」となります。
function内の「return view(‘welcome’)」については後で解説しますが、ここでは「トップページをブラウザに表示させている」と思っていてください。
2.「routes」フォルダとは
ルーティングの情報が入っているフォルダが「routes」フォルダです。この中にはいくつかのファイルがありますが、基本的にWebページとして公開するものは全て「web.php」にルート情報を記述します。
3.ルーティングを記述する
3-1.ルート情報(GETアクセス)
Route::get(アドレス , 関数や「コントローラ、コントローラのアクションメソッド」など);
GETアクセスのルート情報は、Routeクラスの「get」というメソッドを使って設定します。第1引数に割り当てるアドレスを、第2引数にアドレスにアクセスした時に呼び出される処理を用意します。第2引数には関数を指定する他に、「コントローラとコントローラのアクションメソッド」と呼ばれるものを指定する場合もあります。
- Routeクラスの「get」というメソッドを使って設定
- 第1引数、割り当てるアドレス
- 第2引数、それによって呼び出される処理(関数を指定する場合と「コントローラとコントローラのアクションメソッド」を指定する場合がある)
gerメソッドでアドレスと処理を割り当てる、ということがルート情報設定の基本になります。
3-2.トップページのルート情報
デフォルトで用意されているトップページのルート情報がどのように設定されているか確認しましょう。
第1引数に’/’というトップページのアドレス、第2引数に関数を指定しています。この関数の中で「return」を使用して戻り値を指定しています。この「return」で返される値が、そのアドレス(今回の場合は’/’)にアクセスした際に送られます。
viewという関数はファイルをロードし、そのファイルをブラウザに表示するという関数です。
この場合は「welcome.blade.php」というファイルを表示しています。
「welcome.blade.php」というファイルは「resources」フォルダの中にある「views」フォルダに用意されています。
3-3.ルート情報を追加する
実際にルート情報を追加します。routesフォルダの中にあるweb.phpを開き、コードを追加します。
http://localhost:8000/sample にアクセスします。
上記のような画面が表示されます。この画面が追加したルート情報によって表示された画面です。
ここでは、第2引数のreturnでHTMLのコードを直接返してWebブラウザに表示されています。
3-4.ヒアドキュメントを使用して表示する
ヒアドキュメントとは、<<<EOF~EOF;の間に書いたコードをひとつにまとめて変数などに代入できます。
web.phpに下記のコードを追加します。
http://localhost:8000/sample にアクセスします。
上記のような画面が表示されます。このように<<<EOF~EOF;の間に書いたコードを「$heredoc」に代入し、returnで「$heredoc」を返してブラウザに表示させることができます。
4.ルートパラメータを使用する
Route::getは、アクセスする時にパラメータを設定し値を直接渡すことができます。第1引数のアドレス部分に{パラメータ}という形で値を用意し、第2引数の関数では、パラメータの値を受け取る変数を引数として用意します。
web.phpに下記のコードを追加します。
http://localhost:8000/sample/HELLO!!にアクセスします
上記のような画面が表示されます。この第1引数{cmt}、第2引数$cmtがパラメータとなります。sample/{cmt}の{cmt}の値が、$cmtに代入され、受け取った値を表示させる事ができます
5.任意パラメータに変更する
先ほど書いたルートパラメータは「必須パラメータ」と呼ばれ、パラメータを設定しないとエラーになります。
先ほどのコードでhttp://localhost:8000/sample/とアクセスするとエラーになります。
第1引数{cmt}、第2引数$cmtが必須パラメータとなっているので、アドレスにパラメータを入力しないとエラーになります。
パラメータを入力しないでもアクセスできる方法が「任意パラメータ」になります。
先ほどのコードのルーティングの引数を下記のように変更します。
- {cmt} → {cmt?}
- ($cmt) → ($cmt = ‘パラメータを受け取っていません!’)
http://localhost:8000/sample/にもう1度アクセスします。
cmtパラメータは、「任意パラメータ」となり、アドレスにパラメータを入力せずにアクセスすると「’パラメータを受け取っていません!’」が表示されます。アドレスにパラメータが入力されている場合は、パラメータの値が引数に代入されます。
まとめ
いかがでしたでしょうか。今回はLaravelのルーティングの基本とパラメータについて解説しました。まとめると下記の3点です。
- ルーティングとは、アドレスと処理の紐付けを行い管理する
- ルート情報の基本は、メソッドでアドレスと処理を割り当てる
- ルートパラメータを使用して、アドレスに値を設定できる
今回は「Route::get」メソッドのみで解説しましたが、他にも「Route::post」や「Route::resouce」などのRouteクラスも存在します。また、同じPHPフレームワークの「CakePHP」でもルーティングを使用していますので、ルーティングの基本をしっかり覚えてLaravel以外のフレームワークでも活かせる知識を身につけましょう
PHPフレームワークLaravelをMacにインストールしてブラウザに表示させる方法
プログラミングの勉強を始めて
「Laravelを使用して開発したい!!」
「でもLaravelのインストール方法がわからない」
という方に向けて、プログラミング初心者でもLaravelをインストールできる手順をまとめました。MacにLaravelをインストールし、ブラウザにLaravelのスタート画面を表示させます。
- Laravelをインストールする準備をする
- Laravelをインストールしてプロジェクトを作成する
- プロジェクトを実行しLaravelのスタート画面をブラウザに表示する
1.Laravelをインストールする準備をする
1-1.Homebrewをインストール
Homebrew公式サイトにてコマンドをコピーし、ターミナルで実行します。
Homebrew公式サイト:https://brew.sh/index_ja
実行後、brew -v コマンドを実行し、バージョンが表示されるとインストール完了です。
1-2.Composerをインストール
ターミナルにて brew install composer を実行します。
composer -v を実行し、バージョンが表示されるとインストール完了です。
1-3.Laravelインストーラをインストール
ターミナルにて composer global require “laravel/installer” を実行します。
cd ~/.composer/vendor/bin を実行し、 lsを実行します。laravalと表示されるとインストール完了です。
1-4.Laravelインストーラを呼び出す
export PATH=$HOME/.composer/vendor/bin:$PATH を実行します。
laravel -v を実行し、バージョンが表示されるとインストール完了です。
2.Laravelをインストールする
2-1.プロジェクトを作成
プロジェクトを作成するディレクトリに移動します。
laravel new プロジェクト名 を実行しプロジェクトを作成します。
「laravelapp」という名前でプロジェクトを作る場合
laravel new laravelapp と実行します。
laravelのバージョンを指定したい場合は
composer create-project “laravel/laravel=バージョン” プロジェクト名
と実行しバージョンを指定してプロジェクトを作成出来ます。
Laravelのバージョンが「6.0」系、プロジェクト名が「laravelapp」というプロジェクトを作成する場合
composer create-project “laravel/laravel=6.*” laravelapp
と実行します。
3.プロジェクトを実行しブラウザに表示させる
作成したプロジェクトにディレクトリを移動します。
php artisan serve と実行しサーバーを起動します。
Webブラウザから以下のアドレスにアクセスします。
http:localhost:8000/
上記のようにページが表示されると完了です。動作を確認したらCtrlキー+「C」キーを押すとサーバーが停止します。
まとめ
いかがでしたでしょうか。今回はプログラミング初心者向けに、phpのフレームワーク人気No.1のLaravelのインストールとブラウザに表示する方法をまとめました。
次回から新しくLaravelのプロジェクトを作成する場合は、Laravelをインストールする準備が終了しているので、「2.ララベルをインストールする」からの手順でプロジェクトを作成することが出来るので、快適にPHP開発を進めましょう!
Laravelをインストールされた方は、次の記事のLaravelのルーティングの書き方とパラメータの使い方にてルーティングについて解説していますので是非見てみてくださいね。
Warning: include(/var/www/html/tetraup.com/knocknote.jp/tmpl/aside.html): failed to open stream: No such file or directory in /var/www/html/tetraup.com/news_topics/wp-content/themes/news/archive.php on line 24
Warning: include(): Failed opening '/var/www/html/tetraup.com/knocknote.jp/tmpl/aside.html' for inclusion (include_path='.:/usr/share/pear7:/usr/share/php') in /var/www/html/tetraup.com/news_topics/wp-content/themes/news/archive.php on line 24