【发布时间】:2012-06-10 19:02:20
【问题描述】:
我遇到了一个我无法解决的问题。我正在用 php 开发自己的 web 应用程序框架。我知道那里有很多好东西,但我喜欢玩这个,而且我不会将它用于任何敏感的制作内容。
所以问题来了:我有一个抽象基类,其中包含一些我希望所有模型都继承的函数。还有一个抽象的基本控制器,它用基本操作的功能扩展了基本模型。 目前,所有创建的模型都扩展了基本模型,所有控制器都扩展了基本控制器。因此,所有控制器也通过 Base 控制器从 Base 模型继承。 但是现在我无法从模型控制器访问模型属性,因为模型扩展了基本控制器,而且模型扩展基本控制器似乎很奇怪。
我应该如何设置它以便我可以从它们各自的控制器访问模型属性?
谢谢!
【问题讨论】:
-
为什么需要
BaseController扩展BaseModel?你用这种方法解决什么问题? -
BaseModel 定义了 __set 和 __get 等函数。 BaseController 具有诸如获取数据以发送到视图之类的操作。我想所有函数都可以进入一个 BaseClass,但由于 BaseController 中的内容是数据操作,而 BaseClass 中的内容涉及属性,因此将它们分开似乎是合乎逻辑的。
-
我不明白为什么控制器需要魔法 getter 和 setter。此外,您应该避免使用它们。魔术 getter/setter 带有性能损失。其他问题是 - 你将如何强制
$something->email不能 包含无效的电子邮件地址? -
模型中设置了验证条件,控制器检查是否有条件,然后验证数据。如果失败,则中止操作。
标签: php model-view-controller frameworks