Добавить собственный конфиг (php-файл) для Symfony 5.2
У меня проблемы с включением пользовательского файла PHP с некоторыми переменными PHP в мое приложение Symfony. Этот файл находится на сервере Linux по пути вида "/etc/project/project.php". Я хочу использовать эти переменные во всем проекте, как параметры service.yaml. Я попытался решить эту проблему и установил пакет "symfony / config". Затем я вставляю новый ресурс в свой service.yaml:
imports:
- { resource: '/etc/project/project.php' }
Затем я вставил код с этой страницы в src / kernel.php и настроил его:
$configDirectories = ['/etc/project'];
$fileLocator = new FileLocator($configDirectories);
$loaderResolver = new LoaderResolver([new CustomConfigLoader($fileLocator)]);
$delegatingLoader = new DelegatingLoader($loaderResolver);
$delegatingLoader->import('/etc/project/project.php');
И последнее, но не менее важное: я создал свой собственный загрузчик файлов следующим образом (только чтобы показать свой ресурс):
<?php
namespace App\Config;
use Symfony\Component\Config\Loader\FileLoader;
use Symfony\Component\Yaml\Yaml;
class CustomConfigLoader extends FileLoader
{
public function load($resource, $type = null) {
dump($resource);die;
$configValues = file_get_contents($resource);
// ... handle the config values
// maybe import some other resource:
// $this->import('extra_users.yaml');
}
public function supports($resource, $type = null)
{
return is_string($resource) && 'yaml' === pathinfo(
$resource,
PATHINFO_EXTENSION
);
}
}
Я планировал собрать все параметры из файла PHP и установить как глобальные параметры Symfony.
Но в итоге получаю такую ошибку:
Cannot load resource "/etc/project/project.php".
Может быть, расширение Symfony / config не поддерживает пользовательские файлы PHP ?! Или я неправильно использую?
PS: Я попытался скопировать project.php в папку Symfony-root, но с тем же результатом.