1
私の現在のアプリケーション設定では、標準コントローラとレストコントローラのルーティングを作成しようとしています。残りのサブフォルダのZend Frameworkルート
これは私の構造です。私の現在の設定では
/admin/module/controller/action
:
/module/admin_controller/action
は、私はこれを変更したい:
/application
/modules
/module
/controllers
/Admin
/Api
は、管理サブフォルダ内のコントローラーを呼び出すには
/* application.ini */
;Default route
resources.router.routes.defaultmodule.type = Zend_Controller_Router_Route_Module
resources.router.routes.defaultmodule.defaults.module = "default
; APi route
resources.router.routes.api.type = Zend_Controller_Router_Route
resources.router.routes.api.route = ":api"
resources.router.routes.api.reqs.api = "api"
resources.router.routes.apichain.type = Zend_Controller_Router_Route_Chain
resources.router.routes.apichain.chain = "api, defaultmodule"
; Admin route
resources.router.routes.admin.type = Zend_Controller_Router_Route
resources.router.routes.admin.route = ":admin"
resources.router.routes.admin.reqs.admin = "admin"
resources.router.routes.adminchain.type = Zend_Controller_Router_Route_Chain
resources.router.routes.adminchain.chain = "admin, defaultmodule"
/* Plugin */
class Pwb_Plugin_ControllerRoute
extends Zend_Controller_Plugin_Abstract
{
public function routeShutdown(Zend_Controller_Request_Abstract $request)
{
if ($request->getParam('admin')) {
$admin_controller = $request->getParam('admin') . '_' . $request->getControllerName();
$request->setControllerName($admin_controller);
}
if ($request->getParam('api')) {
$admin_controller = $request->getParam('api') . '_' . $request->getControllerName();
$request->setControllerName($admin_controller);
}
}
}
/* Module Bootstrap */
class Acl_Bootstrap
extends Zend_Application_Module_Bootstrap
{
protected function _initRestRoute()
{
$this->bootstrap('frontController');
$frontController = Zend_Controller_Front::getInstance();
$restRoute = new Zend_Rest_Route(
$frontController,
array(),
array(
'acl' => array(
'api_role'
))
);
$frontController->getRouter()->addRoute('restAcl', $restRoute);
}
}
ここの問題は本当にsom e APIフォルダ内のコントローラはRestですが、すべてではありません。
/api/acl/roleは、正しくindexActionに正しくルーティングされています。
/api/acl/role/1は、getActionにルーティングすると予想されるアクション「1」を探しています。
モジュールBootstrapからZend_Route_Restをこれらのルールセットに統合するにはどうすればよいですか。
すべてのご協力をいただければ幸いです。
APIはモジュールである管理/ APIの静的ルートを作成していますか?とaclはコントローラですか? – emaillenin
申し訳ありませんが、aclはモジュールで、Apiはコントローラのサブフォルダです –
私は通常、モジュール名を最初に入れてコントローラ名を – emaillenin