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

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

    # 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), например для примера выше значения переменных в этом файле можно задать так:

VK_ACCOUNT_ID=12345928
VK_API_VERSION=5.95
VK_ACCESS_TOKEN=5b4e5ba716cb75bdad68345

Подробности: https://symfony.com/doc/current/configur...

Например, можно внедрить в конструктор:

//src/Service/VkApiClientService.php

namespace App\Service;

//...

class VkApiClientService
{
    public function __construct(
        private int $accountId,
        private float $apiVersion,
        private string $accessToken
    )
    {
        
    }

    public function showInfo()
    {
        $clientId = $this->accountId;

        //...
    }

    //...
}

В конструкторе можно назначить переменным значения по умолчанию, которые будут задействованы, если не переопределены в файле config/services.yaml.
Пример содержимого файла конфигурации для класса VkApiClientService:

//config/services.yaml

parameters:

services:
    _defaults:
        autowire: true
        autoconfigure: true

    App\:
        resource: '../src/'

        //...

    App\Service\VkApiClientService:
        arguments:
            $accountId: '%env(VK_ACCOUNT_ID)%'
            $apiVersion: '%env(VK_API_VERSION)%'
            $accessToken: '%env(VK_ACCESS_TOKEN)%'