Php 如何在Symfony2中的自定义路由加载器中获取环境?
我为我的包创建了一个自定义加载程序,目的是为每个环境加载不同的路由。我的loader类如下所示: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'
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作为资源添加到每个环境中定义的各种路由中,因为我最终将应用一些转换和/或来自不同来源的混合路由。谢谢