首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CMSMadeSimple模块、PHP和一般设计问题

CMSMadeSimple模块、PHP和一般设计问题
EN

Stack Overflow用户
提问于 2010-12-01 04:29:24
回答 1查看 518关注 0票数 0

我不知道我是否可以在这里询问关于CMSMadeSimple的问题,但这里是这样的。

我正在学习CMSMS的代码,这样我就可以学习如何制作自己的CMS。我认为这真的是一个php和设计问题,但这里:

http://phpxref.com/xref/cmsmadesimple/nav.html?_functions/index.html

在CMSModule下,所有的类都必须继承,它们有这样的代码:

代码语言:javascript
复制
class CMSModule
 479  {
 480      /**
 481       * ------------------------------------------------------------------
 482       * Initialization Functions and parameters
 483       * ------------------------------------------------------------------
 484       */
 485      var $cms;
 486      var $curlang;
 487      var $langhash;
 488      var $params;
.....
 509    function CMSModule()
 510      {
 511          global $gCms;
 512          $this->cms =& $gCms;
 513          $this->config =& $gCms->GetConfig();
 514  

我不明白。

代码语言:javascript
复制
753      /**
 754       * Returns the cms->config object as a reference
 755       */
 756      function & GetConfig()
 757      {
 758          global $gCms;
 759          $config = &$gCms->GetConfig();
 760          return $config;
 761      }
 762  
 763      /**
 764       * Returns the cms->db object as a reference
 765       */
 766      function & GetDb()
 767      {
 768          global $gCms;
 769          $db = &$gCms->GetDb();
 770          return $db;
 771      }
 772  

这些看起来像是他们几乎什么都不做,或者他们一直称自己为forever....with,没有真正的db东西可以引导。

我希望通过引用来理解这里的所有调用的设计。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2010-12-01 05:13:42

首先,CMSModule类看起来像是在使用包含来半派生自任何类型的对象$gCms。它们看起来不像是同一类型的对象,或者确实会有无限的递归问题。看起来这段PHP代码是在v5和良好的继承之前开发的?可能有一个CMS类,但您正在阅读CMSModule类,如果这更有意义的话。

更详细地说,function & GetConfig只是返回对全局对象$gCms上的->GetConfig()调用所返回内容的引用。显然,这是为了实现一个singleton模式,这样就有了一个使用并始终返回的主配置。对该配置和db的引用也被保留(覆盖)到CMSModule对象中。这个isn't总是一个很好的想法,但在这种情况下确实有意义,因为它通常用于这种类型的应用程序,通常在php中(全局数据库对象等)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4318242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档