【问题标题】:PHP Addon support N no of Classes finally extend to one classPHP插件支持N个类最终扩展到一个类
【发布时间】:2012-03-05 05:45:03
【问题描述】:

我正在做一个开源项目。

我的代码应该支持插件功能。

我有 6 到 7 个客户端处理类,最终扩展到一个称为“客户端”的类

class client1{}

class client2 extends client1{}//contacts

class client3 extends client2{}//files

...

class clients extends client9{}//msging

这不是正确的做法。(仍在寻找更好的方法)

这个脚本应该支持插件。假设一个插件的课程很少

class clientUserManagement{}

那么它应该是可控的

class clients{}

每个类处理客户端系统的不同区域。 现在将所有课程扩展到一个课程。通过使用method_exist(),调用需要的功能。

重要

  • 这些类不共享任何属性。
  • 所有与客户端相关的功能都应按类型分组在单独的文件中。
  • 如果所有类最终都控制在一个类名下,则使用 method_exist() 只运行与客户端相关的函数将是安全的。

哪种结构更好,以便支持插件功能。

【问题讨论】:

    标签: php class open-source


    【解决方案1】:

    您应该将事物拆分为封装功能,然后让类相互交互。我还将把基本的东西抽象成更通用的类,以便在别处使用。

    客户

    • 有一个联系人集合 - ClientContactCollection
    • 有一个文件集合 - ClientFileCollection
    • 有一个消息集合 - ClientMessageCollection

    客户联系方式

    • 扩展通用联系人

    客户端文件

    • 扩展通用文件

    客户端消息

    • 扩展通用消息

    【讨论】:

      猜你喜欢
      • 2011-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-11
      • 2020-10-05
      • 1970-01-01
      相关资源
      最近更新 更多