3

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

So I tried to write my first application in ZF2 form official tutorial.

ZF version in skeleton application: 2.2

This is link to my project, if someone wants to look at it closer.

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';
    }
}

And this is my error:

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? I tried to debug it but I don't know what is wrong with my code, except that is int value even I return array in config/module.config.php.

Ps. Eariler, I didn't use Xdebug (+PHPStorm), and when eg I put breakpoint somewhere into config/module.config.php, it skips this breakpoint and go into (it don't even shows) and goes into ZF library files (where for example is another breakpoint). Is it normal or I'm doing sth wrong?

G.Z
  • 121
  • 3
  • 11

2 Answers2

1

Your module/Album/config/module.config.php file is empty, while it should return a config array (like in the example code you've posted).

rixo
  • 23,815
  • 4
  • 63
  • 68
  • My stupid mistake... i misread that... i understand that it should be in `This method simply loads the config/module.config.php file.`. Thanks for your eyes. – G.Z May 30 '13 at 23:33
1

I had this same problem when I was about creating a new module after some time. I had other modules that were already working but this other one was giving the error you have now. In my search I realized that I wrote:

public function getConfig()
{
    return __DIR__ . '/config/module.config.php';
}

instead of:

public function getConfig()
{
    return include __DIR__ . '/config/module.config.php';
}

in my Module.php file. After correcting it my app works great! Please look through your code carefully especially in the Module.php and module.config.php files for omissions etc. Good luck!

The Oracle
  • 2,373
  • 3
  • 26
  • 44