PHP包含带有命名空间的文件

时间:2017-12-19 19:01:27

标签: php namespaces phpunit web-development-server

刚开始使用PHPUnit框架,我试图将其合并到现有代码中。

我们说我是一个班级Math,我写的如下,

<?php

/**
 *
 * Date: 19/12/2017
 * Time: 16:22
 */

include_once 'include/testing_namespace.php';

class Math extends TestCase {

    function isEven($x) {
        if ($this->assertInternalType(IsType::TYPE_NUMERIC)) {
            if ($x % 2 == 0) {
                return true;
            } else {
                return false;
            }
        }
    }

    function isOdd($y) {
        if ($this->assertInternalType(IsType::TYPE_NUMERIC)) {
            if ($y % 2 >= 1) {
                return true;
            } else {
                return false;
            }
        }
    }

}

我有一个像这样的php文件include/testing_namespace.php

<?php

namespace testing;

use PHPUnit\Util\PHP;
use PHPUnit\Framework\Constraint;
use PHPUnit\Framework\Constraint\IsType;
use PHPUnit\Framework\TestCase;
use PHPUnit\Framework\Assert;

$path = $_SERVER['APPL_PHYSICAL_PATH'];

// class includes, may need to branch these off into separate include files
include_once $path . '\vendor\phpunit\phpunit\src\Framework\Assert\Functions.php';
include_once $path . '\vendor\phpunit\phpunit\src\Framework\TestCase.php';
include_once $path . 'vendor\phpunit\phpunit\src\Framework\Constraint\IsEqual.php';
include_once $path . 'vendor\phpunit\phpunit\src\Framework\Constraint\IsFalse.php';
include_once $path . 'vendor\phpunit\phpunit\src\Framework\Constraint\IsEmpty.php';
include_once $path . 'vendor\phpunit\phpunit\src\Framework\Constraint\IsNull.php';

?>

让我们说我是这样测试的,

$m = new testing\Math();

$integer1 = 8;

var_dump($m->isEven($integer1));
die();

(这似乎有效一段时间了)

但是,让我们说我正在测试的文件中有一个声明为isEven的函数,该函数不在命名空间中,但也包含在文件中。

我们说oldfuncs/OldMath.php也有一个isEven()函数同名。

第一个问题是,我在这里正确使用名称空间吗?我是否也允许包含一个带有命名空间声明的文件,并将包含它的文件放入该命名空间中?

1 个答案:

答案 0 :(得分:0)

已经实现我试图在同一个文件中使用两个名称空间,主要是尝试use PHPUnit\Framework\并拥有一个直接包含PHPUnit函数的命名空间。