2017年03月 / 01月≪ 12345678910111213141516171819202122232425262728293031≫02月

--'--.-- (--)

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--:--  |  スポンサー広告  |  EDIT  |  Top↑

2012'03.24 (Sat)

[PHP]Zend FrameworkとSmartyを連携させてみる(2)

[PHP]Zend FrameworkとSmartyを連携させてみる(1)のつづき.


<3.コンフィグの追加>
applicatoin/config/application.iniに以下を追加する.


view.smarty.cache_dir = APPLICATION_PATH "/../data/smarty/cache/"
view.smarty.compile_dir = APPLICATION_PATH "/../data/smarty/templates_c/"
view.smarty.config_dir = APPLICATION_PATH "/../data/smarty/configs/"



<4.Bootstrap.phpの設定>
Bootstrap.phpにSmartyを読ませるための設定を記述する.


protected function _initView()
{
$options = new Zend_Config($this->getOptions());
$smarty_config = $options->view->smarty->toArray();

require_once 'Smarty.class.php';
require_once 'Smarty/Zend_View_Smarty.class.php' ;
$view = new Zend_View_Smarty(NULL, $smarty_config) ;

$render = new Zend_Controller_Action_Helper_ViewRenderer($view);
$render->setViewBasePathSpec(APPLICATION_PATH . '/modules/:module');
$render->setViewScriptPathSpec(APPLICATION_PATH . '/modules/:module/views/scripts/:controller/:action.:suffix');
$render->setViewScriptPathNoControllerSpec(':action.:suffix');
$render->setViewSuffix('tpl');

Zend_Controller_Action_HelperBroker::addHelper($render);
}


ここで指定している内容の説明は以下のとおり.Zend Frameworkのドキュメントから引用.setViewSuffix()は拡張子の指定をしている.

パス指定を制御するメソッドは次のとおりです。

setViewBasePathSpec($spec) は、ビューオブジェクトを追加する際に使用する基底パスを 決める際に使用するパス指定を変更します。 デフォルトの設定は :moduleDir/views です。 現在の設定を取得するには getViewBasePathSpec() を使用します。

setViewScriptPathSpec($spec) は、個々のビュースクリプトのパス (からビュースクリプトの基底パスを除いた部分) を決める際に使用するパス指定を変更します。 デフォルトの設定は :controller/:action.:suffix です。 現在の設定を取得するには getViewScriptPathSpec() を使用します。

setViewScriptPathNoControllerSpec($spec) は、noController が有効な場合に 個々のビュースクリプトのパス (からビュースクリプトの基底パスを除いた部分) を決める際に使用するパス指定を変更します。 デフォルトの設定は :action.:suffix です。 現在の設定を取得するには getViewScriptPathNoControllerSpec() を使用します。




つづく・・・.
スポンサーサイト

タグ : ZendFramework Smarty

13:17  |  ぷろぐらみんぐ→PHP  |  TB(0)  |  CM(1)  |  EDIT  |  Top↑

2012'03.21 (Wed)

[PHP]Zend FrameworkとSmartyを連携させてみる(1)

Zend FrameworkとSmartyの連携をさせてみたログ(モジュール構成を使った場合).

Zend Frameworkのバージョン:1.11.11
Smartyのバージョン:3.1.8


<1.ディレクトリ構造>
zfコマンドでプロジェクトを作成したものをモジュール構成にした状態から,以下を追加(実際は任意でいい).


/zfproject/data/smarty/cache
/config
/template_c
/library/Smarty



<2.Smartyラッパーの作成>
/library/Smarty/Zend_View_Smarty.class.phpを新規作成し,Zend Frameworkの「プログラマ向けリファレンスガイド-ビュースクリプト」にあるサンプルをまるごとコピペ.
Smartyのバージョンが3.0.0以降の場合,どうやらテンプレートディレクトリの場所が変わっている(配列が1階層深くなっている)みたいなので,それに合わせて修正する.
修正するのは getScriptPaths() 関数.


/**
* 現在のテンプレートディレクトリを取得します
*
* @return string
*/
public function getScriptPaths()
{
// smartyのバージョンでテンプレートディレクトリのとり方を変える
if( Smarty::SMARTY_VERSION >= "3.0.0" )
{
if( is_array( $this->_smarty->template_dir ) )
{
return $this->_smarty->template_dir ;
}
}
else
{
return array( $this->_smarty->template_dir ) ;
}
}


つづく・・・.

タグ : ZendFramework Smarty

00:40  |  ぷろぐらみんぐ→PHP  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑
 | HOME | 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。