3

私の環境(Zendサーバー):

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のどこかに置くと、このブレークポイントをスキップして (表示すらされません)、ZF ライブラリ ファイル (たとえば、別のブレークポイントがある場所) に移動します。 )。それは正常ですか、それとも間違っていますか?

4

2 に答える 2

1

ファイルmodule/Album/config/module.config.phpは空ですが、構成配列を返す必要があります(投稿したコード例のように)。

于 2013-05-30T17:10:35.097 に答える
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 ファイルのコードを注意深く調べて、抜けなどがないか調べてください。頑張ってください!

于 2014-04-14T08:52:45.900 に答える