Что такое контейнер в Symfony
Давайте познакомимся с еще одним важным теоретическим понятием в Symfony, которое тесно связано с понятием сервис. Это понятие контейнер в Symfony
Что это такое и для чего это нужно, давайте будем разбираться.
Контейнер - это некая "коробка", куда мы можем что-то складывать. Что же это за коробка в Symfony, что мы можем туда положить?
Приложение, которое разрабатывается в Symfony, содержит очень много классов (или сервисов). Т.е. классы, которые есть в нашем приложении являются сервисами.
Наше приложение содержит огромное количество файлов, классов и.т.д.
Когда мы будем разрабатывать наше приложение, реально в нем будут использоваться из этого множества классов и сервисов только единицы процентов, которые реально будут нужны в нашем приложении.
Если мы будем создавать экземпляры классов и использовать все имеющиеся сервисы в Symfony в нашем приложении, то быстродействие этого приложения от этого может сильно пострадать.
Представьте сколько времени нужно программе, чтобы загрузить тысячи и сотни сервисов, которые не будут использоваться в приложении.
Для ускорения работы приложения, чтобы страница сайта быстрее открывались, очень важно использовать в вашем приложении только те сервисы, которые вам нужны, а остальные сервисы просто не использовать и подключать их к приложению по мере необходимости.
Для того, чтобы технически реализовать эту задумку, в Symfony есть понятие "контейнер".
Контейнер как класс
Контейнер - это некий класс, куда мы можем подключать наши сервисы, создавать из них экземпляры классов, объектов и.т.д. Подключать их туда и затем уже по мере необходимости использовать их в нашем приложении.
Это важно понимать, т.к. может быть ситуация, что вы скачали какой-то сервис, пытаетесь использовать его в своем приложении, но у вас возникает целый ряд ошибок. Возникают эти ошибки, в первую очередь по той причине, что вы не можете просто так взять какой-то сервис, который есть и использовать его в вашем Symfony проекте. Его нужно определенным образом в это приложение добавить.
Добавление сервиса в приложение происходит через такой дополнительный сервис, который называется "контейнер".
Пока мы в общих чертах с этим разобрались, что такое сервис и контейнер. Из контейнера мы можем вытаскивать сервисы и использовать их в нашем приложении.
Пока теоретически мы познакомились с этим и теперь давайте будем переходить практике и посмотрим все подробнее.
Чтобы оставить сообщение, зарегистрируйтесь/войдите на сайт через:
Email - зарегистрироваться / войти