构建个人CMS - 类和库

时间:2009-01-21 10:40:17

标签: php content-management-system object

我正在构建我的个人CMS,需要您的建议来组织核心功能和课程。 我有文件夹:

/shared
   /classes
       DB.php
       Session.php
       Config.php
       ...
   /libraries
       Arrays.php
       DateTime.php
       Email.php
       ...

'classes'文件夹中的文件包含核心类(每个文件一个类)。

现在问题是关于/ libraries / - 它们包含可以在任何类中使用的函数,有时它们使用来自另一个库的其他函数,有时它们需要访问某些核心类。 我应该将它们作为函数编写,还是将它们设置为静态并包装在某个类中? 基本上我到处都需要它们,但要让它们井然有序。

2 个答案:

答案 0 :(得分:1)

  

我应该把它们写成函数,   或使它们静止并包裹在一些中   类?基本上我需要它们   无处不在,但要保持井井有条。

您是否查看过命名空间了?将所有函数包装到命名空间可能是最好的选择。

答案 1 :(得分:0)

我的建议是首先考虑一下CMS的架构目标。当然,它将是100%你的,但这并不意味着你不会因为没有开始确定最新的地方和方式,这是做什么以及如何从这里得到它。

这就是为什么我绝对不建议你有库调用库。从我的角度来看,除了应用程序流程中的前几个核心类之外,你的类都不应该依赖于任何其他类,因为你想将这些工作分发给其他一些单独的自包含类。你的目标应该是核心类的奇点和原子性。

我不知道你的架构模式是什么(我认为它将是MVC,HMVC或PAC),但我认为你最好先定义几个核心类[/ core]通过实例化一些库[/ libraries]来初始化应用程序的基础,这些库是在初始化请求的控制器[/ controllers]之前解析传入请求请求和执行一些默认任务所必需的。

图书馆应该有一个目的。会话处理库应该只处理会话,路由库路由等。最初你可以创建你的基本控制器和基本模型并将其放在[/ core]中并让控制器[/ controllers]和models [/ models]扩展你的基础来自[/ core]的控制器和模型。

与往常一样,组件越少耦合越好。一个好的解决方案将是轻量级,小型和广泛的目的。如果您将来更改任何设计构思,只需更改核心类并对整个应用程序产生巨大影响,而无需在其他位置进行任何进一步更改,这会有所帮助。