Относительные имена в namespace

252
15 декабря 2017, 04:13

Привет всем)) подскажите как правильно сделать..

есть автозагрузка

spl_autoload_register(function($className) {
$className = ltrim($className, '\\');
$fileName = '';
$namespace = '';
if ($lastNsPos = strrpos($className, '\\')) {
    $namespace = substr($className, 0, $lastNsPos);
    $className = substr($className, $lastNsPos + 1);
    $fileName = DIRECTORY_SEPARATOR . str_replace('\\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR;
}
$fileName .= str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';
$fileName = __DIR__ . $fileName;
if (file_exists($fileName)) {
var_dump($fileName);
    require $fileName;
}
});

есть файл в проекте /models/File.php

namespace models;
class File {
    .....
}

есть еще один файл /vendors/core/models/File.php

namespace models;
    class File {
    .....
}

как правильно обращаться к второму файлу, при том что namespace у него должен быть относительный а не абсолютный.. первый работает зашибись.. второй инклудится в автозагрузке... но пхп не видит его как класс.. везде где читаю - везде в общем.. а вот как такое решение сделать - не могу найти.. может гуглю не правильно..

пытался через class_alias - не помогло

отключил автозагрузку и просто пытался сделать вот так вот ради интереса

$file = include __DIR__ . '\vendor\core\models\File.php';
var_dump($file); //int 1
$file = new File;

тоже не помогло.. как только из файла удаляю namespace или дополняю его полным путем - все работает.. а мне надо что бы там был относительный путь.. потому что этот файл может обновляться..

READ ALSO
Разместить php в тексте одной строкой

Разместить php в тексте одной строкой

Мне надо сделать один текст, который будет размещаться на всех страницах, но в тексте будет вставка с названием товара аналогичным той странице...

267
NET::ERR_CERT_AUTHORITY_INVALID

NET::ERR_CERT_AUTHORITY_INVALID

Делаю сайт на PHP, для разработки использую Windows 7 и OpenServerВ какой-то момент я ухожу с работы и на следующее утро я просто не могу ни в какую открыть...

337
Не собирается проект Qt Creator

Не собирается проект Qt Creator

ЗдравствуйтеПоявилась надобность в изучении компьютерной графики в среде qt

291
Cравнить два числа на языке C/C++ [требует правки]

Cравнить два числа на языке C/C++ [требует правки]

Даны два числа, Определить какое из них большеВывести знак '>' если первое число больше , или знак '<' в противном случае

260