人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

再度質問です。

Smartyについて質問です。

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

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

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

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

●質問者: caster777
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:HTML PHP Smarty symfony view
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● yo-net
●23ポイント

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

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

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

◎質問者からの返答

ありがとうございます。

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


2 ● heppokoA
●23ポイント

デフォルトでは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

◎質問者からの返答

ありがとうございます。

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

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


3 ● fancios_fab
●22ポイント

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

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

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

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

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

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

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

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

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

◎質問者からの返答

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

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

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

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

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

本音なんです。

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

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

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

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

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

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

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

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

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


4 ● miyui
●22ポイント

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

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

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

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

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

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

◎質問者からの返答

ありがとうございます。


5 ● OTTii
●10ポイント

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

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などなど

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ