Короткая версия: Что делает конфигурация сервиса Symfony file: SomeFile.php
?
Недавно я ввел недопустимое определение сервиса в файл service.yaml
во время работы в проекте Symfony.Меня приветствовало это очень полезное сообщение об ошибке
. Не поддерживается определение конфигурации «foo» для определения «App \ Services \ ServiceA» в «/ Users / alanstorm / Sites / symfony-4 / my-».проект / Config / services.yaml».Допустимые ключи конфигурации: «псевдоним», «родитель», «класс», «общий доступ», «синтетический», «ленивый», «открытый», «абстрактный», «не рекомендуется», «фабрика», «файл», «аргументы»."," свойства "," конфигуратор "," вызовы "," теги "," декорации "," имя_прибора_ украшения "," декорация_приложения "," автоматическая настройка "," автоконфигурация "," связывание "в / Users / alanstorm / Sites / symfony-4 / my-project / config / services.yaml (загружается в ресурс "/Users/alanstorm/Sites/symfony-4/my-project/config/services.yaml").
Я не думаю, что когда-либо видел все действующие конфигурации для службы Symfony, перечисленные где-либо ранее.Я пытаюсь понять, для чего нужна конфигурация file
и как ее использовать.
Я попытался настроить службу, используя ее
App\Services\ServiceA:
file: SomeFile.php
, и Symfony пожаловалась
Предупреждение: include_once (SomeFile.php): не удалось открыть поток: нет такогофайл или каталог
Я попытался поместить файл с именем SomeFile.php
в `src / SomeFile.php, и Symfony пожаловалась
Ожидаемый класс автозагрузчика" App \ SomeFile "быть определенным в файле "/Users/alanstorm/Sites/symfony-4/my-project/vendor/composer/../../src/SomeFile.php".Файл был найден, но класс не был в нем, имя класса или пространство имен, вероятно, содержит опечатку в /Users/alanstorm/Sites/symfony-4/my-project/config/services.yaml (загружается в ресурс "/Users / alanstorm / Sites / symfony-4 / my-project / config / services.yaml ").
Поэтому я определил класс с именем App\SomeFile
в src/SomeFile.php
#File: src/SomeFile.php
namespace App;
class SomeFile {
}
и Symfony загрузил этот файл - но когда вернулся к жалобе
Предупреждение: include_once (SomeFile.php): не удалось открыть поток: нет такого файла или каталога в var / cache / dev /ContainerG6s3qUD / getServiceA2Service.php (строка 11)
Итак, наконец, я извлек файл `` и увидел, что он содержит эту строку
#File: var/cache/dev/ContainerG6s3qUD/getServiceA2Service.php
//...
include_once 'SomeFile.php';
//...
Итак, лучшее, что я могу сказать, этоэта file
конфигурация является своего рода альтернативой автозагрузчику композитора, но я не могу найти никаких документов о том, как подтвердить ваши подозрения или как ее использовать.
Может кто-нибудь помочь мне понять, что эта конфигурацияполе для?