的路由。yml配置文件
的routing.yml
配置文件允许定义路由。
主要的routing.yml
应用程序的配置文件可以在应用程序/ APP_NAME / config /
目录中。
的routing.yml
配置文件包含命名路由定义列表:
ROUTE_1: #定义路由1 ROUTE_2: #定义路由2 #…
当请求进入时,路由系统尝试将路由与传入URL匹配。匹配的第一个路由获胜,因此在routing.yml
配置文件很重要。
当routing.yml
读取配置文件,将每条路由转换为类的对象类
:
ROUTE_NAME: class: CLASS_NAME #配置如果路由
的类
名称应扩展sfRoute
基类。如果未提供,则sfRoute
基类用作备用。
请注意
的routing.yml
配置文件缓存为PHP文件;进程自动地由sfRoutingConfigHandler
类.
路线类
路由配置
的routing.yml
配置文件支持多个设置来进一步配置路由。控件使用这些设置sfRoutingConfigHandler
类将每个路由转换为对象。
类
默认的:sfRoute
(或sfRouteCollection
如果类型
是集合
,见下文)
的类
设置允许更改路由要使用的路由类。
url
默认的:/
的url
setting是必须与当前请求使用的路由的传入URL匹配的模式。
该模式由分段组成:
- 变量(前缀为a的单词)结肠
:
) - 常量
- 通配符(
*
)以匹配键/值对序列
每个段必须由一个预先定义的分隔符(/
或.
默认情况下).
参数个数
默认的:空数组
的参数个数
Setting定义了一个与路由相关的参数数组。类中包含的变量的默认值url
,或与此路由相关的任何其他变量。
参数
默认的:空数组
该设置等价于参数个数
设置。
选项
默认的:空数组
的选项
Setting是传递给路由对象以进一步定制其行为的选项数组。下面几节描述每个路由类的可用选项。
需求
默认的:空数组
的需求
属性必须满足的需求数组url
变量。键是url变量,值是变量值必须匹配的正则表达式。
提示
正则表达式将包含在另一个正则表达式中,因此,您不需要在分隔符之间对它们进行包装,也不需要将它们绑定^
或$
匹配整个值。
类型
默认的:零
如果设置为集合
时,该路由将被读取为路由集合。
请注意
此设置将自动设置为集合
配置处理程序类类
名称包含单词集合
.这意味着在大多数情况下,您不需要使用此设置。
sfRoute
所有路由类都扩展了sfRoute
基类,它提供配置路由所需的设置。
sfRequestRoute
sf_method
默认的:得到
的sf_method
选项将用于需求
数组中。它在路由匹配过程中强制执行HTTP请求。
sfObjectRoute
的所有下列选项sfObjectRoute
必须在选项
设置routing.yml
配置文件。
模型
的模型
选项是必选项,是要与当前路由关联的模型类的名称。
类型
的类型
选项是强制性的,是你想为你的模型的路线类型;两者都有可能对象
或列表
.类型路由对象
表示单个模型对象和类型的路由列表
表示模型对象的集合。
方法
的方法
选项是必填项。它是调用模型类来检索与此路由相关的对象的方法。这必须是一个静态方法。调用该方法时,将解析路由的参数作为参数。
allow_empty
默认的:真正的
如果allow_empty
选项设置为假
时,如果调用没有返回对象,则路由将抛出404异常模型
方法
.
转换
默认的:toParams
的转换
Option是一个用于将模型对象转换为适合基于该模型对象生成路由的参数数组的方法。它必须返回一个数组,其中至少包含路由模式所需的参数(由url
设置)。
sfPropelRoute
method_for_criteria
默认的:doSelect
集合,doSelectOne
对于单个对象
的method_for_criteria
option定义了在模型Peer类上调用的方法,以检索与当前请求相关的对象。调用该方法时,将解析路由的参数作为参数。
sfDoctrineRoute
method_for_query
默认的:没有
的method_for_query
选项定义了要在模型上调用的方法,以检索与当前请求相关的对象。当前查询对象作为参数传递。
如果未设置该选项,则仅使用execute ()
方法。
sfRouteCollection
的sfRouteCollection
基类表示路由的集合。
sfObjectRouteCollection
模型
的模型
选项是必选项,是要与当前路由关联的模型类的名称。
行动
默认的:假
的行动
选项定义路由的授权操作数组。动作必须是所有可用动作的子集:列表
,新
,创建
,编辑
,更新
,删除
,显示
.
如果该选项设置为假
,则所有操作都将可用,除了显示
如果是with_show
选项设置为假
(见下文)。
模块
默认的:路由名
的模块
选项定义模块名称。
prefix_path
默认的:/
后面跟着路由名
的prefix_path
选项定义了一个前缀,用于前缀allurl
模式。它可以是任何有效的模式,可以包含变量和几个段。
列
默认的:id
的列
选项定义要用作模型对象唯一标识符的模型列。
with_show
默认的:真正的
的with_show
选项时使用行动
选项设置为假
以确定是否显示
操作必须包含在路由的授权操作列表中。
segment_names
默认的: array('edit' => 'edit', 'new' => 'new'),
的segment_names
类中使用的词url
的模式编辑
而且新
行动。
model_methods
默认的:空数组
的model_methods
选项定义了从模型中检索对象所调用的方法(参见方法
选择sfObjectRoute
).这实际上是一个定义列表
和对象
方法:
model_methods: list: getObjects object: getObject
需求
默认的:\ d +
为列
的需求
选项定义了应用于路由变量的需求数组。
with_wildcard_routes
默认的:假
的with_wildcard_routes
Option允许通过两个通配符路由访问任何操作:一个用于单个对象,另一个用于对象集合。
route_class
默认的:sfObjectRoute
的route_class
选项可以覆盖集合使用的默认路由对象。
collection_actions
默认的:空数组
的collection_actions
Options定义了可用于收集路由的附加操作数组。键是动作名称,值是该动作的有效方法:
文章:options: collection_actions: {filter: post, filterBis: [post, get]} #…
object_actions
默认的:空数组
的object_actions
Options定义了可用于对象路由的附加操作的关联数组。键是动作名称,值是该动作的有效方法:
文章:options: object_actions: {publish: put, publishBis: [post, put]} #…
sfPropelRouteCollection
的sfPropelRouteCollection
路由类扩展了sfRouteCollection
,并将默认路由类更改为sfPropelRoute
(见route_class
选择上图)。
sfDoctrineRouteCollection
的sfDoctrineRouteCollection
路由类扩展了sfRouteCollection
,并将默认路由类更改为sfDoctrineRoute
(见route_class
选择上图)。
本作品在创作共用署名相似共享3.0未移植许可许可下获得许可。