我需要一個全局變量來讓所有的控制器訪問它。單獨使用symfony 2會話變量在我所有的控制器中。如何爲symfony 2中的所有控制器設置全局變量?
1
A
回答
5
基本上,你需要的是一個DI容器參數。在Symfony 2中,控制器總是處理容器,所以你可以很容易地將這些變量提取到容器參數中。
要做到這一點,你應該先在你parameters.yml
定義參數:
parameters:
your_bundle.global_param: 'Hello world'
然後,這依賴於你需要什麼,你可以不同的訪問。當從Symfony的的基本控制器類繼承的控制器,可以獲取這樣的參數:
<?php
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class MyController extends Controller
{
public function someAction()
{
$var = $this->container->getParameter('your_bundle.global_param');
// $var equals to 'Hello world' now
}
}
在處理會話參數袋,看看Symfony的文檔:http://symfony.com/doc/current/components/http_foundation/sessions.html
1
以防萬一有人需要做Symfony3框架同樣的事情,它使用ContainerInterface而不是容器:
http://api.symfony.com/3.0/Symfony/Component/DependencyInjection/ContainerInterface.html
,你根本就只需要調用getParameter()
(請參閱上面的@kix的示例)如下所示:
$var = $this->getParameter('your_bundle.global_param');
希望這可以幫助有人想在Symfony3中做同樣的事情。
相關問題
- 1. 設置Kohana中所有控制器的全局變量2.3.4
- 2. 如何防止Symfony 2在模板中設置全局變量?
- 3. 如何設置在控制器中的全局變量
- 4. 如何爲Laravel中的所有請求設置全局變量
- 5. 如何重置所有全局變量?
- 6. 爲所有Docker容器設置全局環境變量
- 7. laravel控制器中的全局變量
- 8. 如何爲Symfony2中的所有控制器設置會話變量?
- 9. Ionic 2 typescript/angular2設置全局變量
- 10. 爲Rails中的所有控制器創建一個全局變量
- 11. 量角器設置全局變量
- 12. 取消設置所有變量? (不$ $ _SESSION ['']或全局變量)
- 13. 如何從jQuery設置控制器或全局變量的屬性?
- 14. 如何在extjs4.1中的控制器中聲明全局變量?
- 15. 如何在LLVM IR中控制全局變量的位置?
- 16. symfony中的全局變量(如BD config)
- 17. ngresource設置全局變量
- 18. Codeigniter:設置'全局變量'
- 19. 如何訪問zend框架控制器中的全局變量
- 20. Django:全局設置變量
- 21. 如何爲所有視圖創建全局控制器?
- 22. 如何爲Yii模塊中的所有控制器設置佈局?
- 23. 如何設置全局變量和
- 24. 如何設置全局$ post變量?
- 25. 如何取消設置全局變量。
- 26. 我該如何讓Spring爲所有控制器/動作設置某些變量
- 27. jQuery設置全局變量
- 28. 設置全局變量Codeigniter
- 29. 爲控制器設置變量 - Laravel 4
- 30. 如何獲得所有全局變量
感謝kix有用的信息。 – 2014-09-03 11:02:06