相关疑难解决方法(0)

在PHP项目中,存在哪些模式来存储,访问和组织帮助程序对象?

在基于PHP的面向对象项目中,如何组织和管理辅助对象,如数据库引擎,用户通知,错误处理等?

假设我有一个大的PHP CMS.CMS由各种类别组织.几个例子:

  • 数据库对象
  • 用户管理
  • 用于创建/修改/删除项目的API
  • 消息传递对象,用于向最终用户显示消息
  • 一个上下文处理程序,可以将您带到正确的页面
  • 显示按钮的导航栏类
  • 记录对象
  • 可能,自定义错误处理

等等

我正在处理永恒的问题,如何最好地使这些对象可以访问需要它的系统的每个部分.

很多年前,我的第一个应用程序是拥有一个包含这些类的初始化实例的$ application全局.

global $application;
$application->messageHandler->addMessage("Item successfully inserted");
Run Code Online (Sandbox Code Playgroud)

然后我切换到Singleton模式和工厂函数:

$mh =&factory("messageHandler");
$mh->addMessage("Item successfully inserted");
Run Code Online (Sandbox Code Playgroud)

但我对此也不满意.单元测试和封装对我来说变得越来越重要,在我的理解中,全局/单例背后的逻辑破坏了OOP的基本思想.

那么当然有可能给每个对象提供它需要的辅助对象的许多指针,可能是最干净,资源节省和测试友好的方式,但我对这长期可维护性有疑问.

我研究过的大多数PHP框架都使用单例模式或访问初始化对象的函数.这两种方法都不错,但正如我所说的那样,我对它们都不满意.

我想扩大我对这里存在的常见模式的看法.我找实例,更多的想法和指针向资源从讨论这个长期的,真实世界的视角.

另外,我很想知道这个问题的专门,利基或简单的奇怪方法.

php oop design-patterns

114
推荐指数
5
解决办法
1万
查看次数

标签 统计

design-patterns ×1

oop ×1

php ×1