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
Это ссылка на мой проект , если кто-то хочет взглянуть на него ближе.
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
.
Ps. Я не использовал Xdebug (+ PHPStorm), и когда, например, я поставил config/module.config.php
останова где-то в config/module.config.php
, он пропускает эту config/module.config.php
останова и переходит (она даже не отображается) и переходит в файлы библиотеки ZF (где, например, другая точка останова). Это нормально, или я делаю это неправильно?
Файл module/Album/config/module.config.php
пуст, в то время как он должен возвращать массив конфигурации (например, в приведенном выше примере кода).
У меня была такая же проблема, когда я собирался создать новый модуль через некоторое время. У меня были другие модули, которые уже работали, но этот другой выдавал вам ошибку. В моем поиске я понял, что написал:
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 для пропусков и т. Д. Удачи!