0

任何人都知道在 SF1.0 中是否可以使用 routing.yml 中的以下“类”条目?我尝试添加它并覆盖一些方法,例如getInstance()and getCurrentRouteName(),但它们从未被调用,即使我手动调用它们。

checkout_landing:
  class: CustomRoute # Can I do this in SF1.0?
  url: /checkout/landing/:k/*
  param: { module: sharedCheckout, action: landing }

我们已经在 SF1.2 中实现了这个“per-route”自定义类配置,但它似乎不适用于 SF1.0。我怀疑对于 SF1.0,我必须在 factory.yml 文件中添加一个自定义类条目,这将影响所有路由。

奖励问题:任何人都能够在 SF1.0 中模拟“extra_parameters_as_query_string”?现在,使用上面的 url 条目,GET 参数被转换为伪子目录,例如一个查询字符串,如:

$params = array('foo' => 'bar', 'pet' => 'dog');

$url = sprintf('@checkout_landing?%s', http_build_query($params));

// Looks like:

http://example.com/checkout/landing/foo/bar/cat/dog

// I need it to look like

http://example.com/checkout/landing?foo=bar&pet=dog
4

2 回答 2

1

正如您所怀疑的,如果不做出您建议的 sfRouting 自定义扩展(在 中factories.yml)的妥协,或者为extra_parameters_as_query_string.

我建议您最简单的选择是升级到 sf1.3 的最新稳定版本 ( sf1.3.11 ) 并使用捆绑sf10CompatPlugin软件来帮助您模拟您在现有应用程序中使用的 sf1.0 功能,同时添加 sf1.您希望从 sf1.3 核心获得的 2+ 个功能。

这样做几乎没有兼容性错误,我自己在几十个项目中使用它,没有任何问题。

于 2013-03-11T22:20:30.447 回答
0

我浏览了已编译的路由缓存代码,果然在 SF1.0 中没有基于 yaml 文件中的“类”条目的自定义对象引用。但是,当我查看 SF1.4 中生成的路由的编译缓存代码时,自定义对象可用。

由于升级不是一种选择,我选择以老式方式手动生成 url。

于 2013-03-14T23:36:31.263 回答