gpt4 book ai didi

基于网络的信息系统的 PHP/JavaScript 设计模式

转载 作者:太空狗 更新时间:2023-10-29 14:15:21 25 4
gpt4 key购买 nike

我从事编码工作多年,发现自己感到很沮丧。我正在开发一个新的基于 Web 的服务,该服务也有一个 UI,它将从头开始开发。它将使用一些开源组件,但它本身主要是一个新事物。

但这就是我的问题。构建这样一个系统意味着构建所有这些组件:

  • PHP 后端
  • HTML 浏览量
  • CSS 样式
  • JavaScript 前端
  • AJAX 异步连接

我希望所有这些都遵循相同的“模式”,即系统中的模块由一个文件夹或一组文件组成,这些文件将所有这些组件合并到该模块中。

但我很难获得我喜欢的架构。这是我目前所拥有的:

  • 整个主系统或多或少是用程序化 PHP 编写的。这解决了请求 URL,处理缓存、日志记录和调试以及加载其他组件。
  • PHP 在构建页面时,加载模块特定的 javascript 文件、CSS 文件、HTML 文件和基于当前模块的其他组件。这意味着每个模块都尽可能轻量,同时能够根据当前模块的需求进行扩展。
  • 系统还包含可在系统范围内使用的对象(例如“用户”或其他类型的类)的 OOP 组件。
  • 该系统是根据 MVC 原则构建的,但没有 OOP。

但我确实觉得以程序化方式构建主系统真的很“脏”。一开始我确实开始用 OOP 编写它,但很快就发现自己很头疼,因为必须让所有东西都适契约(Contract)一个系统。它是 OOP,但它是紧密耦合的,我不喜欢它,因为它是以 OOP 方式编写的,组件实际上不是那么独立,或者只是管理起来很麻烦。

有没有我可以遵循的模式或指南以获得更好的结果?我喜欢当前系统的一点是,我可以调用任何东西,预览渲染 PHP 或 HTML View 、CSS 样式、额外的 Javascript 函数和按需进行 AJAX 通信,使占地面积非常小,但感觉很脏。我什至为主数据库连接使用了一个全局对象(尽管它是一个全局对象)。

有什么想法吗?如果只是一种语言,那根本不是问题,但是试图让所有东西一起工作就有点头疼了。

谢谢!

最佳答案

http://agiletoolkit.org/实现你正在寻找的东西。它的源代码在 http://github.com/atk4/atk4 上可用。这样您就可以从那里学习。

我学到了很多东西creating Agile Toolkit .

  • 看看桌面系统。 - Cocoa、Objective Windows 和其他面向对象的桌面系统很早就解决了这些问题。创建 View 、连接操作、定义回调。这映射到 HTML 模板 View 、JavaScript 绑定(bind)和 AJAX 请求。

  • 运行时对象树。在 Agile Toolkit 中,第一个阶段是初始化。在此阶段,对象相互插入。例如,您将 Button 添加到 Form 中,将 Form 添加到 Page 中。然后是渲染阶段,它递归地从所有内容中生成 HTML。让组件响应 HTML 更有意义。

  • jQuery UI 小部件。使用这些是解决许多问题的好方法。 Agile Tolokit 中的 View 可以与相应的 jQuery UI 小部件对话。

  • 您提到的对象是敏捷工具包中的“模型”。如果你正在寻找单机版,你可以依赖一些 ORM 框架。我自己制作了它以使其与 View 更紧密地集成。

  • 重新考虑去耦合。如果您自己开发所有系统,那么耦合会给您带来很多好处。特别是如果它是面向对象的体系结构并且您继承了一些东西。您将需要一些 Java 经验或桌面开发经验才能做好这件事。

链接:

关于基于网络的信息系统的 PHP/JavaScript 设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7717479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com