gpt4 book ai didi

symfony - 使用 Silex 自定义路由配置

转载 作者:行者123 更新时间:2023-12-04 16:40:13 26 4
gpt4 key购买 nike

我知道 Silex 方法的基础是将所有应用程序逻辑放在一个文件中。但是我的应用程序可能有超过 20 个 Controller 。所以我想要一个方便的 map 来管理路由器。

我的问题是寻找能够将路由器制作成单独文件的解决方案。在最好的情况下,文件必须是 YAML 类型:

# config/routing.yml

_home:
pattern: /
defaults: { _controller: MyProject\Controller\MyController::index }

但是原生也是一个很好的例子(对我来说):
$routes = new RouteCollection();

$routes->add(
'home',
new Route('/', array('controller' => 'MyProject\Controller\MyController::index')
));

return $routes;

第二种情况的问题是我必须使用 匹配()每个路由规则的功能。这一点都不清楚。

有哪些方法可以解决这个问题?条件是我想使用现有的 API Silex 或 Symfony2 的组件。

小记:

我不使用 ControllerProvider接口(interface)对于我的 Controller 类。这是一个独立的类。

最佳答案

首先,Silex 的基础不是你把所有东西都放在一个文件里。 Silex 的基础是您创建自己的“框架”,即您自己组织应用程序的方式。

"Use silex if you are comfortable with making all of your own architecture decisions and full stack Symfony2 if not." -- Dustin Whittle



this blogpost 中阅读更多相关信息,由 Silex 的创建者创建。

如何解决您的问题

您基本上想要的是解析 Yaml 文件并获取 patterndefaults._controller解析的每个路由的设置。

要解析 Yaml 文件,可以使用 the Yaml Component Symfony2。你得到一个数组,你可以用它来添加到 Silex 的路由:

// parse the yaml file
$routes = ...;
$app = new Silex\Application();

foreach ($routes as $route) {
$app->match($route['pattern'], $route['defaults']['_controller']);
}

// ...
$app->run();

关于symfony - 使用 Silex 自定义路由配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14676257/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com