如何在路由 YAML 中使用 PHP 常量
How to use PHP constant in routing YAML
我正在使用 Symfony 3.4
我设法让 PHP 常量为服务工作(如文档中所述)。但我不知道如何让它在路由文件中工作。这是我目前所拥有的。
实体:
namespace CompanyName\AppBundle\Entity\SomeDirectory;
class MyEntity
{
public const STATUS__CREATED = 1;
}
routing.yml:
view_my_entity_with_status_created:
path: /created/
defaults:
_controller: "AppBundle:SomeOtherDirectory/Something:index"
status: !php/const CompanyName\AppBundle\Entity\SomeDirectory\MyEntity::STATUS__CREATED
SomethingController
:
public function indexAction(?int $status = null): Response
{
// ...
}
据我所知,!php/const
被忽略,因为状态始终为空。
根据您的 symfony 版本,这可以通过特定的错字来完成:
https://symfony.com/blog/new-in-symfony-3-2-php-constants-in-yaml-files
3.2之前是不可能的
从 3.2 到 3.4
arguments:
- '@app.other_service'
- !php/const:AppBundle\Entity\BlogPost::MUM_ITEMS
- !php/const:Symfony\Component\HttpKernel\Kernel::VERSION
3.4 之后:
arguments:
- '@app.other_service'
- !php/const AppBundle\Entity\BlogPost::MUM_ITEMS
- !php/const Symfony\Component\HttpKernel\Kernel::VERSION
您的路由文件:
# config/routes.yaml
blog_list:
path: /blog/{page}
controller: AppBundle:SomeOtherDirectory/Something:index
defaults:
status: !php/const CompanyName\AppBundle\Entity\SomeDirectory\MyEntity::STATUS__CREATED
你不能在 Symfony 3.4 中使用。
在 routing 中使用 !php/const
YAML 配置文件直到 Symfony 4.1 才启用。
虽然该功能已添加到 3.2 中的 YamlFileLoader
,但默认情况下仅对依赖注入组件启用,而不对路由组件启用。
This 是合并功能的时间。
我正在使用 Symfony 3.4
我设法让 PHP 常量为服务工作(如文档中所述)。但我不知道如何让它在路由文件中工作。这是我目前所拥有的。
实体:
namespace CompanyName\AppBundle\Entity\SomeDirectory;
class MyEntity
{
public const STATUS__CREATED = 1;
}
routing.yml:
view_my_entity_with_status_created:
path: /created/
defaults:
_controller: "AppBundle:SomeOtherDirectory/Something:index"
status: !php/const CompanyName\AppBundle\Entity\SomeDirectory\MyEntity::STATUS__CREATED
SomethingController
:
public function indexAction(?int $status = null): Response
{
// ...
}
据我所知,!php/const
被忽略,因为状态始终为空。
根据您的 symfony 版本,这可以通过特定的错字来完成:
https://symfony.com/blog/new-in-symfony-3-2-php-constants-in-yaml-files
3.2之前是不可能的 从 3.2 到 3.4
arguments:
- '@app.other_service'
- !php/const:AppBundle\Entity\BlogPost::MUM_ITEMS
- !php/const:Symfony\Component\HttpKernel\Kernel::VERSION
3.4 之后:
arguments:
- '@app.other_service'
- !php/const AppBundle\Entity\BlogPost::MUM_ITEMS
- !php/const Symfony\Component\HttpKernel\Kernel::VERSION
您的路由文件:
# config/routes.yaml
blog_list:
path: /blog/{page}
controller: AppBundle:SomeOtherDirectory/Something:index
defaults:
status: !php/const CompanyName\AppBundle\Entity\SomeDirectory\MyEntity::STATUS__CREATED
你不能在 Symfony 3.4 中使用。
在 routing 中使用 !php/const
YAML 配置文件直到 Symfony 4.1 才启用。
虽然该功能已添加到 3.2 中的 YamlFileLoader
,但默认情况下仅对依赖注入组件启用,而不对路由组件启用。
This 是合并功能的时间。