在捆绑之前修改请求

时间:2016-09-22 12:28:27

标签: php symfony

我有一个包含许多页面的symfony网站,如

/page1
/page2
/page3/something/
etc...

在这些页面中,我有很多时间来说"漂亮"

我希望页面/dummy/page1返回的内容与/page1完全相同,但会替换所有出现的单词"漂亮"用#34; beautiful"。 其他页面也是如此:/dummy/url应始终与/url完全相同,但替换"漂亮"通过"美丽"

我找到了一个简单的方法:在app.php中,我在一开始就添加了:

if (strpos($_SERVER['REQUEST_URI'], '/dummy') !== false) {
      $_SERVER['REQUEST_URI'] = str_replace('/dummy','',$_SERVER['REQUEST_URI']);
      ob_start(replaceHTML($final_html))
}

然后简单地

public function replaceHTML($html) {
     return str_replace('pretty','beautiful',$html);
}

这完美无缺。

现在我需要将它作为捆绑包以便能够共享它。

问题是捆绑包似乎太迟了,这意味着在处理完请求之后,因此更改$_SERVER['REQUEST_URI']此时没有做任何事情,并且所有/ dummy / url请求都返回404

你知道如何使用捆绑包重现这个吗?

1 个答案:

答案 0 :(得分:0)

尝试为该页面创建2条路线:

/**
 * @Route("/dummy/page1", name="route_dummy_1")
 * @Route("/page1", name="route_1")
 */
public function indexAction(Request $request)
{
 ...
}