My Enviroment(Zend Server):
PHP Version 5.4.11
Zend Server Version: 6.0.1
Zend Framework: 1.12.3, 2.1.4
Zend Server Gateway: 0.9.0.201301302347
Build: 69400
所以我试着用ZF2形式的官方教程编写我的第一个应用程序。
骨架应用程序中的ZF版本:2.2
这是我project的链接,如果有人想要更近看它。
config/module.config.php
<?php
return array(
'controllers' => array(
'invokables' => array(
'Album\Controller\Album' => 'Album\Controller\AlbumController',
),
),
'view_manager' => array(
'template_path_stack' => array(
'album' => __DIR__ . '/../view',
),
),
);
module\Album\Module.php
<?php
namespace Album;
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';
}
}
这是我的错误:
Zend\ModuleManager\Listener\Exception\InvalidArgumentException: Config being merged must be an array, implement the Traversable interface, or be an instance of Zend\Config\Config. integer given. in F:\Zend\Apache2\htdocs\learnzf2\vendor\zendframework\zendframework\library\Zend\ModuleManager\Listener\ConfigListener.php on line 317
Call Stack
# Time Memory Function Location
1 1.0510 137456 {main}( ) ..\index.php:0
2 1.0986 163240 Zend\Mvc\Application::init( ) ..\index.php:18
3 1.2171 345520 Zend\ModuleManager\ModuleManager->loadModules( ) ..\Application.php:253
4 1.2171 345680 Zend\EventManager\EventManager->trigger( ) ..\ModuleManager.php:109
5 1.2171 345936 Zend\EventManager\EventManager->triggerListeners( ) ..\EventManager.php:207
6 1.2195 354296 call_user_func ( ) ..\EventManager.php:468
7 1.2195 354312 Zend\ModuleManager\ModuleManager->onLoadModules( ) ..\EventManager.php:468
8 1.2371 383920 Zend\ModuleManager\ModuleManager->loadModule( ) ..\ModuleManager.php:90
9 1.2390 384984 Zend\EventManager\EventManager->trigger( ) ..\ModuleManager.php:154
10 1.2391 385016 Zend\EventManager\EventManager->triggerListeners( ) ..\EventManager.php:207
11 1.2431 391096 call_user_func ( ) ..\EventManager.php:468
12 1.2431 391112 Zend\ModuleManager\Listener\ConfigListener->onLoadModule( ) ..\EventManager.php:468
13 1.2439 391464 Zend\ModuleManager\Listener\ConfigListener->addConfig( ) ..\ConfigListener.php:127
What is problem with it?
我尝试调试它,但我不知道我的代码有什么问题,除非是int值,即使我在config/module.config.php
返回数组。
聚苯乙烯。预告片,我没有使用Xdebug(+ PHPStorm),例如我把断点放在某个地方
config/module.config.php
,它跳过此断点并进入(它甚至不显示)并进入ZF库文件(例如,其中是另一个断点)。这是正常的还是我做错了?
答案 0 :(得分:1)
您的module/Album/config/module.config.php
文件为空,但它应该返回一个配置数组(就像您发布的示例代码中一样)。
答案 1 :(得分:1)
当我在一段时间后创建一个新模块时,我遇到了同样的问题。我有其他模块已经在工作,但另一个模块现在给出了错误。在我的搜索中,我意识到我写道:
public function getConfig()
{
return __DIR__ . '/config/module.config.php';
}
而不是:
public function getConfig()
{
return include __DIR__ . '/config/module.config.php';
}
在我的Module.php文件中。纠正后我的应用程序运行良好!请仔细查看您的代码,特别是在Module.php和module.config.php文件中查看遗漏等等。祝您好运!