我正嘗試在Zend Skeleton應用程序中創建新模塊。我正在關注Zend框架有關Album模塊的入門教程。唯一的區別是我使用項目名稱而不是專輯。這是我的模塊結構。ZF2:Zend框架2.2未找到控制器錯誤
的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()
當我試圖訪問url http://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();
}
}
?>
好像它檢測到文件但沒有發現正確的課程在裏面。檢查類名和命名空間是否正確。 – claustrofob
已更新的問題,包含'ProjectController'的內容 – traditional
看起來您在module.config.php的缺省值和可調用鍵中使用了錯誤的斜槓 –