yaml

symfony yaml include (imports) Как включать дополнительные отдельные файлы в конфигурацию

в symfony 4.3:

Вы можете в конце основного config/services.yaml добавить инструкцию вида:

imports:
    - { resource: frontend.yaml }

И положить в ту же папку что и config/services.yaml, файл frontend.yaml с содержимым вроде:

parameters:
    frontend:
        format:
            datetime: 'yyyy-mm-dd'

В контроллере в значению можно будет обратиться как и для основного файла, в данном случае:

symfony yaml Как получить значения параметров из конфига

В Symfony 4.3

У вас есть ямл-конфиг (напр. config/services.yaml):

parameters:
    locale: 'ru'
    frontend:
        format:
            datetime: 'yyyy-mm'
    datetime: 'yyyy-mm-dd'

Тогда в контроллере в зависимости от уровня вложенности доступ к параметрам можно получить так:

symfony detime normalizer Как десериализовывать дэйттайм и связанные сущности (объект по id)

services:
    # default configuration for services in *this* file
    _defaults:
        autowire: true      # Automatically injects dependencies in your services.
        autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
        bind:
            Symfony\Component\Serializer\SerializerInterface $apiSerializer: '@api.serializer'

   #..........

    Symfony\Component\Serializer\Normalizer\GetSetMethodNormalizer: ~
    Symfony\Component\Serializer\Encoder\JsonEncoder: ~

    app.entity_serializer:

swagger Как сгнерировать HTML страницу c документацией (напр. из yaml)

Предположим, что yaml с информацией о метода вы генерировать уже уже научились и теперь нам надо перегнуть его в html.

Наиболее простым способом является (но не самым быстрым и удобным):

  1. взять сгенерированный yaml
  2. добавить его слева в область кода на https://editor.swagger.io/
  3. и далее из главного меню:
    Generate Client -> html2

    качаем получившийся html и наслаждаемся)

symfony yaml Где хранить секреты: ignore Как игнорировать и не хранить в репозитории важные данные (напр. для сервиса)

Можно ссылать на переменные окружения в ямле, например (пример конфигурации сервиса):

    # explicitly configure the service
    App\Service\VkApiClientService:
        arguments:
            $accountId: '%env(VK_ACCOUNT_ID)%'
            $apiVersion: '%env(VK_API_VERSION)%'
            $accessToken: '%env(VK_ACCESS_TOKEN)%'

а сами переменные задать в .env.local файле (которые держат в gitignore), например для примера выше значения переменных в этом файле можно задать так:

symfony service Передача параметров сервиса в yaml файле: must be null, an instance of..., you should configure its value

Проблема с передачей параметров пользовательскому сервису в sumfony 4:

Invalid service the value of argument "..." of method "...::__construct()" must be null, an instance of Symfony\Component\DependencyInjection\Reference or an instance of Symfony\Component\DependencyInjection\Definition, string given.

Переделал с

Subscribe to RSS - yaml