Composer автозагрузчик, кажется, не включен правильно - PullRequest
1 голос
/ 19 января 2020

Я пытаюсь реализовать простую библиотеку без веб-сервера. Это означает, что на самом деле у меня нет точки входа, куда я могу включить автозагрузку. php. Я пытаюсь добавить несколько классов, но PhpStorm не может распознать пространство имен, и мои классы не могут быть автоматически импортированы. Например, я пытаюсь импортировать файл App/Engines/Contracts/BaseEngine.php, который помещается в src/Engines/Contracts/BaseEngine.php через use App\Engines\Contracts\BaseEngine; PhpStorm сообщает Undefined Class

Кажется, что вся конфигурация PhpStorm правильная: я указал composer. json и проверил автоимпорт в области имен.

Итак, в основном вопрос: как работать с composer автозагрузчиком в такой библиотеке?

Присоединение моего composer. json код.

{
    "name": "mom/task",
    "description": "Todo",
    "authors": [
        {
            "name": "Foo Bar",
            "email": "foo.mail.com"
        }
    ],
    "require": {
        "php": "^7.4"
    },
    "require-dev": {
        "phpunit/phpunit": "^8",
        "squizlabs/php_codesniffer": "3.*"
    },
    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    }
}

UPD: добавление кода BaseEngine.

<?php

namespace App\Engines\Contracts;

interface BaseEngine
{
    /**
     * @param int $variable
     * @param int $multiplier
     * @return mixed
     */
    public function compute(int $variable, int $multiplier): int;
}
...