再度質問です。


Smartyについて質問です。

PHP5のフレームワークでZendやSymfonyでは、
テンプレートエンジンのSmartyが組み込まれていない(組み込みにくい)感じです。

なぜ、PHP5のフレームワークからSmartyが採用されなくなり、
ViewにPHPを直接使うようになったのでしょうか?

HTMLコーダさんやデザイナーさんに
PHPを直接扱ってもらうには、危険なのと拒絶されたりするので、
テンプレートエンジンを使ってもらいたいのですが。。。

世界中で同じ悩み抱えている人いっぱいいるはずなのに~と思ったりしています。

回答の条件
  • 1人2回まで
  • 登録:2008/02/06 00:34:55
  • 終了:2008/02/13 00:35:07

回答(5件)

id:yo-net No.1

yo-net回答回数265ベストアンサー獲得回数212008/02/07 10:01:13

ポイント23pt

自分は聞きかじりレベルなので回答にならないかもしれませんが、

Smarty入門~PHP5+テンプレート・エンジンでつくるMVCアプリケーション~ 山田 祥寛 (単行本 - 2005/3/15

と言う本があるので普通に使えるのでは、ただPHP4からPHP5からはスクリプトエンジンがバージョンアップした関係上、古いスクリプトエンジン対応では使いにくいのかもしれませんね。

id:caster777

ありがとうございます。

う~ん、ちょっと質問の意図とずれている感じです。

2008/02/12 14:41:34
id:heppokoA No.2

heppokoA回答回数65ベストアンサー獲得回数72008/02/07 20:14:33

ポイント23pt

デフォルトではZend Frameworkやsymfonyに組み込まれていないですが,Zend FrameworkではSmartyを利用できるようにするラッパスクリプトがオフィシャルのドキュメンテーションに書かれています(下記URL,ただし使ったことはありません)し,symfonyでもsfSmartyViewPluginというプラグインをsymfonyを使ったプロジェクトにインストールすればsmartyが簡単に使えます。

僕自身は今symfony+sfSmartyViewPluginで開発を行っていますが,プラグインのインストール~Smartyの利用まで導入がとてもスムーズに行えたので感激しました。

http://framework.zend.com/manual/ja/zend.view.scripts.html

http://trac.symfony-project.com/wiki/sfSmartyViewPlugin

id:caster777

ありがとうございます。

「View用のエンジンが増えたから、自分で好きなの組み込んでね。標準ではつけていないから、PHPで直接はき出してね。」

というスタンスなのかもしれないですね。

2008/02/12 14:43:28
id:fancios_fab No.3

fancios_fab回答回数1ベストアンサー獲得回数02008/02/08 02:23:22

ポイント22pt

ひとつは現在のデザインはほぼCSS上で行えるということ。

デザイナーはほとんどCSSで作業し、たまにタグにIDやclassを追加する程度です。PHPをいじくることなんてありません。

HTMLコーディングも開発者がやったほうが手っ取り早いので、HTMLコーダは必要ありません。

仮にデザイナーがテンプレート内のロジックをいじる必要が出る場合、Smartyのようなマイナーなものを覚えさせるよりは、

PHPを覚えてもらったほうが双方とも得だと思いますよ。

Smartyでも十分危険なコードはかけますので、PHPだから危険というのもあまり理由にはなりません。

>世界中で同じ悩み抱えている人いっぱいいるはずなのに~と思ったりしています。

どちらかというと、なんでもSmartyを突っ込みたがるのは日本人特有で、世界中ではありません。

やっぱりXoopsの影響が大きいのではないでしょうか。

id:caster777

> Smartyでも十分危険なコードはかけます

でも、制御することも可能なんですよね。(というか、それがすごく便利です)

PHP直だと、「俺、HTMLコーダだけど、PHPも使えるぜ!PGに依頼せずに、自分で解決しておいてあげよう」

なんて、お節介な事されて、致命的なバグが発生したりするので、

別にSmartyに固執しなくてもいいのですが、HTMLコーダさんが勝手なことしないように制限かけて起きたいってのが

本音なんです。

> Smartyを突っ込みたがるのは日本人特有で、世界中ではありません。

この質問をしたあと、自分でも調べたんですが、

意外と日本ほど、世界では使われていないみたいですね。

仲の良い海外の開発者に相談してみたのですが、

「日本人は、セパレートするのが好きだな。

 それぞれが職人で、自分たちの仕事に手を出すなって感じに聞こえるよ。

 だから、日本人は、ソース書くの遅いんだよ」

と笑われました。(悪気はなさそうな感じです)

いや、それが、職人国家日本っぽくて、個人的には好きなんですけどね~

2008/02/12 14:49:13
id:miyui No.4

miyui回答回数26ベストアンサー獲得回数02008/02/08 11:02:50

ポイント22pt

Smartyとフレームワークは独立しているから、

フレームワークの中で「Smartyの組み込み方」などは

説明されていないだけではないですか。

以下の書籍の中ではZend FrameworkからSmartyを組み込む

例について書かれています。

http://www.amazon.co.jp/o/ASIN/4896273567/

id:caster777

ありがとうございます。

2008/02/12 14:49:33
id:OTTii No.5

OTTii回答回数25ベストアンサー獲得回数32008/02/12 17:36:06

ポイント10pt

別方向の解答を試みてみます。

LL言語のフレームワークで最近でたものは多かれ少なかれRuby on Railsの影響を受けているからかもしれませんね。


http://jp.rubyist.net/magazine/?0004-RubyOnRails

http://jp.rubyist.net/magazine/?0017-BundledLibraries


というのはRuby on RailsではerbといってHTMLに直接Rubyコードを埋め込んでビューを作るからです。最初は乱暴に感じますが小規模な開発であれば、これで十分だと思えます。またビュー専用の共通コンポーネントを書いておく場所もRailsは用意してくれていますので、(それ専用のクラスを殻だけ用意してくれる)ごちゃごちゃとビューにコードが入るのを避けることも出来ます。


なぜそういう方向なのかなと、個人的に考えると以下の理由があるのかなと思います。


  1. 本来のプログラム言語を覚えるのと別にテンプレートの書き方まで覚えるのは面倒。
  2. HTMLを書いてくださる一部の方の中にはテンプレート用のタグでさえも拒否反応を起こされて、結局こちらでテンプレート用タグを埋め込む事になる。(デザイン変更の度に!)

本当だったら純粋なHTMLのみでテンプレートを書ければいいのですが、なぜかメジャーになりきれてないのが悲しいですね。WicketやAmritaなどなど

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません