我有100%正确的application.config.php:
return array(
'modules' => array(
'Application',
),
'module_listener_options' => array(
'config_glob_paths' => array(
'config/autoload/{,*.}{local,global}.php',
),
'config_cache_enabled' => false,
'cache_dir' => 'data/cache',
'module_paths' => array(
realpath(__DIR__ . '/../module'),
),
)
);
然后我收到此错误:
模块(应用程序)无法初始化。
我已经跟踪了错误,看起来ModuleAutoloader并没有加载我的文件。
$this->paths
数组是模块文件夹的右侧。我的模块文件位于module/Application/Module.php
它是一个命名空间的应用程序,类是Module。我无法解决问题所在。
<?php
namespace Application;
class Module
{
/**
* Module directory path
*
* @var string
*/
protected $directory = null;
/**
* Module namespace
*
* @var string
*/
protected $namespace = null;
/**
* Module configuration
*
* @var array
*/
protected $config;
/**
* Get autoloader config
*
* @return array
*/
public function getAutoloaderConfig()
{
return array(
'Zend\Loader\ClassMapAutoloader' => array(
$this->getDir() . '/autoload_classmap.php',
),
'Zend\Loader\StandardAutoloader' => array(
'namespaces' => array(
$this->getNamespace() => $this->getDir() . '/src/' . $this->getNamespace(),
),
),
);
}
/**
* Get module configuration
*
* @return array
*/
public function getConfig()
{
if (empty($this->config)) {
$config = include $this->getDir() . '/config/module.config.php';
$this->config = $config;
}
return $this->config;
}
/**
* Get module dir
*
* @return string
*/
protected function getDir()
{
return $this->directory;
}
/**
* get module namespace
*
* @return string
*/
protected function getNamespace()
{
return $this->namespace;
}
}
答案 0 :(得分:1)
尝试使用魔术常量而不是名称空间和目录的函数,例如
public function getAutoloaderConfig() {
return array (
'Zend\Loader\StandardAutoloader' => array (
'namespaces' => array (
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__
)
)
);
}
在你的application.config.php中,你可以这样简化它:
'module_paths' => array(
'./module',
),
如果这不起作用,您可以尝试对整个模块路径进行硬编码,以查看自动加载器是否有问题:
'module_paths' => array(
'./module',
'Application' => './module/Application/src/Application'
),
答案 1 :(得分:0)
更改&#39; module_paths&#39;到:
'module_paths' => array(
'../../module',
'../../vendor',
)