PHP でシステムを開発する際ですが、恐らく何かしらのフレームワークを利用した場合は大半だと思います。そう言った時にテンプレートエンジンの Smarty を合わせて利用するかどうか意見が別れる時があります。

PHP でフレームワークが今ほど使われていなかった大昔は、素の PHP 実装 + Smarty で、ロジックとテンプレートを分離する流れがありました。
しかし、現在利用されるほとんどのフレームワークでは当たり前のように MVC の思想で構成されており、ロジックとテンプレートは初めから分離されています。

そう言った状況の中、Smarty を各フレームワークと連携してテンプレートエンジンとして利用する必要がどれほどあるのか、判断に苦しみます。

皆さんはどう考えるでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (4件)

そもそも、CakeやZend Framework、Fuelなどほとんどのフレームワークが、設計コンセプトにおいて、Smartyの存在を無視している以上、あえて過去の遺物を引きずる必要はないです。


Smartyはテンプレートエンジンですらない、単なるタグパーサであり、モダン・フレームワークのアーキテクチャに合いません。
最新のMVCであるLaravelなどは、自前でBladeというテンプレートエンジンを装備していますし、WordpressのようなCNSでもSmartyは用なしです。

Smartyを採用したがるのは、開発をレガシーphpの手法に引き戻して、何とか仕事を自分たちの手の届く範囲に止めたい、オールドデベロッパーの悪アガキに思えます。
    • good
    • 1
この回答へのお礼

ストレートなご意見ありがとうございます。
共感部分が多いです。

こちらの開発リソースが特別なのか、Smarty有りきの方が割と多いんです。
(昔からPHP + Smartyで開発してきているからなのか)
よく言われるのが、Smartyでないとコードが汚い。
Smartyには便利機能が豊富でテンプレート処理が簡単。

個人的は、Smartyを定義してSmartyに情報を設定するコード自体が、フレームワーク標準ではなくSmartyの拡張コードという認識なので汚い?というか不要なコードに感じてます。
シンプルでなくなっている認識です。

本当にメリットがあるのか、その場では理解した風でいますが、本当はイマイチ腹に落ちてきていない感じです。

お礼日時:2014/09/28 23:31

cakeだと、viewはE-R図を描いた上bakeで生成されてしまいますので、それを使わないと連携が危うくなります。


modelとの密接な連携も、フレームワークが囲い込んでいますし。

ただし、全くmodelと無関係なオブジェクトを使用するというのであれば、smartyは名前の通りスマートにできます。

Zendは書き方・書式がうるさい系統ですから、smartyを使うと、コードチェックに引っかかる可能性があります。

設計者の頭の中で、ここからはsmartyの領域だと区分けがきっちりできれば原則問題はないかと思います。
が、そんなに頭脳はクリアではないのです。

cakeが1から2になったときの混乱は今もひきずっていますが、smartyと一緒に使った場合、次に3ができて移行しようとしたときかなり混乱するようには思います。
    • good
    • 0
この回答へのお礼

ご意見ありがとうございます。

設計はシンプルな方が絶対いいですね。
後から参加した方に頭を悩ませたくないですし、メインでも無いところで考えるのが勿体無いです。

ベース部分(プロジェクトの骨組み)は限りなくシンプルが理想です。

お礼日時:2014/09/28 23:16

MVCになっていても搭載されているViewの機能が貧弱の場合があります。


その場合、Smartyを使った方が楽な場合があります。
(SmartyはViewに機能を絞って開発されている分、Viewとしての機能は高機能なので)
    • good
    • 0
この回答へのお礼

ご意見ありがとうございます。

確かに、Smartyにある機能が各フレームワークのテンプレート機能にないというのは、話している方がいました。
簡単な処理だったので、それならビューヘルパーか何かで自前で用意することもできるはずなんですけどね。

どう説明するか、難しいときもあります。。

お礼日時:2014/09/28 23:11

Zend FrameworkとかCakePHPといった


MVCフレームワークを使うのであれば、
Smartyの必要性はあまりないような気がします。
素人の浅はかな考えですが…。
    • good
    • 1
この回答へのお礼

ご意見ありがとうございます。
基本、私も同様の考えです。

お礼日時:2014/09/28 23:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QJR西日本の207系のS編成(3両編成)

JR西日本の207系のS編成(3両編成)
ですが、1M2TのMT比で単独で営業運転に就けるのでしょうか?
今までは、あくまで増結用としてで、単独では回送運転だけですよね。

Aベストアンサー

207系に限らず、VVVFインバータ制御車輌の基本MT比は1:2で、柔軟に編成が組めるよう1軸単位で、モーターを設置できる設計になっている形式も有ります。

実際、No1氏の回答どおり、過去において207系の松井山手⇔木津や、223系の日根野⇔和歌山(25パーミルの勾配区間あり)での3両編成での運用実績があります。

Qフレームワークは開発環境だけでなく、実行環境でもインストールが必要?

ちょっとPHPに興味が湧き、色々と作っています。そして、最近知ったのですが、フレームワークってのが流行っているみたいですね。

使ってみたく思ったのですが一つ疑問が出てきました。
フレームワークというのは、動かす先のサーバなどにも組み込む必要はあるのでしょうか?
開発環境へのインストールは必須でしょうが、私が借りているレンタルサーバはあまり環境を変えられないので、その辺が気になっています。折角作っても、レンタルサーバで公開できないなら作れるアプリにも制限が出てくるので。

Zend FrameworkやEthna、CakePHPなど色々とあるみたいですが、これらで作られたWEBアプリは、フレームワークがインストールされているサーバでしか動かないのでしょうか? それとも、PHPが使えれば、アプリは基本的には動くんでしょうか?

よろしくお願いいたします。

Aベストアンサー

> フレームワークというのは、動かす先のサーバなどにも組み込む必要はあるのでしょうか?
フレームワークを利用する場合は、開発環境および本番環境の両方に必要になります。

> PHPが使えれば、アプリは基本的には動くんでしょうか?
基本的にフレームワーク自身もPHPで制作されているのでPHPが動作する環境であれば問題ないでしょう。

QJRのPCM受信機R770Sの電波到達距離はどれ位ですか?

JRのPCM受信機R770Sの電波到達距離はどれ位ですか?
またフタバの受信機R136HPと これは参考までになのですがパーク用だと思うのですがR617FSの到達距離もお願いします

ご存知の方 教えて下さい 宜しくお願いします。

Aベストアンサー

この質問の意図は何でしょうか。
パークフライ用とうたっていない受信機は、アンテナがきちんと張れていれば「見えなくなるまで」大丈夫です。
メーカー回答では約500mと答えが返ってくるようです。
経験的には1000mほどは大丈夫だそうです(グライダーで高空を飛ばす人のお話の受け売りです)
2000mほど離れている別のRCクラブでの電波干渉が起こると言われていますので、半径2kmに影響を及ぼしそうです。

一般的にRC飛行機は自分から200mほども離れる事はありません。
遠くを飛んでいるように見えるF3A機でも150~180m程度です。
それ以上遠くを飛ばすことは、「楽しく」ありません。

QPHPのフレームワークの中でSmartyと親和性の高いものにはどんなものがありますでしょうか?

お世話様です。

表題の通りなのですが、
「PHPのフレームワークの中でSmartyと親和性の高いものにはどんなものがありますでしょうか?」

先日、あるサイトで、
PHPのフレームワークでどれが一番いいか、という投票をやっていまして、
結果はシンフォニーが一番でした。

ですが、とあるブログで、シンフォニーだとSmartyを使うのに苦労する、
というような内容が書いてありました。

といったわけで、このような質問をさせていただいた次第です。

//---------------------------

また、自分は今までフレームワークを用いたことがないため、
比較的とっつきやすいフレームワークだと、うれしいです。
(が、あくまで「Smarty との親和性が高い」のほうが優先ということで)

以上、よろしくお願い申し上げます。

Aベストアンサー

正式版が出たので一応おすすめしておきますね。
http://framework.zend.com/manual/ja/index.html

View関連はViewというクラスがあり、Smarty用に多少変更すれば問題なく使えています。

QSきっぷ グリーン車 JR北海道

先日Sきっぷを購入し、札幌-東室蘭間を往復しました。

帰りでは北斗のハイデッカーグリーン車に乗ったことがないことに気づき
窓口にSきっぷを差し出して、「北斗のグリーン車に乗りたいのですけど」と
グリーン料金券を発券してもらい、グリーンに乗車しました。

帰って調べてみると、グリーン料金券は指定席→グリーンへのグレードアップのときに有効で
自由席→グリーンへのグレードアップにはグリーン料金券と指定料金券が必要であると読めます。

車内の検札では何も問題なかったので、JR北海道のHPの書き方が悪いのか、それとも発券ミス
なのかよくわかりませんでした。

どなたか詳しい方がいらっしゃいましたら、お教えください。
お願いいたします。

Aベストアンサー

通常の特急グリーン車に乗る場合、料金は
指定席特急料金の510円引+グリーン料金
となります。
http://www.jr-odekake.net/railroad/ticket/guide/03.html
なので実質は自由席特急券の金額にグリーン料金を加算した値段が
特急グリーン車料金ということになります。
そういう意味では自由席→グリーン車へアップグレードする際は
グリーン料金のみ追加で払えば(料金的には)問題ないと考えられます。

指定席特急券からグリーン車へアップグレードした際に510円引き
されてるかはわかりません。

QSmartyとMVCフレームワークに関して

殆どMVCフレームワークを使用したことがなく
今更ながら覚えようかと思っています。
MVCフレームワークはCakePHPかCodeIgniterどちらか悩んでおり
モデル設計が殆ど必要ない分CodeIgniterがいい気がしていますが
実際のところどちらのフレームワークとSmartyを使用するのがいいのでしょうか?

今回は小規模~中規模のサイトの予定なので簡単に導入取得ができるものが希望です。

CodeIgniter+Smartyの場合、導入方法のサイトが古いものばかり(新しい記事もあるが違う方法)で
最近の最も使われている手法が分かりません・・・
経験者の方などのご教示お願いします。

CodeIgniterのライセンスが変わったとかで日本サイトの更新が停止しているようなので将来性のことも含めてご回答お願いします><

*導入方法などもご教示いただけましたらお手数とは思いますがよろしくお願いいたします><

Aベストアンサー

どっちもまともに使った事が無いくせに回答します(すみません)

個人的な興味だけで言えばCodeIgniter
ただ情報量はcakePHPのほうが圧倒的に多い感じがします。

自分の周りでCodeIgniterを使ったのは見たことがないです。
たぶん存在自体も知らない人も多いと思います。

たまにこの手のサイトのPHPカテでCodeIgniterって単語を見かけますが・・・
私は良くも悪くも枯れてきてる感のあるZendFrameWorkを主に使ってます。
今どき感は無いなぁ~ とは思いますが、基本的な部分は安定してるので。
ただ細かい機能はあまり使いません。

使ってみたいのはSymphony2かな。
試しに導入したっきりであまり触ってないままです。
日本語の情報がまだまだ少ないので、ちょっとした事で躓くと時間がかかります。

というワケでなにか調べたい時に、情報量が多い方がいいですよね。
って事でCakePHPで。

Q北海道 JRにて発売の「Sきっぷ」について

道外より旅行に行きます。
JRを使用したいと思うのですが、「Sきっぷ」の購入を
考えています。
こちらの切符は、「途中下車された場合は前途無効」ということ
のようですが、途中下車をしてそこから先の区間を放棄する分
には構わないのでしょうか?
例えば、「札幌→函館」区間で往路の切符を使用し、3日後に
「函館→千歳」区間で復路の切符を使用するということはでき
ますか?

Aベストアンサー

問題ありません。
割引きっぷによっては途中駅での乗降はすべてNGな場合もありますが、JR北海道のSきっぷは途中駅で乗車した場合はその駅までの分、途中駅で下車した場合はその駅から先の分は権利放棄となり差額等の払い戻しはしない条件で乗降できます。

Q私は、PHP開発環境として秀丸エディタを使い始めたのですが、PHP言語

私は、PHP開発環境として秀丸エディタを使い始めたのですが、PHP言語の入力時に「ファイルタイプ別設定」で「Dreamweaverに似たPHP強調定義ファイル2」を適用し、PHP言語を強調表示にしたいと思っています。
しかし、設定のリストで新しく「PHPファイル」と作り、デザインの強調表示→読み込みで「php.highlight」を選択し適用するまでは自力でできたのですが、この状態の保存の仕方がわかりません。強制的に保存をしても、共通設定として保存されてしまいます。PHPだけに適用したまま保存をする方法はあるのでしょうか?
あるのでしたら、その方法を教えてください。お願いします。
あと、同じく強調表示の「PHPまるごと強調表示 Ver1.0」は現在では使用できないのでしょうか?

Aベストアンサー

PHPとは関係なく、秀丸エディタの使い方の問題です。

> 設定のリストで新しく「PHPファイル」と作り、デザインの強調表示→読み込みで「php.highlight」を選択し適用するまでは自力でできたのですが、この状態の保存の仕方がわかりません。

*.phpファイルを開いている状態で「ファイルタイプ別の設定」を選ぶとダイアログの上の方が
「.PHPの設定 [共通設定] 」
とかなってませんか?まずは、この「共通設定」をあなたが作った「PHPファイル」に変更して「OK]としてください。
以降、.phpを開くと「PHPファイル」の設定が有効になります。
その後で、あらためてhighlight等を設定してください。

実際はすぐにOKを押さなくても、 ダイアログの上部の関連付けを変更→設定を変更→「OK」の順でやればいいのですが、上の方法だと確実だと思います。

QJR北海道 Sきっぷについて

道外より旅行に行きます。
JRを使用したいと思うのですが、「Sきっぷ」の購入を
考えています。
こちらの切符は、「途中下車された場合は前途無効」ということ
のようですが、途中下車をしてそこから先の区間を放棄する分
には構わないのでしょうか?
例えば、「札幌→函館」区間で往路の切符を使用し、3日後に
「函館→千歳」区間で復路の切符を使用するということはでき
ますか?

Aベストアンサー

かまわないでしょう。実際に乗車する区間の乗車券と自由席特急券を買うより
安い場合がほとんどだと思うので、金銭的にもメリットがあるでしょう。

ただし、Sきっぷは設定のない区間もあります。たとえば、例に挙げられている
「札幌←→函館」はありません。ご利用の区間にSきっぷがあるかどうかよくお確かめ下さい。

参考URL:http://www.jrhokkaido.co.jp/network/kipp/t1_f_d.html

QPHPとSmartyで、ブログサービス的なシステムを構築しております。

PHPとSmartyで、ブログサービス的なシステムを構築しております。

管理画面より書き込んだ内容をデータベースへinsertし、目的に応じてselectで反映するといったものです。
この先、管理画面よりサイト(ブログサイト的な)のデザインを予め用意しておき、数種類の中から1つテンプレートを選択し、決定をすると自動的に該当のテンプレートに切り替わるコンテンツを構築しようと考えておりますが、イマイチ良い案が思いつきません。

流れの順序としてはこの様になります。
---------------------------------------------------------------------------------
1、管理画面へログインをする。(実装済)

2、タイトルや内容等、各項目へ入力後「書き込む」ボタンをクリックしてデータベースへinsertしてselectで表示。(実装済)

3、各項目の修正と削除。(実装済)

4、複数のテンプレートの中から気に入ったテンプレートを選択して、デザインの変更を行う。←ココで悩んでいます。。。
---------------------------------------------------------------------------------

例えばカテゴリ分け等をした時に、「aaa.php」にアクセスした場合は、「aaa.tpl」を呼び出す。「bbb.php」にアクセスした場合は、「bbb.tpl」を呼び出すといった見せ方は実装できますが、
どのデザインに変更してもファイル名は変更しない様に実装できないものでしょうか?

また、「 index.php?design=design_1 」といった動的URLも避けなければいけないという条件です。

$smarty->displayをどうにかして条件分岐で実装出来ないかと考えましたが、参考になりそうな資料を見つけることが出来なかったので、非常に悩んでいます。

色々と制約があり恐縮ではございますが、何卒ご教授の程よろしくお願いいたします。



最後に念のため、データベース等のスペックをお伝えしておきます。
---------------------------------------------------------------------------------
サーバOS:Linux 2.6.x
WEBサーバ:Apache_1.3.37
PHP:5.3.3
データベース:MySQL 5.0.77
---------------------------------------------------------------------------------

PHPとSmartyで、ブログサービス的なシステムを構築しております。

管理画面より書き込んだ内容をデータベースへinsertし、目的に応じてselectで反映するといったものです。
この先、管理画面よりサイト(ブログサイト的な)のデザインを予め用意しておき、数種類の中から1つテンプレートを選択し、決定をすると自動的に該当のテンプレートに切り替わるコンテンツを構築しようと考えておりますが、イマイチ良い案が思いつきません。

流れの順序としてはこの様になります。
------------------------------------...続きを読む

Aベストアンサー

どうも、説明がわかりにくいとは思いましたが、少し見えました。

要は、

1、カスタマイズ操作的なものでテーマ=テンプレートを変更する
2、対象のブログに不特定多数の誰かが、アクセスした際には、変更したテンプレートが使われる
3、不特定多数なので、以前のセッションというものは存在しない

ということのようですね。


ならばむしろ、簡単になりましたね。

1、テンプレートのパスをデータベースに入れる
2、ブログのページでは、必ずDBを検索してテンプレートのパスを検索する
3、phpでテンプレートのファイル名にテンプレートのパス名を追加して呼び出す


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報