繁体   English   中英

从父名称空间加载类

[英]loading a class from a parent namespace

我正在以模块化方式开发应用程序,也就是说,我有一个接口,并且我想对实现该接口的所有类进行单元测试,因此我制作了一个实现了所有逻辑的抽象类(测试是否该类实际上是在实现接口,测试返回值,等等),但是当我尝试继承抽象类时,我class not found exception一个class not found exception我正在使用名称空间,因此我的目录结构是这样的

namespaceA
|->abstract.php
|->namespaceB
    |->pluginTest.php

所以我的pluginTest.php类定义是这样的

namespace namespaceA\namespaceB;    
use namespaceA\Abstract;

class pluginTest extends Abstract

显然在我的抽象类中有namespaceA定义,我也尝试过手动包含文件( include("../Abstract.php") ),但是它失败了,但是由于我使用了一段时间的自动加载功能,也许我不知道我还不太清楚如何手动导入,我也尝试过使用该类的别名( using namespaceA\\Abstract as X ),并在namespaceA之前放置一个\\ ,但没有任何作用,我做错了什么,或者我错过了什么

==编辑==

我设法使用加载课程

include __DIR__ ."/../Abstract.php";

但仍然无法自动加载

我解决了它,我只需要将测试目录添加到module.php这样

public function getAutoloaderConfig()
    {
        return array(
            'Zend\Loader\ClassMapAutoloader' => array(
                __DIR__ . '/autoload_classmap.php',
            ),
            'Zend\Loader\StandardAutoloader' => array(
                'namespaces' => array(
                    __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
                    'namespaceA' => __DIR__ . '/test/' .'namespaceA', //added this line
                ),
            ),
        );
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM