这有点难以解释我的意思,我不知道如何命名这个模式,所以我将用一个例子来解释:
First.php:
<?php
class MyClass
{
public $Meaning = 42;
public function MyFun
{
include("Second.php");
}
}
?>
Second.php:
<div><?= $this->Meaning ?></div>
在Second.php中,我们依赖于MyClass
中的方法包含,并使用$this
变量。不知怎么的,这感觉……对我来说不自然。也许是因为我的c#背景,但我强烈觉得函数不能跨文件。类可以,但函数不行(OTOH跨类正是PHP not所允许的)。
所以…我这样做是不合理的吗,还是这真的被认为是一种不好的做法?或者在视图逻辑(比如MVC)中,这甚至是标准的方法?
如果没有这个类,你的View将无法使用;但是,除此之外,我不认为这样做是不好的做法。
据我所知,这正是一些框架所做的——比如Zend框架。
我不认为这是一个不好的做法。它看起来确实有点不寻常,但也有好处。在我看来,主要的一点是你可以访问视图的任何成员函数(它们可能是某种帮助器),并以多态方式进行。
我不知道多态能力是否有多大意义(会有视图的层次结构吗?)——但如果有,这是一个很好的语法来访问它。
另外,还有second.php
中的代码发出的小消息:"这个是视图"。