Полезно ли добавление «только для чтения» к службе DirectInjection (в Symfony)? [дубликат] ⇐ Php
-
Гость
Полезно ли добавление «только для чтения» к службе DirectInjection (в Symfony)? [дубликат]
В Symfony вы можете внедрить сервисы в контроллер и использовать их. Я получаю предположение, что свойства могут быть доступны только для чтения. См. следующие два примера:
Класс ПримерAController { публичная функция __construct( частный FooService $fooService, частный BarService $barService, ){} } класс ПримерBController { публичная функция __construct( частный FooService только для чтения $fooService, частный только для чтения BarService $barService, ){} } Есть ли какие-либо реальные преимущества/недостатки у добавления здесь readonly?
Добавление только для чтения гарантирует его неизменность и помогает защитить код от нежелательных изменений, но в случае, если это сервис, который часто имеет свои собственные зависимости, переписывать свойство будет много или работать и никак не останется незамеченным.
Чтобы внести ясность: Я говорю конкретно об услугах. Если, например, вы внедрите частную строку только для чтения $apiKey, я увижу некоторую выгоду.
В Symfony вы можете внедрить сервисы в контроллер и использовать их. Я получаю предположение, что свойства могут быть доступны только для чтения. См. следующие два примера:
Класс ПримерAController { публичная функция __construct( частный FooService $fooService, частный BarService $barService, ){} } класс ПримерBController { публичная функция __construct( частный FooService только для чтения $fooService, частный только для чтения BarService $barService, ){} } Есть ли какие-либо реальные преимущества/недостатки у добавления здесь readonly?
Добавление только для чтения гарантирует его неизменность и помогает защитить код от нежелательных изменений, но в случае, если это сервис, который часто имеет свои собственные зависимости, переписывать свойство будет много или работать и никак не останется незамеченным.
Чтобы внести ясность: Я говорю конкретно об услугах. Если, например, вы внедрите частную строку только для чтения $apiKey, я увижу некоторую выгоду.
Мобильная версия