
前提・実現したいこと
PHPのテンプレートエンジンを学習してから何かサービスを作成しようとしている者です。
テンプレートエンジンはMVCモデルでいう所のVとどこかでお聞きしましたが厳密にはVとCですよね?
また、このV,Cを担うのがテンプレートエンジンの認識でよければ、サービスを作成する際
これにDB関連のシステムが必要になったときMVCモデルのMが必要となり、結局フレームワークが必要だと思うのですがこの認識で合ってますでしょうか?
以前、小規模なサービスならフレームワークを使わずとも
php+テンプレートエンジンの方が早いと助言を頂きましたが、
これにDB関連のシステムが入ると結局MVCモデルとなりフレームワークを使うはめになるでは?と思っております。
いまいちphp+テンプレートエンジンでサービスを作るという部分が分かりません。
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
下記のような質問は推奨されていません。
- 質問になっていない投稿
- スパムや攻撃的な表現を用いた投稿
適切な質問に修正を依頼しましょう。

回答3件
2
ベストアンサー
テンプレートエンジンはMVCモデルでいう所のVとどこかでお聞きしましたが厳密にはVとCですよね?
テンプレートエンジンによりますが、Cを担当するテンプレートエンジンというのは今一つ思い浮かびません。
Vの中でも最終的に出力する部分だけを担当するというのがよくあるテンプレートエンジンでは無いでしょうか。
どういう経緯と理解/ケースで「厳密にはVとCですよね?」と感じられたのかを追記されると、より精度の高い回答が返ってくると思います。
また、このV,Cを担うのがテンプレートエンジンの認識でよければ、サービスを作成する際
ここは前述の通り、見解が異なりますが、
これにDB関連のシステムが必要になったときMVCモデルのMが必要となり、結局フレームワークが必要だと思うのですがこの認識で合ってますでしょうか?
何らかのフレームワークを使うのがベストプラクティスで、実務的には必須であるケースが多いです。
が、MVCモデルもオブジェクト指向も採用せずに手続き型でDB接続を行い、結果出力だけテンプレートエンジンを使うような実装も可能であるため、「どんな場合も必ず必要である」とは言えません。
以前、小規模なサービスならフレームワークを使わずとも
php+テンプレートエンジンの方が早いと助言を頂きましたが、
これにDB関連のシステムが入ると結局MVCモデルとなりフレームワークを使うはめになるでは?と思っております。
前述の通り、フレームワークを使わなくて開発することは可能です。
フレームワークの学習コストはテンプレートエンジンの学習コストに比べればかなり大きいので、
(学習目的でとりあえず公開するサービスなら)生PHP+フレームワークで開発するのが一番早い可能性が高いというのは的を射ていると思います。
学習目的であれば
- 完全に生のPHPでサービスを作ってみる(DBアクセスやHTML出力もPHPで行う)
- PHP+テンプレートエンジンで同じ仕様のサービスを作ってみる
- フレームワークを使って同じ仕様のサービスを作ってみる
というような流れで作ってみると、それぞれのメリットや担当箇所が明確になって学習効率や応用力もつくと思いますよ。
投稿2019/07/02 09:35
総合スコア18615
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
回答へのコメント
2019/07/02 10:13 編集
2
以前に回答したついでに回答しますけど、知識の浅い人が作る場合前提の回答です。
そこまで疑問持って手が止まるぐらいならフレームワーク使って頑張った方が手が止まらない分マシです。
DBの操作自体にフレームワークは必要ではありません。
フレームワークを使う人は、使いやすいから使う、便利だから使う、作法に則って書くと理解しやすいから使う、セキュリティ周りに自信が無くてフレームワークに任せた方が安心だから使う、複数人で作業する時はフレームワークのルールに従うだけで共有しやすいから使う、そんなもんです。
フレームワークを使っていなかろうが機能を分離して作る方が良いと思ったら分離するし、軽いものだからいいやと思えば分離しない。作る人が自分で判断する事です。
投稿2019/07/02 09:27
総合スコア6369
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
回答へのコメント
2019/07/03 01:27
2
もしかして「MVCモデル=フレームワーク」と思っていますか?
フレームワークを使わずとも、MVCモデルでシステムを作ることは可能です。
また、MVCモデルに該当しないシステムを作ることも可能です(MとVとCが分離されておらず入り組んでいるという意味)。あるいはシングルページアプリケーション。
テンプレートエンジンはMVCモデルではVに相当します。もちろん、テンプレートのコード部分にC相当の物まで入れ込んで書く事は可能ですが、それは上記のようにVとCが入り組んだ形、つまり非MVCモデルのシステムですね。
投稿2019/07/02 09:25
総合スコア81126
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
回答へのコメント
関連した質問
Q&A
解決済
tomcatの始動失敗について
回答4
クリップ5
更新
2015/11/10
Q&A
解決済
テンプレートエンジンとフレームワークの違い
回答3
クリップ0
更新
2019/07/02
意見交換
クローズ
ApacheとPHPのセットアップ過程、Apacheのサービスをあげることができない
回答7
クリップ0
更新
2023/03/10
Q&A
解決済
Laravel 親子関係で紐づけた子モデルのデータを更新したい
回答1
クリップ0
更新
2023/03/10
Q&A
解決済
特定の日付のレコードを表示したい
回答1
クリップ0
更新
2023/03/22
意見交換
受付中
データベースの負荷を下げたい
回答27
クリップ0
更新
2023/03/27
意見交換
受付中
iOSアプリからPHPに情報を送る際の暗号化について
回答5
クリップ3
更新
2023/03/13
Q&A
解決済
Laravel カテゴリ検索を実装したが一度しか実行されない
回答1
クリップ0
更新
2023/03/12
同じタグがついた質問を見る
LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。
PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。
Symfony はPHPで記述されたWebアプリケーションフレームワークです。よく利用するコーディングをテンプレーティングするなど、Webアプリケーション開発の効率化を目的として設計されています。
Smartyは、PHPアプリケーションで使用されるテンプレートエンジンです。
Twig は、簡潔で可読性の高いテンプレートを記述することができ、 シンプルに記述することを目的として作られた PHPテンプレートエンジンです。