Zf2扩展了类,没有找到错误类

时间:2017-03-08 09:33:37

标签: php module zend-framework2

我正在尝试在ZF2中的vendor文件夹中创建库。结构如下:

/Vendor
     /Mylib
          /Mylib.php
          /MylibStore.php
          /MylibError.php
          ....

我在 Applicaiotion/Module.php

中声明了相同的lib
public function getAutoloaderConfig()
{
    return array(
        'Zend\Loader\StandardAutoloader' => array(
            'namespaces' => array(
                 'Mylib' => __DIR__ . '/../../vendor/Mylib',
            ),
        ),
    );
}

现在我在控制器中调用Mylib类它正在工作,但是当我试图在控制器中实例化其他类时它会给出错误。这是代码的快照:

Mylib.php

namespace Mylib;
abstract class Mylib
{ 

MylibStore.php

namespace MylibStore;
use \Mylib\MylibError;
class MylibStore extends MylibError
{

MylibError.php

namespace MylibError;
class MylibError
{

我收到以下错误:

  

致命错误:找不到类'MylibStore \ MylibError'   第5行的C:\ xampp \ htdocs \ coxaxle \ vendor \ Mylib \ MylibStore.php

请让我知道我做错了什么?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

问题在于您的命名空间。 Mylib目录中的所有文件都应该具有相同的namespace - Mylib 这就是为什么只有Mylib类有效,因为它有正确的namespace

如果将类放在不同的目录中,则必须更新有关此目录的命名空间。

示例:

/Vendor
     /Mylib
          /Service
              /MylibService.php
          /Mylib.php
          ....

Mylib应该具有名称空间Mylib
MylibService应该具有名称空间Mylib\Service