0

我有一个问题,我无法解决问题。我正在用 php 开发自己的 web 应用程序框架。我知道那里有很多好东西,但我喜欢玩这个,我不会将它用于任何敏感的制作内容。

所以问题来了:我有一个抽象基类,其中包含一些我希望所有模型都继承的函数。还有一个抽象的基本控制器,它用基本操作的功能扩展了基本模型。目前,所有创建的模型都扩展了基本模型,所有控制器都扩展了基本控制器。因此,所有控制器也通过 Base 控制器从 Base 模型继承。但是现在我无法从模型控制器访问模型属性,因为模型扩展了基本控制器,而且模型扩展基本控制器似乎很奇怪。

我应该如何设置它以便我可以从它们各自的控制器访问模型属性?

谢谢!

4

1 回答 1

2
  • 首先,在我看来,您对什么是 Model .. 以及 .. 的理解很糟糕。也许这个评论会有所帮助。

  • 另一件事,这似乎是错误的,整个画面是这样的:

    因此,所有控制器也通过 Base 控制器从 Base 模型继承。

    您应该避免深度继承。由于ControllerWhat-You-Call-Models的职责完全不同,所以两者都不应该继承任何东西。你必须明白那extends是 的同义词is-a

    如果你写class Admin extends User,那么这意味着每个管理员都是用户。这也意味着,当你写的时候class User extends Table,它是错误的(.. 有点侮辱)。

  • Controller不应该从what-you-call-model中读取属性(假设您没有实现 MVP模式)。该部分应该由View完成,因为那将是负责表示逻辑的部分。

    为此,您所称的模型应该具有特定的吸气剂。你永远不应该直接暴露属性(比如设置它们public),因为那样你会破坏封装。

.. 我的 3 美分

于 2012-06-10T19:28:15.820 回答