我正在为Command
上运行的网络应用写Symfony 2
。 Command具有设置结构,必须使用两种设置方法(Class
& configure
)以及任何用户定义的函数实现为execute
。
我想要一些可以被所有函数访问的预定义变量,类似于Java中实例变量的工作方式。我怎样才能在PHP中实现它?
答案 0 :(得分:2)
这可以使用DependencyInjection组件。 DI就是你要找的!
当你使用symfony2标准扩展ContainerAwareCommand
时 - symfony会自动注入容器......
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
class MyCommand extends ContainerAwareCommand
..在parameters.yml或config.yml
中配置容器参数parameters:
my_parameter: my_value
然后使用
访问您的容器参数 $this->container->getParameter('my_parameter')
这样,只要您有权访问容器,就可以从应用程序中的任何“服务”访问这些参数。您甚至可以仅注入建议的参数,因为注入整个容器在性能方面成本高,并且使测试更加困难。