在 symfony 3.4 命令上获取基本 url

问题描述 投票:0回答:1

我正在尝试获取命令上的基本 url 以获取本地本地主机和生产上的生产 url,但我发现的所有 exmaples 都使用 reuqest 对象,但我 命令中没有它:

class PasswordExpirationCommand extends Command
{
    private $ms;
    private $translator;
    private $em;

    public function __construct(MailService $ms, TranslatorInterface $translator, EntityManagerInterface $em)
    {
        parent::__construct();
        $this->ms = $ms;
        $this->translator = $translator;
        $this->em = $em;
    }

    protected function configure()
    {
        $this
            ->setName('app:password:expiration')
            ->setDescription('Expire 3 months old password');
    }

    /**
     *
     *  
     *
     * @param InputInterface $input
     * @param OutputInterface $output
     * @return int|void|null
     */
    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $base_url =....//need http://localhost/ or https://production_url 
        //reminders
        $this->passwordExpirationReminder();
    }
php symfony symfony4
1个回答
0
投票

如果您已经安装了 dotenv 组件,那么您可以在 .env 文件中设置新变量

BASE_URL = 'your_url' //need http://localhost/ or https://production_url

如果没有,你可以将其放入parameters.yml,这也是一个很好的做法。

然后就可以了(这取决于你拥有的女巫版本的科幻小说)

 $base_url = $this->getContainer()->getParameter('translator')

不要忘记从 ContainerAwareCommand 而不是 Command 扩展命令来访问容器

© www.soinside.com 2019 - 2024. All rights reserved.