我目前正在创建View
并将其注入请求的Controller
然后我
$this->view->load('sometemplate');
然后在我的startup.php文件的末尾我做
$view->render();
我现在正在将我的应用程序更改为每View
Controller
,但我能想到的唯一方法就是在View
中实例化Controller
每个Controller
都有一个唯一的View
个实例。
修改
如果我有Controllers\Products
,我希望它有Views\Products
。最简单的方法是在Views\Products
内实例化Controllers\Products
,因为当我在Controller
时,我会确切地知道我需要View
但我不喜欢在View
中实例化Controller
的想法。
我更希望在Views\Products
之外创建Controllers\Products
并将其注入。
我的Router::route($uri)
会返回包含这些属性的Route
private $directory;
private $controller; // Just controller name, not an instance
private $method;
private $params = array();
我在想,如果我的Views
和Controllers
具有相同的名称,我可以使用$controller
中的Route
属性来实例化正确的View
然后将其注入正确的Controller
。这会是一个好方法吗?
解决此问题的最佳方法是什么?
感谢。
答案 0 :(得分:-1)
如果您正在谈论MVC,那么我会说您必须在控制器类中执行操作。 根据惯例,您的视图类应与您的操作具有相同的名称。