Композитор не автозагрузка классов в каталоге с тем же именем

Я использую composer для включения частного пакета в мой проект, который будет включать в себя некоторые классы, которые я буду использовать для тестирования с помощью PHPUnit. Большая часть пакета загружается правильно, и я могу вызывать классы из моего модульного теста, однако любой класс, имя которого совпадает с каталогом, в котором он находится, выдает ошибку «Класс не найден».

Хранилище соответствует psr-0 и находится по адресу https://github.com/DeschutesDesignGroupLLC/IPS-Source

Ошибка создания примера структуры файла:

--src
----IPS
------DateTime
--------DateTime.php

призвание $date = new \IPS\DateTime; выдает ошибку.

Пример структуры файла НЕ выдает ошибку:

--src
----IPS
------Http
--------Url.php

призвание $url = new \IPS\Http\Url; не выдает ошибку.

Composer.json частного пакета:

{
"name": "deschutesdesigngroupllc/ips",
"description": "Invision power board source files used to test against",
"homepage": "https://www.invisioncommunity.com",
"version": "4.3.6",
"autoload": {
"psr-0": {
"IPS\\": "src/"}
},
"extra": {
"branch-alias": {
"dev-master": "4.3.6"}
},
"require": {
"phpdocumentor/phpdocumentor": "dev-master"}
}

0

Решение

В первом примере вам нужен файл, но вы указываете путь к его родителю. Во втором вы снова хотите файл, но на этот раз укажите полный путь. Неудивительно, что первое терпит неудачу, а второе — успешно.

Казалось бы, что

$date = new \IPS\DateTime\DateTime;

это то, что вы хотели спросить.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]