ファイルの配置
先程の例では、説明を簡単にするためビュースクリプトを「index.php」と同じ場所に配置しました。しかし、通常はZend Framework入門(2)で見たようにZend_Viewが利用するスクリプトなどは、公開フォルダとは別の場所に配置します。おさらいになる部分もありますが、典型的なファイルの配置は次のようになります。
appplication/ views/ helpers/ (ビューヘルパ関係のファイルを配置するフォルダ) filters/ (ビューフィルタ関係のファイルを配置するフォルダ) scripts/ (ビュースクリプトを配置するフォルダ)
このZend_View関係のファイルが配置されているフォルダへのパスをベースパスと呼び、Zend_ViewのsetBasePath
メソッドで設定します。
Zend Framework入門(2)と同じく、「C:\codezine」のフォルダ以下に公開フォルダ「C:\codezine\htdocs」とアプリケーション配置フォルダ「C:\codezine\zendapps\」が配置されているとします。すると、ベースパスの設定は次のようになります:
<?php ... //$view->setScriptPath('.'); $view->setBasePath('../zendapps/views'); ...
また、この場合には、「view.phtml」は「C:\codezine\zendapps\views\scripts」に配置することになります。ここからの例では、この配置でファイルが設置されているとして説明を続けますので、必要に応じて読み替えてください。
パスの追加
Zend_Viewが必要なファイルを探すパスを複数登録することもできます。その場合には上で見たようなset~Pathではなくadd~Pathメソッドを利用します。
例えば、ビュースクリプトが「C\:codezine\extraapps\specialscripts」にも配置されていた場合には、次のように書きます:
$view->setBasePath('../zendapps/views')//標準でのパス $view->addScriptPath('C:/codezine/extraapps/specialscripts');//スクリプトパスの追加
なお、Zend_Viewは新しく追加されたパスから順番に必要なファイルを探します。上の例では、「C\:codezine\extraapps\specialscripts」の方が「..\zendapps\views」よりも後に追加されてます。そのため、「C:\codezine\zendapps\views\scripts\view.phtml」と「C:\codezine\extraapps\special_scripts\view.phtml」の両方があった場合、後者の「C:\codezine\extraapps\special_scripts\view.phtml」が利用されます。
パスを設定するためのメソッド
Zend_View関係のファイルの配置を指定するメソッドには次のものがあります。
setBasePath、addBasePath、setFilterPath、addFilterPath、setHelperPath、addHelperPath、setScriptPath、addScriptPath |
各メソッドの詳細については、対応する機能のところで説明します。
なお、ベースパスをsetBasePath
で設定するのは、次のように個別にフォルダを指定するのと同じ意味になります。
//$view->setBasePath('../zendapps/views')は次と同じ意味 $view->setHelperPath('../zendapps/views/helpers'); $view->setFilterPath('../zendapps/views/filters'); $view->setScriptPath('../zendapps/views/scripts');