0

我正在使用 zend framework2 骨架,并且正在尝试在 vendor 文件夹后面添加我自己的类。问题是:只有当我从任何模块实例化其中一个类时,我才知道如何准备要按需加载(自动加载)的类。

我尝试使用以下说明的解决方案:如何在 Zend Framework 2 中加载自定义库?,但我得到了同样的错误:

致命错误:在第 x 行的 path\IndexController.php 中找不到类 'myNamespace\myClass'

我的问题是:我应该在哪里以及如何插入我自己的类以便以后从我的模块中使用?

4

2 回答 2

1

首先,如果它们是您自己的类并且与模块直接相关(即不是您编写的某些自定义库),那么您最好将它们放在实际模块中,而不是在vendor文件夹中。

但是,如果您尝试包含自己编写的库,我建议您考虑将其存储在其他地方并通过作曲家将其添加为依赖项。

我不建议这样做,但您应该能够通过使用 composer 内置的 psr0 自动加载器来使自动加载工作(假设您的类遵循 psr0)。示例 composer.json 配置:

{
    [...]
    "autoload": {
        "psr-0": {
            "MyNameSpace": "path/to/root/src/directory"
        }
    }
    [...]
}
于 2013-11-21T22:39:10.770 回答
0

我知道它有点旧,但我面临同样的问题,所以我所做的是:

在供应商文件夹中,我创建了一个新文件夹并将其命名为自定义。在那个文件夹中,我添加了我的类文件(MyClass.php)。

在 MyClass.php 中,我添加了这一行(命名空间 Zend\Custom;)。

在顶部的控制器内部使用 Zend\Custom\MyClass;

并在该控制器的方法内

$someVar = new MyClass();

$someVar->someClassMethod();

我希望这有帮助。

于 2014-05-07T14:57:16.173 回答