Ответ 1
Я не думаю, что что-то синтаксически неправильно с этим, но я не думаю, что любой PSR-4 совместимый auotloaders сможет найти класс, который не является в нем собственным выделенным файлом, так как стандарт состоит в том, что имя файла, к которому принадлежит класс, совпадает с именем самого класса:
- Конечное имя класса соответствует имени файла, заканчивающегося на .php. Имя файла ДОЛЖНО соответствовать случаю завершающего имени класса.
Из-за этого, если вы хотите использовать этот подход, вам нужно будет обеспечить include
этот файл класса вручную, когда вам понадобятся эти классы, которые нужно определить (в основном, когда вы хотите бросить/уловить любое из этих исключений).
Альтернативой является определение классов, которые вы хотите использовать внутри файла другого класса, который вы абсолютно уверены, всегда будет автоматически загружаться до любого вызова каких-либо операторов new CustomExceptionN
. Вероятно, вы обнаружите, что в большинстве случаев гораздо больше проблем с попыткой вспомнить, прежде всего, чтобы автозагрузка Class1
перед использованием Class2
, чем просто следовать стандарту и включать каждый класс в свой собственный файл, расположенный по адресу правильный путь пространства имен.