2

routes.ini とブートストラップを使用して zend ルートを設定しようとしていますが、何らかの理由で期待どおりにルーティングできません。私のroutes.iniとbootstrap.phpは次のとおりです。

ルート.ini

[production]
routes.guestbook.route = "/guestbook"
routes.guestbook.defaults.controller = guestbook
routes.guestbook.defaults.action = index

ブートストラップ.php

protected function _initRoutes() 
{

// Get Front Controller Instance

$front = Zend_Controller_Front::getInstance();

// Get Router
$router = $front->getRouter();

$router->addConfig(new Zend_Config_Ini(APPLICATION_PATH.'/configs/routes.ini', 'production'), 'routes');

}
4

2 に答える 2

2

あなたのコメントを読んだ後、モジュールを使用していない限り、達成したいのは zend フレームワークのデフォルト ルーターの通常の動作であるため、これらのステートメント (構成とブートストラップ) を削除できると断言できます。

この詳細を書くために私を覚えているFloydThreepwoodに感謝します。

于 2011-10-24T00:29:10.340 に答える
0

ルーティングを構成する最も簡単な方法は、を使用することZend_Application_Resource_Routerです。

構成はapplication.iniファイルに組み込まれ、それだけです。それ以上のコードは必要ありません。

静的ルート(可変パスコンポーネントなし)を使用しているように見えるので、application.iniファイルでこれを試してください

resources.router.routes.guestbook.type = "Zend_Controller_Router_Route_Static"
resources.router.routes.guestbook.route = "guestbook"
resources.router.routes.guestbook.defaults.module = "default"
resources.router.routes.guestbook.defaults.controller = "guestbook"
resources.router.routes.guestbook.defaults.action = "index"

_initRoutes()クラスからメソッドを削除しますBootstrap


また、これは余談ですが、ブートストラップ_init*方式でフロントコントローラーなどの他のリソースを使用する場合は、それらが適切にブートストラップされていることを確認する必要があります。これを行うには、次のようにそれらを取得します

protected function _initSomething()
{
    // make sure resource is bootstrapped
    $this->bootstrap('frontController');

    // retrieve resource
    $front = $this->getResource('frontController');
}

http://framework.zend.com/manual/en/zend.application.theory-of-operation.html#zend.application.theory-of-operation.bootstrap.dependency-trackingを参照してください

于 2011-10-24T01:07:57.900 に答える