【发布时间】:2018-08-15 14:46:32
【问题描述】:
我正在编写自己的项目并想使用一些 Symfony 组件。 我正在为我的项目实施 Sf 路由器,但我不明白如何在路由器中调用控制器。
例如,我有一门课:
<?php
namespace App;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\Routing\Loader\YamlFileLoader;
use Symfony\Component\Routing\Matcher\UrlMatcher;
use Symfony\Component\Routing\RequestContext;
use Symfony\Component\HttpFoundation as Http;
use Symfony\Component\Routing\RouteCollection;
use Symfony\Component\Routing\Route;
class AppRouter
{
public function match() {
$context = new RequestContext();
$request = Http\Request::createFromGlobals();
$context->fromRequest($request);
$matcher = new UrlMatcher($this->getRoutes(), $context);
return $matcher->matchRequest($request);
}
private function getRoutes() {
$fileLocator = new FileLocator([__DIR__ . '/../config']);
$loader = new YamlFileLoader($fileLocator);
$routes = $loader->load('routes.yml');
return $routes;
}
}
我的routes.yml 中有一些已定义的路由,所以如果我尝试去注册路由match() 方法返回给我一个如下所示的数组:
[
"_controller" => "Controller\\MyController::testAction"
"_route" => "test"
]
那么,我现在如何调用控制器以获取匹配的 URL?我已阅读文档,但不明白我应该如何执行此操作。
【问题讨论】:
-
您需要养成accepting answers 的习惯,它可以帮助您解决问题。您将获得积分,并鼓励其他人帮助您。
-
顺便说一句 - 不要在这里对其他人无礼,就像您在删除的问题中一样,除非您想获得一次被禁营地的旅行。
-
"if you what just to spam in comments just f*ck off pls"- 我真的不应该这样,你完全不合时宜。这来自您的now deleted post。你可以把这些话放在外屋里。你认为“请”是“礼貌”吗?哇。 -
并停止浸泡每个人并成为社区的好成员。你来这里是为了解决你的小问题然后离开;有钱。
标签: symfony