从我的控制器,我访问应用程序参数(那些/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)
或类似的东西?我应该如何从服务访问我的应用程序参数?
这个问题看起来是一样的,但是我实际上回答了它(来自控制器的参数),我说的是从服务访问.
我有一个小的控制台命令,我想在其中读取一些环境变量,但它似乎没有从.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') …