0

简要说明

我不确定我用于这组网站的结构。我试图在这些网站上共享尽可能多的代码,以尽量减少重复代码并提高效率。但是,我不确定它是否是好的 OOP,因此我想听听一些关于它的其他观点以及我是否应该改变结构。

考虑这些网站:

www.domain.com
support.domain.com
clients.domain.com
export.domain.com
etc

我首先创建了一个名为class.domain.php. 此类包含 Web 应用程序的所有全局方法。

然后对于每个子域,我创建了一个子类,例如class.www.phpclass.support.php等等。

如果这些子域有任何大扇区,那么我会创建更多子类以减小父类的大小。

如此有效地,我最终得到了一个像这样的类的家谱:

类关系树

每个类都包含与该特定站点/部分相关的方法。这些方法包括以下内容:

  1. 收集动态数据并返回到页面
  2. 处理表格和发送电子邮件(联系方式、支持请求等)。
  3. 安全令牌系统
  4. 登录系统
  5. ETC

我的问题

我不仅想知道这种结构是否良好,我还想知道我是否应该使用 OOP 来处理诸如处理“联系”表格等事情。

如果我对每种形式都有单独的方法,这似乎有点奢侈(并且难以维护)。这些表单太独特了,无法通过一种全局方法进行管理,因此必须对每个表单使用唯一的方法来处理它们,或者为每个表单设置一个与类无关的脚本(更容易维护) .

总结一下:

  1. 这种结构是一种有效且良好的 OOP 结构吗?
  2. 我应该在类中使用单独的方法处理我的表单,还是应该为每个表单编写单独的脚本?

提前致谢

4

1 回答 1

1

对我来说似乎很好。

您可以通过为表单过程实现接口或一些抽象函数来使事情更抽象,例如

您可以编写一个 BaseForm 并且 BaseForm 的所有子项都需要实现“validate()”、“process()”。鉴于您始终可以确定您的类实现了这些方法。这样您就可以在您的操作中使用它,例如

$form->validate($post_data);
if($form->isValid()){
  $form->process();
} else {
  $form->handleError();
}

因为您有可能编写 OOP,所以我建议您这样做,因为它也更容易维护。

在我的工作中,我仍然不得不摆弄旧项目(如 osCommerce),当我看到所有代码重复并且单个文件包含大约 3000-4000 行代码且 if 子句跨越一千行时,我可能会尖叫很难维护它。所以为了你自己:坚持 oop

于 2012-11-27T09:38:22.173 回答