在 zend framework 2 模块中添加 class

Addind a class in zend framework 2 module

我在 bleupage/module/Bleupage/src/Bleupage/facebook 中有一个 Facebookbp.php 我想将其包含在我的 controller.

namespaceBleupage\Facebookbp。 Class 名字是 Facebookbp

在我的控制器文件之上,我添加了:

use Bleupage\Facebookbp\Facebookbp;

我将此添加到我的 module.php

'Zend\Loader\StandardAutoloader' => array(
    'namespaces' => array(
       __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
       'Bleupage\Facebookbp' => __DIR__ . '/src/Bleupage/facebook',
    ),

它给了我

( ! ) Fatal error: Class 'Bleupage\Facebookbp\Facebookbp' not found in C:\xampp\htdocs\bleupage\module\Bleupage\src\Bleupage\Controller\BleupageController.php on line 19

我尝试了很多其他方法 none,其中的一些有效。我如何完成它。

您有 src/Bleupage/facebook 路径,但您正在为 /src/facebook.

注册名称空间

我还发现在 composer 中定义 PSR-4 autoload config 并完全删除 Zend Autoloading 效果更好,然后您可以转储整个自动加载缓存并获得性能。多亏了这一点,您还可以将整个配置集中在一个地方。

编辑:

我已经创建了简单的骨架项目并向自动加载器添加了新的命名空间:

public function getAutoloaderConfig()
    {
        return array(
            'Zend\Loader\StandardAutoloader' => array(
                'namespaces' => array(
                    __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
                    'Testing\Facebookbd' => __DIR__ . '/src/Test/facebook'
                ),
            ),
        );
    }

它没有任何问题。我不确定您的实施有什么问题。对我来说看起来不错。你能显示 Facebookbp 的确切目录树和内容吗class?