我试图扩展我对 php 中关注点分离的知识。我已经练习了一年多,我想并尝试编写自己的 mvc 框架进行练习。现在我再次陷入路由以及如何启动 MVC 三元组的问题。
我有这个uri
我想要映射的,所以我可以确定使用哪个controller
和哪个view
$uri = filter_var(rtrim(filter_input(INPUT_GET, 'url', FILTER_SANITIZE_STRING), '/'), FILTER_SANITIZE_URL);
假设这段代码位于我的bootstrap.php
文件中,作为入口点。
在阅读Tom Butler 的博客时,我意识到很多事情,比如视图应该可以访问模型,但不完全viewmodel
是,使用 a 更好,或者只是一个模型。
我遇到了他 IOC
或他的 Dependency Injection Container并有兴趣尝试它。
那篇文章中缺少的是调度部分,我非常有兴趣学习,我尝试了几件事让它工作但无济于事。
我想实现这一点,因为我想要一次调用controller
can 在其视图中共享依赖关系,例如
$route = $router->getRoutes(); // maybe something that return a Route object with Controller, and View object that has already shared dependecies.
我不知道我对上述段落的理解是否正确以及是否真的可以用于我的路由。如果我错了,请纠正我。
真正的问题是调度员会是什么样子?如果我要使用convention over configuration
先生的东西。汤姆,我应该在我的引导程序中单独声明路线吗?像这些
$dice->addRule('$route_user/edit', $rule);
$dice->addRule('$route_user/delete', $rule);
...
我想知道我是否可以这样做:
$controller->method($params)
在我确定了我需要的视图和控制器之后。