PHP - 全局/实例变量

时间:2013-06-16 18:12:47

标签: php variables symfony instance-variables

我正在为Command上运行的网络应用写Symfony 2Command具有设置结构,必须使用两种设置方法(Class& configure)以及任何用户定义的函数实现为execute

我想要一些可以被所有函数访问的预定义​​变量,类似于Java中实例变量的工作方式。我怎样才能在PHP中实现它?

1 个答案:

答案 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')

这样,只要您有权访问容器,就可以从应用程序中的任何“服务”访问这些参数。您甚至可以仅注入建议的参数,因为注入整个容器在性能方面成本高,并且使测试更加困难。