2012-08-01 77 views
3

在阅读了Stack上一些公平的帖子之后,还有一些材料在线推荐给我,MVC模式很容易解释,所以请不要用另一种解释来回答。谢谢!PHP MVC - 从模型或控制器调用视图函数?

我现在正在设计我自己的PHP MVC,并有两种可能的方式来推进视图。

但是,首先,我的控制器目前很愚蠢,不包含任何类,只需从合适的模型中调用公共方法,并渲染适当的视图。

必要时包含视图,所以很自然地,对象可以通过构造函数以及所有方法(包括删除/更新等)使用。

我的第一选择是让视图

foreach($object->fetchData() as $data) 

然后通过循环的结果用这样的数据。但是有些人不同意这一点,并且认为应该排除这种方法。相反,它已建议我给你这个在构造函数中的变量,然后在

//constructor 
$fetched_data = $object->fetchData() 

// view 
foreach($featched_data as $data) 

我不喜欢这种非常多,因为它接缝混乱和不必要的视图中使用这个变量。

随着我所有的关键方法都被提供给视图,这可能被认为是一个问题吗?

所以这里的问题。我是否保持原样,并在MODEL中创建用于呈现数据的新方法(如上所述),或者我可以在构造函数中创建一个类,将模型扩展到该类中,保护模型中的关键函数,然后创建我的只读CONSTRCUTOR中的公共方法?

谢谢!

+1

投票迁移到[http://programmers.stackexchange.com/](http://programmers.stackexchange.com/),因为它是关于软件设计概念,而不是解决特定的编码问题。 – 2012-08-02 12:50:33

回答

0

我会在构造函数中创建一个类。不仅可以扩展模型是一种更安全的方法,还可以最大限度地减少视图中函数的调用。假设你有几个视图,访问构造函数数据比每次在每个视图中调用方法函数要容易得多。

您可以向您的控制器添加类,这些类将调用方法函数并将数据直接传递到视图中,而不是聚集构造函数或引导程序。