PHP включает файл с пространством имен

Только начал работать с фреймворком 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() с таким же именем.

Первый вопрос: правильно ли я использую здесь пространства имен? Также мне разрешено включать файл с объявлением пространства имен, и будет ли это помещать файл, который включает его, в это пространство имен?


person user2951106    schedule 19.12.2017    source источник


Ответы (1)


Я понял, что пытался использовать два пространства имен в одном файле, по сути, пытаясь use PHPUnit\Framework\ и имея пространство имен, которое включает функции для PHPUnit напрямую.

person user2951106    schedule 20.12.2017