H, мой композитор json файл автозагрузки с psr-4 классом, но когда вызывается этот класс, php возвращает ошибку: Error: Class 'ClassA\Tae' not found
Здесь автозагрузка json
"autoload": {
"psr-4": {
"ClassA\\": "includes/ClassA/",
"": "includes/"
}
}
и мой класс php, которому требуется ClassA, это
require_once __DIR__ .'/../vendor/autoload.php';
use ClassA\{ Rate, Tae, Taeg };
class TestTaeg extends \PHPUnit\Framework\TestCase {
public function test_tae() {
$obj = Tae::init( 5, 12 );
}
Вы знаете, почему я не могу найти ClassA?
Я запускаю код с помощью phpunit на cli, с этим синтаксисом (это первый раз, когда я использую phpunit)
../vendor/phpunit/phpunit/phpunit ./test-general.php
Спасибо
Да, пробовал composer dump-autoload, но ничего не изменилось






Правильно ли вы размещаете классы в именах? Честно говоря, ваша автозагрузка psr-4 выглядит немного запутанной, я предполагаю, что вы автоматически загружаете все, даже если они вам не нужны.
Поэтому, если вы предоставите снимок экрана со структурой папок, я могу попытаться воссоздать вашу проблему и, возможно, предложить решение.
Спасибо, NH, вот мое дерево папок: | тесты - bootstrap.php - test.php | поставщик - autoload.php - bin - composer - doctrine - myclabs - phar-io - phpdocumentor - phpspec - phpunit - sebastian - theseer - webmozart
Я не вижу папки "includes" в вашем дереве, которую вы упомянули при автозагрузке композитора. Пожалуйста, проверьте это, а также было бы неплохо получить ФАКТИЧЕСКОЕ древовидное представление структуры ваших папок.
Да, ты прав. Я добавил эту папку вчера, но ничего не изменилось. Итак, теперь у меня есть это дерево (корень) | тесты | продавец | включает - ClassA ---- Tae (это имя класса, который я вызываю в моем файле test.php use ClassA \ {Tae};)
Вы запускали
composer dump-autoload?