其他類我想使用環境如何獲得比控制器
通常情況下,我可以得到這樣的environemnt在控制器的環境。
$this->container->get(‘kernel’)->getEnvironment();
但是除了控制器之外,我該怎麼做呢?
我的想法是這樣的下面。
製作原班讓環境。
namespace Acme\TopBundle\MyServices;
use Doctrine\ORM\EntityManager;
class MyFunc
{
private $em;
private $env;
public function __construct(EntityManager $em,$env)
{
$this->em = $em;
$this->env = $env;
}
public function getEnv(){
return $this->env;
}
然後在config.yml
services:
myfunc:
class: Acme\TopBundle\MyServices\MyFunc
arguments: [@doctrine.orm.entity_manager,"%kernel.environment%"]
註冊服務的話,例如在管理類我如何能得到環境?
namespace Acme\AdminBundle\Admin;
use Sonata\AdminBundle\Admin\Admin;
use Sonata\AdminBundle\Form\FormMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Show\ShowMapper;
use FOS\UserBundle\Model\UserManagerInterface;
use Symfony\Component\DependencyInjection\ContainerInterface as Container;
use Ivory\GoogleMap\Places\AutocompleteType;
class PlaceCatAdmin extends Admin
{
public function configureListFields(ListMapper $listMapper)
{
// I want to get environment here
避免普通類,比如MYFUNC。如果PlaceCatAdmin真正需要的ENV然後定義一個PlaceCatAdmin服務,並注入它。 – Cerad