相关疑难解决方法(0)

如何从服务访问应用程序参数?

从我的控制器,我访问应用程序参数(那些/app/config)

$this->container->getParameter('my_param')
Run Code Online (Sandbox Code Playgroud)

但我不知道如何从服务访问它(我想我的服务类不应该扩展Symfony\Bundle\FrameworkBundle\Controller\Controller).

我应该将所需参数映射到我的服务注册中,如下所示:

#src/Me/MyBundle/Service/my_service/service.yml
parameters:
    my_param1: %my_param1%
    my_param2: %my_param2%
    my_param3: %my_param3%
Run Code Online (Sandbox Code Playgroud)

或类似的东西?我应该如何从服务访问我的应用程序参数?


这个问题看起来是一样的,但是我实际上回答了它(来自控制器的参数),我说的是从服务访问.

php yaml symfony

70
推荐指数
6
解决办法
6万
查看次数

Symfony 4 控制台命令不读取环境变量

我有一个小的控制台命令,我想在其中读取一些环境变量,但它似乎没有从.env控制台中的文件或服务器配置中读取变量(php 文件有效)

代码

protected function execute(InputInterface $input, OutputInterface $output)
{
    $io = new SymfonyStyle($input, $output);
    $debug = $input->getArgument('debug') === 'y' ? true : false;
    $this->project = $input->getArgument('project');

    $start = new DateTime();

    $debug ? $io->text('<fg=green>Starting upload</>') : null;
    dump(getenv('APP_ENV'));
    dump(getenv('MAILER_USERNAME'));
    die;
    ...
}
Run Code Online (Sandbox Code Playgroud)

要测试的命令

php bin/console app:make-backup

输出:

Starting upload
false
false
Run Code Online (Sandbox Code Playgroud)

php bin/console app:make-backup --env=prod

输出:

Starting upload
"prod"
false
Run Code Online (Sandbox Code Playgroud)

php bin/console app:make-backup --env=dev

输出:

Starting upload
"dev"
false
Run Code Online (Sandbox Code Playgroud)

.env 文件

APP_ENV=dev
MAILER_USERNAME=info@xxx.com
Run Code Online (Sandbox Code Playgroud)

我不明白我哪里做错了?nginx 和 apache 服务器上存在问题,但getenv('MAILER_USERNAME') …

php symfony phpdotenv

2
推荐指数
1
解决办法
6949
查看次数

标签 统计

php ×2

symfony ×2

phpdotenv ×1

yaml ×1