首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转换Silex路由

转换Silex路由
EN

Stack Overflow用户
提问于 2012-10-19 15:19:23
回答 1查看 1.3K关注 0票数 5

我正在尝试使urls在我的Silex应用程序中可翻译。

首先,我尝试覆盖UrlGeneratorRedirectableUrlMatcher,但这并不能真正起作用。

然后,我尝试重写:

代码语言:javascript
复制
$app['route_class'] = 'My\Translatable\Route';

使用如下代码:

代码语言:javascript
复制
class Route extends Silex\Route
{
    public function setPattern($pattern)
    {
        return parent::setPattern(str_replace('admin', 'admin2', $pattern));
    }
}

但我要去找https://gist.github.com/6c60ef4b2d8d6584eaa7

实现这一目标的正确方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2012-10-19 16:36:14

因此,解决方案是扩展RedirectableUrlMatcher并覆盖匹配方法,而不是路由。

Matcher.php

代码语言:javascript
复制
class Matcher extends Silex\RedirectableUrlMatcher
{
    public function match($pathInfo)
    {
        return parent::match(str_replace('/admin', '/', $pathInfo));
    }
}

app.php

代码语言:javascript
复制
$app['url_matcher'] = $app->share(function () use ($app) {
    return new Matcher($app['routes'], $app['request_context']);
});

现在,当我访问silex时,http://domain.com/admin会返回http://domain.com/的内容。希望这就是你需要的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12969238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档