これがZFマニュアル_init
のメソッドのサンプルです。最後にコマンドがあります:Zend_Bootstrap
return
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initView()
{
// Initialize view
$view = new Zend_View();
$view->doctype('XHTML1_STRICT');
$view->headTitle('My First Zend Framework Application');
// Add it to the ViewRenderer
$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper(
'ViewRenderer'
);
$viewRenderer->setView($view);
// Return it, so that it can be stored by the bootstrap
return $view; // Why return is here?
}
}
ブートストラップで保存できます
なぜ戻るのですか?ブートストラップはそれをどこに保存し、なぜですか?どのオブジェクトがこのメソッドを呼び出し、誰が結果を取得しますか?そして、戻ってこない場合はどうなりますか?
アップデート:
利用可能なリソースプラグインページのについてのセクションではView
、次の開始方法が示されていますZend_View
。
構成オプションは、Zend_Viewオプションごとにあります。
例22サンプルビューのリソース構成
以下は、ビューリソースを構成する方法を示すサンプルINIスニペットです。
resources.view .encoding = "UTF-8"
resources.view .basePath = APPLICATION_PATH "/ views /"
そして、Zend_Applicationクイックスタートページに書かれている他のすべてのリソースと一緒に、ファイルView
からこの方法を開始するのは便利で合理的だと思われます。application.ini
しかし同時に、同じZend_Applicationクイックスタートページで、 :View
から開始する必要があると言われています。Bootstrap
次に、カスタムビューリソースを追加します。ビューを初期化するときに、HTMLDocTypeとHTMLヘッドで使用するタイトルのデフォルト値を設定する必要があります。これは、Bootstrapクラスを編集してメソッドを追加することで実現できます。
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initView()
{
// Initialize view
$view = new Zend_View();
$view->doctype('XHTML1_STRICT'); // the same operations, I can set this in application.ini
$view->headTitle('My First Zend Framework Application'); // and this too
// Add it to the ViewRenderer
$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper(
'ViewRenderer'
);
$viewRenderer->setView($view);
// Return it, so that it can be stored by the bootstrap
return $view;
}
}
そして、他のリソースでより興味深いイベントRequest
、例えばここで:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initRequest()
{
// Ensure the front controller is initialized
$this->bootstrap('FrontController'); // why to initialized FC here if it is going to be initialized in application.ini anyway like resource.frontController.etc?
// Retrieve the front controller from the bootstrap registry
$front = $this->getResource('FrontController');
$request = new Zend_Controller_Request_Http();
$request->setBaseUrl('/foo');
$front->setRequest($request);
// Ensure the request is stored in the bootstrap registry
return $request;
}
}
したがって、彼らはこの方法またはその方法でリソースを開始する選択肢を提供しているようです。しかし、どちらが正しいのでしょうか?なぜ彼らはそれらを混ぜるのですか?どちらを使用するのが良いですか?
FC
実際、私はこれらの行をすべて削除することができますapplication.ini
:
resources.frontController.baseUrl = // some base url
resources.frontController.defaultModule = "Default"
resources.frontController.params.displayExceptions = 1
次のように書き直します。
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initFrontController()
{
$this->bootstrap('FrontController');
$front = $this->getResource('FrontController');
$front->set ...
$front->set ... // and here I set all necessary options
return $front;
}
}
application.ini
方法と方法の違いは何_initResource
ですか?この違いは、仕事で何か深刻なことを意味しますか?