我用模块创建了 ZendFramework 1.12 应用程序。这个想法是在模块中拥有 API 的版本,带有 RESTfull 路径。
默认模块是 V1,现在当我尝试创建 v1s1 模块时,所有链接仍然指向 V1。
任何人都可以将我推向正确的方向如何解决这个问题吗?
更多细节
这是我必须使用模块的代码。
application.ini
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.frontController.defaultModule = "v1"
resources.modules[] =
v1.boostrap.path = APPLICATION_PATH "/modules/v1/Bootstrap.php"
resources.frontController.plugins.putHandler = Zend_Controller_Plugin_PutHandler
routes.rest.type = Zend_Rest_Route
routes.rest.defaults.module = v1
主要Bootstrap.php
:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initAppAutoload()
{
$autoloader = new Zend_Application_Module_Autoloader(array(
'namespace' => 'V1s1',
'basePath' => APPLICATION_PATH . '/modules/v1s1',
));
$autoloader->addResourceType('model', 'models', 'Model');
return $autoloader;
}
}
V1 Bootstrap.php
:
class V1_Bootstrap extends Zend_Application_Module_Bootstrap
{
protected $_moduleName = "v1";
protected function _initAutoload()
{
// Add autoloader empty namespace
$autoLoader = Zend_Loader_Autoloader::getInstance();
$autoLoader->registerNamespace('v1_');
return $autoLoader;
}
protected function _initResourceLoader()
{
Zend_Controller_Action_HelperBroker::addPath(APPLICATION_PATH . '/modules/v1/controllers/helpers');
}
public function _initRouts()
{
$front = Zend_Controller_Front::getInstance();
$restRoute = new Zend_Rest_Route($front, array(), $arrayOfControllers));
$front->getRouter()->addRoute('rest', $restRoute);
}
}
现在我需要创建模块 v2,但是当我这样做时,一切都崩溃了。链接不再是 RESTfull,每个链接仍然指向 V1 模块。正在访问 V2 模块 Bootstrap.php。