如何从ZF2 Skeleton Application中删除默认的“Application”模块

时间:2014-06-05 19:37:36

标签: php zend-framework2

我从ZF2 Skeleton Application开始创建了一个ZF2 REST Web服务。 我创建了自己的模块,我的路线和查看策略为ViewStrategyJson

我想要做的是删除默认的"应用程序"模块,以便我的应用程序中唯一的模块是我自己的自定义模块,用于我的REST服务。

我尝试删除"应用程序"从application.config.php中的模块列表中进行此更改:

'modules' => array(
    'Application',
    'RestModule',
),

'modules' => array(
    'RestModule',
),

然而,当我这样做时,对我的REST模块的所有请求现在都给我这个错误:

Fatal error:
Uncaught exception 'Zend\View\Exception\RuntimeException' with message:
'Zend\View\Renderer\PhpRenderer::render: Unable to render template "error";
resolver could not resolve to a file' in /opt/lampp/htdocs/vendor/zendframework/zendframework/library/Zend/View/Renderer/PhpRenderer.php:499

Stack trace:
#0 /opt/lampp/htdocs/vendor/zendframework/zendframework/library/Zend/View/View.php(205): Zend\View\Renderer\PhpRenderer->render(Object(Zend\View\Model\ViewModel))
#1 /opt/lampp/htdocs/vendor/zendframework/zendframework/library/Zend/View/View.php(233): Zend\View\View->render(Object(Zend\View\Model\ViewModel))
#2 /opt/lampp/htdocs/vendor/zendframework/zendframework/library/Zend/View/View.php(198): Zend\View\View->renderChildren(Object(Zend\View\Model\ViewModel))
#3 /opt/lampp/htdocs/vendor/zendframework/zendframework/library/Zend/Mvc/View/Http/DefaultRenderingStrategy.php(102): Zend\View\View->render(Object(Zend\View\Model\ViewModel))
#4 [internal function]: Zend\Mvc\View in /opt/lampp/htdocs/vendor/zendframework/zendframework/library/Zend/View/Renderer/PhpRenderer.php** on line 499

我觉得我必须在某个地方遗失某些东西,但我似乎无法找到它。 我会喜欢一些帮助/建议。感谢。

1 个答案:

答案 0 :(得分:4)

ZF2 Skeleton Application在Module.php的onBootstrap()方法中提供了一些基本的自举操作,例如将$eventManager实例附加到 ModuleRouteListener ,也代表了一些基本的初始设置在module.config.php

在删除Application模块之前,不要忘记在RestModule中执行相同的操作。

如果您将view_manager设置从应用模块的module.config.php迁移到了RestModule的设置,请确保它有三个与错误情况相关的重要密钥:

'not_found_template'   => 'error/404',
'exception_template'   => 'error/index',
'template_map' => array('
    'layout/layout'  => __DIR__ . '/../view/layout/layout.phtml',
    'error/404'      => __DIR__ . '/../view/error/404.phtml',
    'error/index'    => __DIR__ . '/../view/error/index.phtml',
    ),

由于此键表示正确呈现异常和其他错误的视图路径,因此您必须将Application/view/errorApplication/view/layout文件夹移动到RestModule中,或更改这些设置以满足您的需要。

在这些小细节之后,删除由骨架应用程序提供的应用程序模块没有任何问题。