Я ударил головой о стену на 3/4 дня и просто не вижу ошибки моих путей.php/composer не загружает интерфейс
Я создаю (или пытаюсь!) Простой пакет, состоящий из нескольких классов и 1 интерфейса. Это в GitHub на https://github.com/dnorth98/victoropsnotifier
В принципе, хотя, есть следующая структура каталогов:
victoropsnotifer
src
Signiant
VictorOpsNotifier
Transport.php
VictorOpsNotifier.php
Транспорт очень просто:
<?php
namespace Signiant\VictorOpsNotifer;
interface Transport
{
// must POST the $message to the VictorOps REST endpoint
public function send(Messages\Message $message);
}
и начало VictorOpsNotifier является
<?php
namespace Signiant\VictorOpsNotifer;
use GuzzleHttp\Client;
class VictorOpsNotifer implements Transport
{
protected $endpoint_url;
:
:
Проблема возникает, когда я пытаюсь создать экземпляр нового объекта usin г
<?php
require_once 'vendor/autoload.php';
use Signiant\VictorOpsNotifier\Messages\CustomMessage;
use Signiant\VictorOpsNotifier\VictorOpsNotifier;
$voConfig = ['routing_key' => 'test',
'endpoint_url' => 'https://goo'];
$voHandle = new VictorOpsNotifier($voConfig);
я вернусь
PHP Fatal error: Interface 'Signiant\VictorOpsNotifer\Transport' not found in /tmp/djn/tests/vendor/signiant/
victoropsnotifier/src/Signiant/VictorOpsNotifier/VictorOpsNotifier.php on line 8
PHP Stack trace:
PHP 1. {main}() /tmp/djn/tests/test.php:0
PHP 2. spl_autoload_call() /tmp/djn/tests/test.php:12
PHP 3. Composer\Autoload\ClassLoader->loadClass() /tmp/djn/tests/test.php:0
PHP 4. Composer\Autoload\includeFile() /tmp/djn/tests/vendor/composer/ClassLoader.php:301
PHP 5. include() /tmp/djn/tests/vendor/composer/ClassLoader.php:412
Что же мне не хватает? Composer находит пакет в порядке от моего репозитория github, и все в папке поставщика и выглядит нормально. Похоже, что пространства имен совпадают ... поэтому по какой-то причине просто не загружается файл Transport.php, содержащий интерфейс.
Вы используете PSR-0 от composer.json? Там такая опечатка, как сказал Этки, если это не исправить, вы должны увидеть свой PSR-0. –