我正在尝试获取命令上的基本 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();
}
如果您已经安装了 dotenv 组件,那么您可以在 .env 文件中设置新变量
BASE_URL = 'your_url' //need http://localhost/ or https://production_url
如果没有,你可以将其放入parameters.yml,这也是一个很好的做法。
然后就可以了(这取决于你拥有的女巫版本的科幻小说)
$base_url = $this->getContainer()->getParameter('translator')
不要忘记从 ContainerAwareCommand 而不是 Command 扩展命令来访问容器