
PHP でシステムを開発する際ですが、恐らく何かしらのフレームワークを利用した場合は大半だと思います。そう言った時にテンプレートエンジンの Smarty を合わせて利用するかどうか意見が別れる時があります。
PHP でフレームワークが今ほど使われていなかった大昔は、素の PHP 実装 + Smarty で、ロジックとテンプレートを分離する流れがありました。
しかし、現在利用されるほとんどのフレームワークでは当たり前のように MVC の思想で構成されており、ロジックとテンプレートは初めから分離されています。
そう言った状況の中、Smarty を各フレームワークと連携してテンプレートエンジンとして利用する必要がどれほどあるのか、判断に苦しみます。
皆さんはどう考えるでしょうか?
No.4ベストアンサー
- 回答日時:
そもそも、CakeやZend Framework、Fuelなどほとんどのフレームワークが、設計コンセプトにおいて、Smartyの存在を無視している以上、あえて過去の遺物を引きずる必要はないです。
Smartyはテンプレートエンジンですらない、単なるタグパーサであり、モダン・フレームワークのアーキテクチャに合いません。
最新のMVCであるLaravelなどは、自前でBladeというテンプレートエンジンを装備していますし、WordpressのようなCNSでもSmartyは用なしです。
Smartyを採用したがるのは、開発をレガシーphpの手法に引き戻して、何とか仕事を自分たちの手の届く範囲に止めたい、オールドデベロッパーの悪アガキに思えます。
ストレートなご意見ありがとうございます。
共感部分が多いです。
こちらの開発リソースが特別なのか、Smarty有りきの方が割と多いんです。
(昔からPHP + Smartyで開発してきているからなのか)
よく言われるのが、Smartyでないとコードが汚い。
Smartyには便利機能が豊富でテンプレート処理が簡単。
個人的は、Smartyを定義してSmartyに情報を設定するコード自体が、フレームワーク標準ではなくSmartyの拡張コードという認識なので汚い?というか不要なコードに感じてます。
シンプルでなくなっている認識です。
本当にメリットがあるのか、その場では理解した風でいますが、本当はイマイチ腹に落ちてきていない感じです。
No.3
- 回答日時:
cakeだと、viewはE-R図を描いた上bakeで生成されてしまいますので、それを使わないと連携が危うくなります。
modelとの密接な連携も、フレームワークが囲い込んでいますし。
ただし、全くmodelと無関係なオブジェクトを使用するというのであれば、smartyは名前の通りスマートにできます。
Zendは書き方・書式がうるさい系統ですから、smartyを使うと、コードチェックに引っかかる可能性があります。
設計者の頭の中で、ここからはsmartyの領域だと区分けがきっちりできれば原則問題はないかと思います。
が、そんなに頭脳はクリアではないのです。
cakeが1から2になったときの混乱は今もひきずっていますが、smartyと一緒に使った場合、次に3ができて移行しようとしたときかなり混乱するようには思います。
ご意見ありがとうございます。
設計はシンプルな方が絶対いいですね。
後から参加した方に頭を悩ませたくないですし、メインでも無いところで考えるのが勿体無いです。
ベース部分(プロジェクトの骨組み)は限りなくシンプルが理想です。
No.2
- 回答日時:
MVCになっていても搭載されているViewの機能が貧弱の場合があります。
その場合、Smartyを使った方が楽な場合があります。
(SmartyはViewに機能を絞って開発されている分、Viewとしての機能は高機能なので)
ご意見ありがとうございます。
確かに、Smartyにある機能が各フレームワークのテンプレート機能にないというのは、話している方がいました。
簡単な処理だったので、それならビューヘルパーか何かで自前で用意することもできるはずなんですけどね。
どう説明するか、難しいときもあります。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- サーバー Laravelをレンタルサーバーにインストールするにはどうすればいいですか? 2 2022/06/29 10:17
- PHP クラス 1 2022/08/08 15:12
- 会社経営 新規事業開発について 製造業に勤めています。所謂大企業で、多数の事業を抱えています。アフターコロナと 2 2023/07/26 20:44
- JavaScript カラーミーショップのsectionループ内で、[引数][戻り値]ありの関数的な処理を行いたいです。 1 2022/05/07 19:39
- JavaScript Python Java,Springフレームワークの習得 1 2023/08/02 15:28
- PHP eclipse pleiades phpのインストールについて 1 2023/02/03 17:15
- 訴訟・裁判 ①こうゆう裁判↓は、本人訴訟でしてるのですか。 ②なんでニュースになるのですか。本人がマスコミにタレ 3 2023/07/11 12:05
- その他(プログラミング・Web制作) .netに近いjsフレームワークは何ですか 2 2022/05/12 22:28
- 固定電話・IP電話・FAX 固定電話のお勧めを教えて下さい。 2 2022/06/14 13:26
- 離婚 離婚後に妻子が住む家の家財家電費用を夫が負担する義務はあるのか、ご意見下さい。 5 2023/05/31 20:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPフレームワーク環境でのSmar...
-
Smarty tpl内のifの書き方について
-
ローカル環境でのメール送信
-
トランザクションが原因?DBに...
-
JSPにてMySQLのBLOB型の画像の...
-
PHPのsafemodeとは?
-
ユーザー認証でユーザーID毎に...
-
【file_exists】ファイルが存在...
-
URLの変わらないページをPHPで...
-
フォームで戻った際に入力済み...
-
PHPファイルの中身が見られるこ...
-
VBSの「MsgBox」について
-
FORMで送信ボタンと戻るボタン...
-
FTPコマンドでディレクトリごと...
-
ボタンのクリック数を合計保存...
-
別サーバのプログラムを起動
-
日本語をGETで渡す場合UR...
-
PHPのif文でその処理を途中で抜...
-
php経由のMySQL
-
Subversionのリポジトリの削除
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Smarty tpl内のifの書き方について
-
Smartyのif構文について
-
PHPフレームワーク環境でのSmar...
-
xserver Smarty PHP+MySQL
-
phpで距離÷時間の方法
-
PHPってなんの略?
-
phpでサブルーチン
-
【php】動的なURLを静的に見せ...
-
PHPの関数って何種類ありますか?
-
Smartyのテンプレート
-
tplを読みに行けません。
-
FTPコマンドでディレクトリごと...
-
PHPのif文でその処理を途中で抜...
-
フォントの色を変えるには?
-
Subversionのリポジトリの削除
-
バッチを用いたフォルダの自動移動
-
onedrive にexcelファイルをア...
-
「クラウドにアップロード」」...
-
トランザクションが原因?DBに...
-
.phpと.incファイルの違いはな...
おすすめ情報