質問: ### 前提・実現したいこと PHPのテンプレートエンジンを学習してから何かサービスを作成しようとしている者です。 テンプレートエンジンはMVCモデルでいう所のVとどこかでお聞きしましたが厳密にはVとCですよね? また、このV,Cを担うのがテンプレートエンジンの認識でよければ、サービスを作成する際 これにDB関連のシステムが必要になったときMVCモデルのMが必要となり、結局フレームワークが必要だと思うのですがこの認識で合ってますでしょうか? 以前、小規模なサービスならフレームワークを使わずとも php+テンプレートエンジンの方が早いと助言を頂きましたが、 これにDB関連のシステムが入ると結局MVCモデルとなりフレームワークを使うはめになるでは?と思っております。 いまいちphp+テンプレートエンジンでサービスを作るという部分が分かりません。
回答: > > テンプレートエンジンはMVCモデルでいう所のVとどこかでお聞きしましたが厳密にはVとCですよね? > > > テンプレートエンジンによりますが、Cを担当するテンプレートエンジンというのは今一つ思い浮かびません。 Vの中でも最終的に出力する部分だけを担当するというのがよくあるテンプレートエンジンでは無いでしょうか。 どういう経緯と理解/ケースで「厳密にはVとCですよね?」と感じられたのかを追記されると、より精度の高い回答が返ってくると思います。 > > また、このV,Cを担うのがテンプレートエンジンの認識でよければ、サービスを作成する際 > > > ここは前述の通り、見解が異なりますが、 > > これにDB関連のシステムが必要になったときMVCモデルのMが必要となり、結局フレームワークが必要だと思うのですがこの認識で合ってますでしょうか? > > > 何らかのフレームワークを使うのがベストプラクティスで、実務的には必須であるケースが多いです。 が、MVCモデルもオブジェクト指向も採用せずに手続き型でDB接続を行い、結果出力だけテンプレートエンジンを使うような実装も可能であるため、「どんな場合も必ず必要である」とは言えません。 > > 以前、小規模なサービスならフレームワークを使わずとも > > php+テンプレートエンジンの方が早いと助言を頂きましたが、 > > これにDB関連のシステムが入ると結局MVCモデルとなりフレームワークを使うはめになるでは?と思っております。 > > > 前述の通り、フレームワークを使わなくて開発することは可能です。 フレームワークの学習コストはテンプレートエンジンの学習コストに比べればかなり大きいので、 (学習目的でとりあえず公開するサービスなら)生PHP+フレームワークで開発するのが一番早い可能性が高いというのは的を射ていると思います。 学習目的であれば 1. 完全に生のPHPでサービスを作ってみる(DBアクセスやHTML出力もPHPで行う) 2. PHP+テンプレートエンジンで同じ仕様のサービスを作ってみる 3. フレームワークを使って同じ仕様のサービスを作ってみる というような流れで作ってみると、それぞれのメリットや担当箇所が明確になって学習効率や応用力もつくと思いますよ。