Symfony 4. Для написания логики используйте сервисы?Что это за сервисы? И где про них можно почитать?

В Symfony 4 сервисы являются основным способом организации и внедрения зависимостей в приложении. Они позволяют выделить и инкапсулировать повторно используемую функциональность и обеспечивают модульность и расширяемость кода.

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

Для создания сервиса в Symfony 4 необходимо выполнить несколько шагов:
1. Создать класс сервиса, реализующий нужную функциональность.
2. Прописать сервис в конфигурационном файле приложения (например, services.yaml), указав его ID и класс.
3. При необходимости указать зависимости сервиса и параметры его конфигурации.

Пример создания сервиса:

namespace AppService;

class ExampleService
{
    private $dependency;

    public function __construct(Dependency $dependency)
    {
        $this->dependency = $dependency;
    }

    public function doSomething()
    {
        // Реализация функциональности сервиса
    }
}

Пример конфигурации сервиса (services.yaml):

services:
    AppServiceExampleService:
        arguments:
            - '@Dependency'

Пример использования сервиса:

namespace AppController;

use AppServiceExampleService;
use SymfonyBundleFrameworkBundleControllerAbstractController;

class ExampleController extends AbstractController
{
    public function index(ExampleService $exampleService)
    {
        $exampleService->doSomething();

        // ...
    }
}

Для более подробной информации о сервисах в Symfony 4 можно обратиться к официальной документации на сайте Symfony: https://symfony.com/doc/current/service_container.html