我正在尝试在 Zend Skeleton 应用程序中创建新模块。我正在关注 Zend 框架关于专辑模块的入门教程。唯一的区别是我使用的是项目名称而不是专辑。这是我的模块结构。
的内容module.config.php
如下。
<?php
namespace Project;
return array(
'router' => array(
'routes' => array(
'project' => array(
'type' => 'segment',
'options' => array(
'route' => '/project[/:action][/:id]',
'contraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]+'
),
'defaults' => array(
'controller' => __NAMESPACE__.'/Controller/'.__NAMESPACE__,
'action' => 'index'
)
)
)
)
),
'controllers' => array(
'invokables' => array(
'Project/Controller/Project' => 'Project/Controller/ProjectController',
)
),
'view_manager' => array(
'template_path_stack' => array(
'project' => __DIR__ . '../view',
)
),
);
的内容Module.php
如下。
<?php
namespace Project;
class Module
{
public function getAutoloaderConfig()
{
return array(
'Zend\Loader\ClassMapAutoloader' => array(
__DIR__ . '/autoload_classmap.php',
),
'Zend\Loader\StandardAutoloader' => array(
'namespaces' => array(
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
),
),
);
}
public function getConfig()
{
return include __DIR__ . '/config/module.config.php';
}
}
该文件autoload_classmap.php
仅返回一个空数组。
<?php
return array()
当我尝试访问 urlhttp://local.zf2/project/
时,出现以下错误。
Fatal error: Class 'Project/Controller/ProjectController' not found in
/home/bliss/public_html/local.zf2/vendor/zendframework/zendframework/library
/Zend/ServiceManager/AbstractPluginManager.php on line 170
当我查看AbstractPluginManager.php
文件时,第 170 行包含$instance = new $invokable();
.
我转储$invokable
变量以查看它的值。它回来了string(36) "Project/Controller/ProjectController"
ZF2 不知何故无法找到该文件。有人可以帮忙吗?谢谢。
编辑:这是ProjectController.php
文件的内容。如果它可以找到该文件,它将死去,并显示该文件的名称。
<?php
namespace Project\Controller;
die(__FILE__);
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
class ProjectController extends AbstractActionController
{
public function indexAction()
{
return array();
// return new ViewModel();
}
}
?>