Что такое сервисы в фреймворке Symfony. Это одно из самых важных определений, с которым важно познакомиться, если вы хотите научиться работать с этим фреймворком. Это видео содержит теоретическую вводную часть, где мы с вами познакомимся с тем, что это такое и зачем это нужно.

Первое, что нужно понимать, Symfony является объектно ориентированным фреймворком. 

Ссылка на видео о том, что такое объектно-ориентированный подход к программированию.

https://webkyrs.info/page/chto-takoe-obektno-orientirovannoe-programmirovanie-oop

Symfony - это фреймворк, который придерживается принципам ООП. Приложения, которые мы разрабатываем на этом фреймворке, представляют собой некие классы или объекты, маленькие части из которых строится наше большое приложение. 

Мы как конструктор по частям собираем наше большое приложение, добавляем туда какие-то новые части и таким образом наше приложение все больше и больше разрастается и каждая часть является независимой частью, которая может использоваться сама по себе в каких-то других приложениях.

Эти небольшие кубики и являются теми же самыми сервисами. Мы берем какой-то сервис, подключаем его к нашему приложению и у нас появляется ряд возможностей, которые мы можем использовать.

Что же представляют собой эти "кубики" или сервисы?

При разработке проекта на Symfony, мы большую часть работаем с так называемыми классами и объектами. По сути, все наше приложение состоит из классов и объектов. 

О том, что такое классы и объекты, можно посмотреть здесь:

https://webkyrs.info/page/poniatie-klassa-ekzempliara-klassa-i-obekta-v-oop

Класс у нас содержит какие-то методы: то, что может делать этот класс и его свойства (характеристики). И "кубики", которые мы подключаем - это и есть те самые классы. 

Подключаем класс, который будет отвечать за одну возможность, потом подключаем класс, который будет отвечать за другую возможность. 

Эти классы и являются сервисами. Классы и объекты, которые мы подключаем - это и есть те самые сервисы, каждый из которых дает нам ряд возможностей. 

Например, это могут быть возможности:

  • Сервис отправки email

  • Сервис записи сообщений в лог

  • Сервис приема платежей на сайте

  • Сервис кэширования страниц

  • Сервис шаблонизатора Twig

Мы можем написать какой-то сервис либо самостоятельно или скачать уже готовые сервисы (composer) и использовать их в своем проекте.

С помощью такого подхода мы можем разрабатывать наше приложение намного быстрее и удобнее. Код, который будет использоваться в сервисах будет повторяться, будет взаимозаменяем и мы можем использовать его в различных проектах.