在路由器,控制器和视图之间共享数据

时间:2016-05-31 12:29:21

标签: php model-view-controller

好的,路由/控制器/视图的一些(可能很多)概念我有困难。

我使用https://github.com/mrjgreen/phroute作为路由器,并创建一个这样的路由:

$router->get([‘/users/view/{id}', 'viewUser’], ['controllers\UserController','view'])

现在在UserController视图函数中,我有$ id可用并将其传递给视图。在控制器和视图中,我也需要访问其他对象。我应该在路由器级别创建这些对象并将它们传递给控制器​​,我应该在控制器级别创建这些对象并将它们传递给视图还是应该做一些完全不同的事情?我想全球变量的使用是不行的。

我需要很多控制器中的那些对象,并且在路由器中创建它们似乎只是一次启动它们而不是在每个控制器中重复它。

这似乎工作得很好,但看起来不太正确

$objects_I_need = [
    'object1' => new Object,
    'object2' => new Object
];

$router->get(['/users/view/{id}', 'viewUser'], function ($id) use ($object_I_need)
{
    return (new Controller\UserController()->view($id, $objects_I_need);
});

或许所描述的工厂here是要走的路?

提前感谢输入

0 个答案:

没有答案