Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Symfony2中的自定义路由加载器中获取环境?_Php_Symfony_Symfony 2.4 - Fatal编程技术网

Php 如何在Symfony2中的自定义路由加载器中获取环境?

Php 如何在Symfony2中的自定义路由加载器中获取环境?,php,symfony,symfony-2.4,Php,Symfony,Symfony 2.4,我为我的包创建了一个自定义加载程序,目的是为每个环境加载不同的路由。我的loader类如下所示: class ApiRouteLoader extends Loader { public function load($resource, $type = null) { $collection = new RouteCollection(); $resource = '@ApiBundle/Resources/config/routing.yml'

我为我的包创建了一个自定义加载程序,目的是为每个环境加载不同的路由。我的loader类如下所示:

class ApiRouteLoader extends Loader
{
    public function load($resource, $type = null)
    {
        $collection = new RouteCollection();

        $resource = '@ApiBundle/Resources/config/routing.yml';
        $type = 'yaml';

        $importedRoutes = $this->import($resource, $type);

        $collection->addCollection($importedRoutes);

        return $collection;
    }

    public function supports($resource, $type = null)
    {
        return $type === 'extra';
    }
}
我需要知道的是,如何获得要在“load”函数中使用的环境名称?我似乎无法找到获取内核的方法(这会有所帮助)


有人能帮忙吗?谢谢

您可以将
kernel.environment
容器参数注入自定义路由加载器

顺便说一句,为什么要创建一个路由加载器,它只从特定路径加载路由文件?您可以简单地将该路径导入
routing.yml
文件:

api_routes:
    resource: "@ApiBundle/Resources/config/routing.yml"

您可以将
kernel.environment
容器参数注入自定义路由加载程序

顺便说一句,为什么要创建一个路由加载器,它只从特定路径加载路由文件?您可以简单地将该路径导入
routing.yml
文件:

api_routes:
    resource: "@ApiBundle/Resources/config/routing.yml"

您可以将
kernel.environment
容器参数注入自定义路由加载程序

顺便说一句,为什么要创建一个路由加载器,它只从特定路径加载路由文件?您可以简单地将该路径导入
routing.yml
文件:

api_routes:
    resource: "@ApiBundle/Resources/config/routing.yml"

您可以将
kernel.environment
容器参数注入自定义路由加载程序

顺便说一句,为什么要创建一个路由加载器,它只从特定路径加载路由文件?您可以简单地将该路径导入
routing.yml
文件:

api_routes:
    resource: "@ApiBundle/Resources/config/routing.yml"

注入参数是一个非常基本的操作。您可能需要花一些时间来研究服务容器

无论如何:

// services.yml
services:
    acme_demo.routing_loader:
        class: Acme\DemoBundle\Routing\ApiRouteLoader
        arguments: ['%kernel.environment%']
        tags:
            - { name: routing.loader }

class ApiRouteLoader extends Loader
{
    protected $env;

    public function __construct($env)
    {
        $this->env = $env;
    }
只是一个快速更新,因为最近有人投票支持这个。对于依赖于环境变量的Symfony的最新版本,请使用以下命令注入当前环境:

Acme\DemoBundle\Routing\ApiRouteLoader:
    $env:  '%env(APP_ENV)%'

注入参数是一个非常基本的操作。您可能需要花一些时间来研究服务容器

无论如何:

// services.yml
services:
    acme_demo.routing_loader:
        class: Acme\DemoBundle\Routing\ApiRouteLoader
        arguments: ['%kernel.environment%']
        tags:
            - { name: routing.loader }

class ApiRouteLoader extends Loader
{
    protected $env;

    public function __construct($env)
    {
        $this->env = $env;
    }
只是一个快速更新,因为最近有人投票支持这个。对于依赖于环境变量的Symfony的最新版本,请使用以下命令注入当前环境:

Acme\DemoBundle\Routing\ApiRouteLoader:
    $env:  '%env(APP_ENV)%'

注入参数是一个非常基本的操作。您可能需要花一些时间来研究服务容器

无论如何:

// services.yml
services:
    acme_demo.routing_loader:
        class: Acme\DemoBundle\Routing\ApiRouteLoader
        arguments: ['%kernel.environment%']
        tags:
            - { name: routing.loader }

class ApiRouteLoader extends Loader
{
    protected $env;

    public function __construct($env)
    {
        $this->env = $env;
    }
只是一个快速更新,因为最近有人投票支持这个。对于依赖于环境变量的Symfony的最新版本,请使用以下命令注入当前环境:

Acme\DemoBundle\Routing\ApiRouteLoader:
    $env:  '%env(APP_ENV)%'

注入参数是一个非常基本的操作。您可能需要花一些时间来研究服务容器

无论如何:

// services.yml
services:
    acme_demo.routing_loader:
        class: Acme\DemoBundle\Routing\ApiRouteLoader
        arguments: ['%kernel.environment%']
        tags:
            - { name: routing.loader }

class ApiRouteLoader extends Loader
{
    protected $env;

    public function __construct($env)
    {
        $this->env = $env;
    }
只是一个快速更新,因为最近有人投票支持这个。对于依赖于环境变量的Symfony的最新版本,请使用以下命令注入当前环境:

Acme\DemoBundle\Routing\ApiRouteLoader:
    $env:  '%env(APP_ENV)%'

当你说Environment时,你实际上是什么意思?当你说Environment时,你实际上是什么意思?当你说Environment时,你实际上是什么意思?嗨,沃特,谢谢你的回答。您能给我举个例子,说明如何将“kernel.environment”注入我的加载程序吗?我不会将yml作为资源添加到每个环境中定义的各种路由中,因为我最终将应用一些转换和/或来自不同来源的混合路由。谢谢你好,沃特,谢谢你的回答。您能给我举个例子,说明如何将“kernel.environment”注入我的加载程序吗?我不会将yml作为资源添加到每个环境中定义的各种路由中,因为我最终将应用一些转换和/或来自不同来源的混合路由。谢谢你好,沃特,谢谢你的回答。您能给我举个例子,说明如何将“kernel.environment”注入我的加载程序吗?我不会将yml作为资源添加到每个环境中定义的各种路由中,因为我最终将应用一些转换和/或来自不同来源的混合路由。谢谢你好,沃特,谢谢你的回答。您能给我举个例子,说明如何将“kernel.environment”注入我的加载程序吗?我不会将yml作为资源添加到每个环境中定义的各种路由中,因为我最终将应用一些转换和/或来自不同来源的混合路由。谢谢