在类似CMS的应用程序中,单例模式是不可避免的吗?

时间:2015-03-15 18:19:29

标签: php content-management-system singleton dependency-management

在CMS应用程序(如WordPress)中,CMS仅加载插件,然后插件从CMS请求其依赖项(如数据库,配置等),其作用类似于注册表。

我还没有看到用PHP编写的CMS应用程序没有使用这种模式(或反模式)。它们都以某种方式使用注册表,例如:

craft()->request->getPost('id')  (craft)

global $wpdb;
$wpdb->insert($table, $data);   (wp)

$db = Database::getConnection();  (drupal)

$db = JFactory::getDbo();  (joomla)

因此,对于这种类型的应用来说单身模式是不可避免的吗?

2 个答案:

答案 0 :(得分:1)

  

因此,单一模式对于这类应用是不可避免的,对吗?

我不能说这是直截了当的。 Singleton是一种设计模式,而非要求。 事实上,大多数开发人员都在不知不觉地实现设计模式。 我敢打赌,如果有人会努力尝试,他会找到一种完全避免单身人士的方法。 我不知道为什么这会让你烦恼。但这是我能提供的最佳答案。

答案 1 :(得分:1)

许多(可能所有?)内容管理系统都使用这种面向对象的php编程,因为它是最干净,最好的编码方式。当然可以避免它,但代码不再保持这种结构。

如果你发现这很奇怪,你应该学习如何使用它,你会发现它是一种非常干净的编码方式。

可在此处找到更多信息:

  

http://code.tutsplus.com/tutorials/object-oriented-php-for-beginners--net-12762

在这里:

  

http://php.net/manual/en/language.types.object.php