Я только что начал новый проект PHP и прямо перед собой, у меня проблемы с автозагрузчиком. Я искал ошибку и проконсультировался с документацией (http://www.php-fig.org/psr/psr-4/), но проблема не устранена.композитор autoload не работает
Таким образом, я создал минимальный пример, чтобы сузить причину ошибки - тем не менее, даже при таком минимальном примере, он не будет работать :(
Моя структура папок, как это:
+ src/
| + Xyz.php
+ composer.json
+ test.php
Вот мой код
composer.json:
{
"name": "sg/ABC",
"description": "abc",
"autoload": {
"psr-4": {
"sg\\ABC\\": "src/"
}
}
}
Xyz.php:
<?php namespace sg\ABC;
class Xyz
{}
?>
test.php:
<?php namespace sg\ABC;
use sg\ABC\Xyz;
$a = new Xyz();
?>
Даже если работает composer install
не показывает никаких ошибок, я сразу получаю эту ошибку при выполнении кода:
$ php test.php
PHP Fatal error: Class 'sg\ABC\Xyz' not found in /dir/x/test.php on line 5
Fatal error: Class 'sg\ABC\Xyz' not found in /dir/x/test.php on line 5
также, работает composer dump-autoload
(как это было предложено кое-где в этой доске) не помогает
Да, я забыл, что в минимальном примере. Хотя, добавив его в пример, он сработал, но фактического кода все еще не было. По какой-то причине (которую я до сих пор даже не понимаю) он работает теперь после копирования части кода из-за ее части в новый репозиторий и сначала добавления пустых классов, а затем кода. * Facepalm * – Xenonite