こんにちは、セイタです。
フレームワークを利用する中で、MVCモデルという言葉を聞いたことがありますよね。
しかし、ほとんどのフレームワーク初心者は、MVCモデルと言われても正直どういう意味なのかイマイチわからないと思います。
ぼくが一番最初に学習して実装も行ったフレームワークはPHPフレームワークのLaravelなのですが、実際にコードを書いてみたところシンプルに解説できそうだったので、今回記事にて解説することにしました。
一応タイトルにもある通り、初心者向けに内容を書いていこうと思うので、深い部分の解説はせずに浅い部分を解説してMVCモデルについての理解を深める手伝いができたら幸いです。
【初心者向け】MVCモデルを理解して、フレームワークの理解を深める【シンプル思考】
MVCモデルはそれぞれの英字ひとつひとつに役割が当てられています。
- M=モデル
- V=ビュー
- C=コントローラ
普段書いているコードをそれぞれの役割を持っている仕組みごとに分けて、効率よく開発をすることができるという認識を持っていただければOKです。
MVCモデルの『M』の役割
MVCモデルの『M』の部分に関しては、主にデータベース関連の処理をまとめておく部分になります。
SQLの設定内容をまとめたり、データベースのテーブル関係の管理するための部分になり、MVCモデルの中でも一番扱いが難しい部分です。
また、後述するコントローラとも関連付けてデータベースの内容を扱うので、頭の中が混乱しないように注意しましょう。
MVCモデルの『V』の役割
MVCモデルの『V』に関してはビューと言われ、主にウェブページのフロントエンドを管理する部分になります。
また、通常であればindex.phpというPHPファイルを作成するところ、Bladeテンプレートというものを使用する際にはindex.blade.phpというファイルに書き換えます。
こうすることによって、ある程度レイアウトが決まっているマスターレイアウトを作成してしまえば、新しくページを作る際にマスターデータのレイアウトを引き継いで作成できるので、かなり時間を短縮できます。
主に@yieldと@sectionというものを使用するのですが、使い慣れるとかなり便利にページ作成ができるようになるので、しっかりとマスターするようにしましょう。
MVCモデルの『C』の役割
最後にMVCモデルの『C』についてです。
主にコントローラと呼ばれる関数の集合体のような役割を担います。
例えば、ドメインのパスを設定するときにコントローラの関数選んで、どれを使用するかを割り当ててアクセスできるようにします。
主にルーティングと呼ばれるものなのですが、ビューを作ってコントローラーで関数を作り、ルーティングでアドレスの割当てコードを書く。
この手順を繰り返すことによって、徐々に理解できるようになっていくと思うので、最初は仕組みに困惑すると思いますが、手を止めずにわからずとも書いてみることをおすすめします。
環境によっては、フレームワークが使えない場合も
最近Laravelで開発を行おうとした際に少しトラブルが発生したので、そちらについても触れていこうと思います。
ロリポップのエコノミーはSSHログイン不可
ロリポップのエコノミープランは安さがとても魅力的なプランです。
しかし、一見魅力的なエコノミープランはSSHログインができない仕様となっています。
これがどういうことかというと、ローカル環境でVertualBoxとVagrantを使用している人であればわかると思うのですが、『vagrant ssh』コマンドが使用できないと考えてください。
Laravelの場合は、Terminal(MacOS)を使用してLaravelをインストールしたり、データベースのマイグレーションと呼ばれる処理を行うのですが、それができないのです。
環境によっては、このようにフレームワークを制御させるために必要なものが欠落していて、開発の妨げになる事案が発生する可能性もあるので、本番環境の構築をする際には十分注意してサーバーなりVPSなりを構築するようにしましょう。
レンタルサーバーかVPNの使用をおすすめ
ロリポップのエコノミープランではLaravelの開発は現実的ではないというお話を先程しましたが、その他のレンタルサーバーやVPSを使用すれば問題は解決できます。
中でも最近ぼくが注目しているのが、VPSを使用した開発です。
VPSを簡単に解説すると、ローカル環境で構築している状況をそのまま本番環境で動作させることができるイメージです。
サーバー自体はひとつなのですが、それぞれ利用するユーザーごとにLinuxOSやSSDなどが提供されているので、環境を変えて開発したい場合などに利用すると便利かもしれません。
今後VPS環境を導入する予定なのですが、その際は色々なVPSを調べてみた結果コスパが良いのがこちらのKAGOYAのVPSだと感じたので、実際に契約した際にはブログにて紹介したいと思います。
フレームワークで開発するときは、環境を要確認
今回は、MVCモデルとフレームワークを使用した開発を行う際には本番環境のスペックを確認しよう、という内容でお送りしました。
フレームワークの学習に関しては、ローカル環境でも充分勉強することができるはずです。
しかし、いざ本番環境で開発を行うとなると、ローカル環境でできていたことが全くできないという状況になることもあります。
そのようなトラブルを未然に回避するためにも、本番環境を構築してフレームワーク開発を行う際には、事前にスペック等を十分確認してVPS等を契約するように注意してください。
頭の片隅にでも、今回の記事の内容を入れておいていただけると、トラブル回避に役立つはずです。