Zf2 扩展 class 给出错误 class not found

Zf2 extending the class giving the error class not found

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

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

我在 Applicaiotion/Module.php:

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

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

Mylib.php

namespace Mylib;
abstract class Mylib
{ 

MylibStore.php

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

MylibError.php

namespace MylibError;
class MylibError
{

我收到以下错误:

Fatal error: Class 'MylibStore\MylibError' not found in C:\xampp\htdocs\coxaxle\vendor\Mylib\MylibStore.php on line 5

请告诉我我做错了什么?我该如何解决这个问题?

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

如果您将 classes 放在单独的目录中,那么您必须更新关于此目录的名称空间。

示例:

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

Class Mylib 应该有命名空间 Mylib
Class MylibService 应该有命名空间 Mylib\Service