Я пытаюсь реализовать простую библиотеку без веб-сервера. Это означает, что на самом деле у меня нет точки входа, куда я могу включить автозагрузку. 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;
}