【发布时间】:2012-03-05 01:07:05
【问题描述】:
我需要使用 PHP 开发一个小型 CMS,现在我正在尝试找出结构。
CMS 将使用一组函数生成。诸如数据库函数、缓存事物、国际化之类的东西。
我想这样做:
使函数成为大型“站点”类的非静态方法的一部分;这样我就可以运行该类的多个实例。不确定我是否需要这样做..
或使用静态方法将函数拆分为单独的类
这里的主要问题是 CMS 应该能够管理多个小型站点,而不仅仅是一个。因此,要么我将所有方法设为静态并添加“站点切换”功能,要么将它们设为我根据要管理的站点实例化的普通对象
以下哪个是最佳选择?
【问题讨论】:
-
永远不要做一个单一的“一体化”类。由于各种原因,这是不好的做法。查看this question of mine 了解有关类实现的更多信息。
-
这是一个全新的项目吗?如果是这样,为什么不使用某种 MVC 框架,它们中的大多数都和你之前在你的问题中提到的一样好用。
-
“其中哪一个是最佳选择?” 如果没有对软件工程的全面讨论,很难回答。但是,我想说的是:通常,静态是邪恶的。 Here's a PHP-based explanation of why 这是another with a terrific metaphor that isn't targeted towards PHP development。我强烈建议避免使用静态来支持依赖注入。如果您想升级自己,请自行完成。如果没有,请尝试使用框架。