ベストアンサー Zend FrameworkがあればSmartyはいらない? 2008/07/06 01:54 Zend Frameworkを使えばSmartyは使う必要がないでしょうか?テンプレートはZend Frameworkに最初から組み込まれているでしょうか? みんなの回答 (1) 専門家の回答 質問者が選んだベストアンサー ベストアンサー inu2 ベストアンサー率33% (1229/3720) 2008/07/06 02:45 回答No.1 zend Frameworkは、テンプレートエンジンとして、viewの機能はあります。 しかし、その記述方法は HTML内でPHPとして埋め込みます 例えば smrtyで書けば <a haef="http://aiueo.jp">{$data.str}</a> のような感じになる部分を、Zend Frameworkに内包されているviewを使った場合は <a haef="http://aiueo.jp"><?php $data->str; ?></a> 見たいな感じで記述します Smartyの中間コンパイルファイルを手動で作っているような感じ (*Smarty標準で template_cに入っていく中間コンパイルファイルです) Smartyを使いたく無いのであれば、標準のviewエンジンをそのまま使うのも手です。 ただ、業務上、HTMLを触るデザイナーさんがSmartyしか理解できないのであれば、SmartyをZendFrameworkのviewエンジンとして使うほうが業務上間違いもなくスムーズかと思います ZendFrameworkでは他のテンプレートエンジンを使うこともできます。 標準のviewエンジンの代わりに他のテンプレートエンジン(Smarty等)を使う方法や標準のviewエンジンを停止させて他のテンプレートエンジンを噛ましてあげる方法など、いくつかの方法がありますので調べてみてください。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発PHP 関連するQ&A zendにsmarty3の組込で こちらのページを参考に表示にsmartyを入れてみました。 http://www.phppro.jp/school/smarty/vol12/2 ※smartyは3.0.6でzendは1.11.3です indexActionで格納した変数はtplで表示されているので組込は 成功しているかと思うのですが下記のようなエラーが表示されます。 Warning: include_once(Smarty\Internal\Data.php) Warning: include_once(Smarty\Internal\Template.php) ファイルを確認すると確かに該当データがありません。 smarty3なのでフォルダ名がInternalではなくsyspluginsに変わって いる事が原因かと思うのですがどのように対処すればいいでしょうか? PHPフレームワーク環境でのSmartyの必要性 PHP でシステムを開発する際ですが、恐らく何かしらのフレームワークを利用した場合は大半だと思います。そう言った時にテンプレートエンジンの Smarty を合わせて利用するかどうか意見が別れる時があります。 PHP でフレームワークが今ほど使われていなかった大昔は、素の PHP 実装 + Smarty で、ロジックとテンプレートを分離する流れがありました。 しかし、現在利用されるほとんどのフレームワークでは当たり前のように MVC の思想で構成されており、ロジックとテンプレートは初めから分離されています。 そう言った状況の中、Smarty を各フレームワークと連携してテンプレートエンジンとして利用する必要がどれほどあるのか、判断に苦しみます。 皆さんはどう考えるでしょうか? zend frameworkでの拡張について PHP5.2.4、zend framework1.9.5を使用しています。 Zend_Captcha_WordクラスのgetSession関数内の $this->_session->setExpirationHops(1, null, true); を $this->_session->setExpirationHops(2, null, true); に書き換えたいのですが、できれば元のファイルを書き換えることなく 例えばZend_Captcha_WordExというZend_Captcha_Wordを継承したクラスで getSession関数を書き換えればいいと思ったのですが、しかしそうすると Zend_Captcha_Wordを継承している class Zend_Captcha_Image extends Zend_Captcha_Word{ } や class Zend_Captcha_Figlet extends Zend_Captcha_Word{ } までZend_Captcha_WordExに書き換えないといけないので、 この派生クラスを作って書き換えるやり方は現実的ではないと思いました。 zend frameworkにおいてこういう場合はどのようなやり方で記述すれば良いのでしょうか? ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム Zend Framework こんにちは。 PHP zend frameworkについて質問です。 GETパラメータを使用する際に、 http://ホスト名/コントローラ名/アクション名/パラメータ1/バリュー1/パラメータ2/バリュー2 という風にパラメータを渡しますが、 たとえば、バリュー1にURLを渡したい場合、どうすればいいのでしょうか? URLに"/"が含まれるため、おかしくなってしまいます。 よろしくお願いいたします。 PHPのフレームワーク PHPのことはよく分かりませんが、いくつかのフレームワークがあります。 知らないながらもキーワードをあげると、Symfony,Smarty,Zendなど。 RubyではRubyOnRailsが圧倒的ですが、PHPの場合は、どれが有望あるいはどれがよいのでしょうか? 個人的趣味でお答えください。 よろしくお願いいたします。 SmartyとMVCフレームワークに関して 殆どMVCフレームワークを使用したことがなく 今更ながら覚えようかと思っています。 MVCフレームワークはCakePHPかCodeIgniterどちらか悩んでおり モデル設計が殆ど必要ない分CodeIgniterがいい気がしていますが 実際のところどちらのフレームワークとSmartyを使用するのがいいのでしょうか? 今回は小規模~中規模のサイトの予定なので簡単に導入取得ができるものが希望です。 CodeIgniter+Smartyの場合、導入方法のサイトが古いものばかり(新しい記事もあるが違う方法)で 最近の最も使われている手法が分かりません・・・ 経験者の方などのご教示お願いします。 CodeIgniterのライセンスが変わったとかで日本サイトの更新が停止しているようなので将来性のことも含めてご回答お願いします>< *導入方法などもご教示いただけましたらお手数とは思いますがよろしくお願いいたします>< Zend Frameworkのコントローラー名について Zend Frameworkのコントローラー名について 現在 CentOS release 5.3 (Final) PHP5.2.14 Zend v2.2.0 にて開発を行っております。 今回URL(コントローラ名)にアンダースコアをつけたい要件があるのですが、可能なのでしょうか? 可能な場合その方法をご教授くださいませ。 例)http://hoge.co.jp/aaa_bbb/ aaa_bbbをコントローラとしたいのですが、Zendの命名規則ではできないようなのですが、 何かしら方法があるのでしょうか? よろしくお願いいたします。 Zend Framework アップロード Zend Frameworkでファイルをデータベースへアップロードをするためのプログラムを作成していますが、うまくいきません。 ファイルをPOSTデータで送ろうとしているのですが、ファイルのアップロード以前にZend_File_Transfer()が使えません。 not foundとなります。require_onceなどで無理やり読み込もうとすると、Fatal error: Uncaught exception~となります。 ファイル名だけであれば、簡単にデータベースに書き込むことができますが、ファイルそのものをアップロードすることはできません。 リクエストから、フォームの「name="~"」の~を読み込むことは出来ますが、$_FILESが存在しないことになっています。「type="file"」としてPOSTデータで送っています。 どなたかご支援ください。 よろしくお願いします。 PHPのフレームワークの中でSmartyと親和性の高いものにはどんなものがありますでしょうか? お世話様です。 表題の通りなのですが、 「PHPのフレームワークの中でSmartyと親和性の高いものにはどんなものがありますでしょうか?」 先日、あるサイトで、 PHPのフレームワークでどれが一番いいか、という投票をやっていまして、 結果はシンフォニーが一番でした。 ですが、とあるブログで、シンフォニーだとSmartyを使うのに苦労する、 というような内容が書いてありました。 といったわけで、このような質問をさせていただいた次第です。 //--------------------------- また、自分は今までフレームワークを用いたことがないため、 比較的とっつきやすいフレームワークだと、うれしいです。 (が、あくまで「Smarty との親和性が高い」のほうが優先ということで) 以上、よろしくお願い申し上げます。 Zend Frameworkは商用サイトで使うときは有償ですか? http://www.zend.com/en/community/framework# をみると --- thoroughly tested PHP 5 framework that gives you a vibrant community your company can depend on, open-source code you can use as you please (including building your own business specific code and reselling as you see fit--with the new BSD license), and the latest Web 2.0 and other modern features all web applications need. ---と・・・。 New BSD licenseというのがちょとわからないです。 で、http://www.zend.com/en/downloads/index だと、try | infoのリンクが。 tryといっても、try and buyじゃなくて、try and use under New BSD license てな意味なんでしょうか? //----------------------- で。。。 http://framework.zend.com/home や http://framework.zend.com/download をみると、tryとも書いてなく、いきなりDLできる。 http://framework.zend.com/manual/ をみても、金銭のことについて書いてない。 //----------------------------- でも、 http://www.zend.co.jp/products/platform/index.php にはページ最下部に、値段が・・・。(たかい・・・) (バージョンが違うから?日本語版だから?) //以上、見落としがあったらすみません。 ということで、 「Zend Frameworkは商用サイトで使うときは有償ですか?」 ケースによって違うのでしょうか? ご存じの方、教えていただけますでしょうか? よろしくお願い申し上げます。 zend(phpフレームワーク)でトランザクション処理をしたいのですが zend(phpフレームワーク)でトランザクション処理をしたいのですが…。 いつもお世話になっております。 zendでトランザクション処理をしたいのですが O/Rマッパーを使用した方法がわかりません…。 どなたかご存知この方参考サイト等あれば御教示お願いします。 Zend Frameworkが機能しなくて 困っています。 Fedora11にZendFrameworkをDLして解凍して /usr/local/ZendFramework-1.9.3PL1 として入れました。 /etc/php.ini: ......... include_path = ".:/usr/local/ZendFramework-1.9.3PL1/library" ......... と設定し /etc/httpd/conf/httpd.conf: ......... LoadModule rewrite_module modules/mod_rewrite.so ......... <Directory "/var/www/html/zend/public"> AllowOverride All </Directory> と設定し /var/www/html/zend/public/.htacess: RewriteEngine on RewriteBase / RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php と設定し /var/www/html/zend/public/index.php: <?php require_once 'Zend/Version.php'; echo Zend_Version::VERSION; とし #service httpd restart とアパッチを実行し Firefoxブラウザのアドレス欄に http://localhost/index.php を入力しアクセスしたところブラウザに Not Found The requested URL /index.php was not found on this server. Apache/2.2.13 (Fedora) Server at localhost Port 80 と404エラーがでます。 ちなみに http://localhost/zend/public/index.php にアクセスすれば 1.9.3PL1 が問題なく表示されます。 しかしこれではZendフレームワークでWebアプリを組めません。 どうすれば解決できるでしょうか? AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム Smartyについて教えてください。 Smartyについて教えてください。 参考書によってテンプレートの存在するディレクトリを指定している場合(1)と していない場合(2)がありますが、 どちらが正しいのでしょうか? (1) ********************************************* require_once('smarty/libs/Smarty.class.php'); $smarty = new Smarty(); $smarty->template_dir = "template02/"; $smarty->compile_dir = "compile/"; $smarty->display("content.tpl"); ********************************************* (2) ********************************************* require_once('smarty/libs/Smarty.class.php'); $smarty = new Smarty(); $smarty->display("content.tpl"); ********************************************* Zend Frameworkでoracle接続 Zend Frameworkを勉強しようと思い始めたばかりのものです。 oracleに繋がらずどこをチェックすればよいのかさっぱりわかりません。 どなたかご教授願えないでしょうか? zfツールを使い雛形を作って、module で分けてみたり、ヘッダー、フッターをlayoutを使って分けたりと少し前進しました。 次はDB接続だと思い始めたのですが繋がりません。 ■環境 CentOS release 5.6 (Final) ■やったこと 1)oracle接続モジュール oci8 をインストール # export ORACLE_HOME=/opt/oracle/product/10.2.0/db # pecl install oci8 php.ini に追記 # vi /etc/php.ini extension=oci8.so 2)ローカルで接続テスト これは問題なく接続できてるみたいなのです。 # more test.php <?php putenv("ORACLE_HOME=/opt/oracle/product/10.2.0/db"); putenv("LD_LIBRARY_PATH=:/opt/oracle/product/10.2.0/db/lib"); // Zend_Dbライブラリの読み込み require_once 'Zend/Loader.php'; require_once 'Zend/Db.php'; $dbInit = array( 'host' => 'localhost', 'username' => 'usrxx', 'password' => 'usrxx', 'dbname' => 'xxdb' ); $db = Zend_Db::factory('oracle', $dbInit); $db->getConnection(); echo 'OK'; $db->closeConnection(); # php test.php OK 3)Zend Frameworkで接続テスト IndexController.php の indexAction でやってみたのですがダメなのです。 public function indexAction() { $dbInit = array( 'host' => 'localhost', 'username' => 'usrxx', 'password' => 'usrxx', 'dbname' => 'xxdb' ); $db = Zend_Db::factory('oracle', $dbInit); $db->getConnection(); $db->getConnection(); echo 'OK'; $db->closeConnection(); } ※/etc/sysconfig/httpdに以下を追加しました export ORACLE_HOME=/opt/oracle/product/10.2.0/db export LD_LIBRARY_PATH=/opt/oracle/product/10.2.0/db/lib 実行するとどうしてもエラーとなります。 ■エラーメッセージ An error occurred Application error Exception information: Message: Unknown exception Stack trace: #0 /home/www/zf/venders/ZendFramework-1.11.11/library/Zend/Db/Adapter/Abstract.php(315): Zend_Db_Adapter_Oracle->_connect() #1 /home/www/zf/application/modules/default/controllers/IndexController.php(30): Zend_Db_Adapter_Abstract->getConnection() #2 /home/www/zf/venders/ZendFramework-1.11.11/library/Zend/Controller/Action.php(516): IndexController->indexAction() #3 /home/www/zf/venders/ZendFramework-1.11.11/library/Zend/Controller/Dispatcher/Standard.php(295): Zend_Controller_Action->dispatch('indexAction') #4 /home/www/zf/venders/ZendFramework-1.11.11/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #5 /home/www/zf/venders/ZendFramework-1.11.11/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch() #6 /home/www/zf/venders/ZendFramework-1.11.11/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run() #7 /home/www/htdocs/shopping/necs/zf/index.php(29): Zend_Application->run() #8 {main} Request Parameters: array ( 'controller' => 'index', 'action' => 'index', 'module' => 'default', ) どこを確認すればよいかのサッパリわからず投稿させていただきました。 何卒よろしくお願いします。 PHPのフレームワーク選定 PHPで何かしらのフレームワークを使おうと思っていますが、経験がないので各フレームワークの特徴が分からず、何を選んでいいか分かりません。 とりあえずテンプレートエンジンの機能だけでもよかったので、シンプルで使いやすそうなSmartyを使ってみました。Smartyは簡単な設定のみで利用できたものの、すべてのソース(テンプレート以外のプログラムファイル)に # $smarty->template_dir = '…'; # $smarty->config_dir = '…'; などと、テンプレートファイルや設定ファイルのディレクトリを書かねばならず、環境依存の記述をプログラムファイルに書きまくる事を前提としていて、これはありえないなと思いもう少しきちんとしたつくりのフレームワークを使おうと思いました。 ※最悪の場合、<?php include './common.php'; ?>などと書こうかと思ったのですが、それでもプログラムファイルに環境依存の値を書くことには変わらないので、そうしなくともよいものを利用したいと思っています。 条件としては ・テンプレートが利用できる【必須】 (サイトの共通デザイン部分と変化する部分の分離をしたい) ・Windows環境で開発しレンタルサーバにアップする関係もあり 環境依存の記述は最小限にしたい。少なくともプログラムファイルに 書かずに済むようにしたい。【必須とは言わないが強い希望】 ・設定が簡単なほどいい ・多くのレンタルサーバで使えるものがいい ・「http://…/home.php」などとPHPのファイル名丸出しのURLではなく、 「http://…/home」とできるなど、ファイル名とURLを分離できるとうれしい ・DBは「今のところ」使わないが将来的には使うかも という感じです。 上記条件に合致するお勧めのPHPフレームワークを教えてください。 よろしくお願いします。 PHPフレームワークについて PHPフレームワークで教えてください。 最近、「フレームワーク」という言葉を知りました。 今後「フレームワーク」を使ってWEBアプリを作ったほうが楽なのかなと思っています。 そこで質問なのですが、Mojavi、Maple、Ethna、Zend、CakePHPなど色々あるみたいですが どれがいいでしょうか? 条件としては、ホスティングサーバーで動かすのでインストールが比較的楽な物(php.iniやhttpd.confとかいじらなくても良い物)です。 使いたいのは、 ・フォームからの入力チェック ・データベース(MySQL) ・Smarty ・管理ページは管理者だけ(認証) 位です。 分らない事が出てきたらネットで調べる事になると思うので出来るだけ情報が多いものがいいです。 よろしくお願いいたします。 Smartyで { や } を使いたい Smartyのテンプレート内でJavaScriptを直接記述したいのですが、 { や } を使うとエラーが発生します。 おそらくコンパイルエラーだとは思いますが、テンプレート内で { や } を使う事って出来るのでしょうか? お願いします。 フレームワーク 自分はWEB系のシステム開発会社で勤務し始めたばかりのものです。 現在、既存のフレームワークが古く、新しいフレームワークを採用して開発していこうと相談しているところですが、どのフレームワークがよいか、アドバイスいただけると助かります。 現在Ethna、Zendなどが候補として挙がっています。 よろしくお願いいたします。 Smartyに関しまして require_once("Smarty/Smarty.class.php"); $smarty = new Smarty(); $smarty->template_dir = "./templates"; $smarty->compile_dir = "./templates_c"; $smarty->assign("message", "こんばんは"); $a = array('hello','php','html'); $smarty->assign('a',$a); $smarty->display("index.tpl"); これでindex.tplで出力すると日本語部分が「?????」になってしまいます。 何か設定がいるんでしょうか?? Smartyエラーについて いつもお世話になっております。 Smartyのエラーが解決できなくて困っています。 お手数ですが、後教授願えないでしょうか。 使用環境:Ubuntu Eclipse [エラー] Fatal error: Uncaught exception 'SmartyException' with message 'Unable to load template file 'list.tpl'' in /home/mobapendev/public_html/Smarty/sysplugins/smarty_internal_template.php:163 Stack trace: #0 /home/mobapendev/public_html/Smarty/sysplugins/smarty_internal_template.php(550): Smarty_Internal_Template->isExisting(true) #1 /home/mobapendev/public_html/Smarty/Smarty.class.php(338): Smarty_Internal_Template->getRenderedTemplate() #2 /home/mobapendev/public_html/Smarty/Smarty.class.php(382): Smarty->fetch('list.tpl', NULL, NULL, NULL, true) #3 /home/mobapendev/public_html/mobapen/list.php(20): Smarty->display('list.tpl') #4 {main} thrown in /home/mobapendev/public_html/Smarty/sysplugins/smarty_internal_template.php on line 163 ディレクトリ構成 Smarty/Smarty.class.php Project/list.php Project/php/common.php project/smarty/templates/list.tpl project/smarty/templates_c project/smarty/cache project/smarty/configs となっており、 common.phpにて、 $dir = getcwd(); $smarty->template_dir=$dir .'/smarty/templates'; $smarty->compile_dir=$dir .'/smarty/templates_c'; $smarty->config_dir=$dir .'/smarty/configs'; $smarty->cache_dir =$dir .'/smarty/cache'; list.phpにて require_onceで取り込みまいしたが、 $smarty->display("list.tpl"); ディレクトリは間違っていないとは思っているのですが、 どこでload出来てていなか分からず、攻め上げいている状況です。 以上、宜しくお願い致します。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など