新一代 PHP 框架 QeePHP 发布
为什么选择 QeePHP 回顾一下曾经开发过的 PHP应用,大部分开发者都会发现这些应用中,数据的创建、读
为什么选择 QeePHP
回顾一下曾经开发过的 PHP 应用,大部分开发者都会发现这些应用中,数据的创建、读取、更新和删除操作是重复最多次的操作。但是不管我们如何简化这些 CRUD(创建、读取、更新、删除)操作,面对客户不断变化的需求,应用程序的内在结构总是逐渐变得凌乱。
而造成这种情况的根本原因就是我们没有正确使用面向对象的技术来设计和实现这些应用程序。由于业务逻辑固有的复杂性被所谓的 CRUD 快速开发能力所掩盖。本应是内聚的业务逻辑却拆散为一个个 CRUD 操作,分散到了应用程序的不同部分。如此一来,业务逻辑的变化必然会导致应用程序内部产生连锁反应式的改动,应用程序内在结构的逐渐腐朽变成了不可逆转的趋势。
更具挑战性的任务
随着 PHP 越来越多的应用在大型 Web 应用中,如何构造这些复杂应用已经成了一项挑战。下图是一位开发者通过反向工程获得的 Facebook 对象关系图 。虽然这张图并不完全准确,而且也有许多简化,但可以看出对象间仍然存在复杂的关系。对于这种应用,传统的 CRUD 操作根本不可能胜任。
Facebook 对象关系图
正是因为多年 PHP 开发的经验教训,以及面对复杂应用时的捉襟见肘,让我们下定决心改变现状。将“领域驱动设计”引入到 PHP 世界中。
领域驱动设计
“领域驱动设计”由 Eric Evans 于 2003 出版的《Domain-Driven Design: Tackling Complexity in the Heart of Software》(国内译名: 领域驱动设计–软件核心复杂性应对之道 )一书中进行全面阐述。“领域驱动设计”回归了面向对象思想的本质,提出了一系列创建面向对象应用程序的指导原则,以及实践这些原则的设计模式和解决方案。
可惜的是虽然已经经过了 5 年时间,但领域驱动在 PHP 世界并没有引起大的反响,因为大多数 PHP 开发者已经习惯了编写那些“一次性”的代码。即便是各种 PHP 开发框架的出现,也没有改变这种状况。造成困境的根本原因,并不在于 PHP 语言本身的限制,而是使用 PHP 开发的 Web 应用直到今天才逐步发展为具有高度内在复杂性的软件系统。正所谓没有需求就没有市场,在大多数 PHP 应用都很简单的情况下,领域驱动这样一种需要从思想上进行改变的开发模式自然难以在 PHP 世界中流行。
但市场已经发生了变化,今天的用户要求我们能够更快更好的创建高质量的应用程序,改变传统 PHP 开发模式的时机已经完全成熟。
新希望 —— QeePHP
QeePHP 是一个遵循“领域驱动设计”思想设计和实现的 PHP 开发框架。在保持易学易用、快速稳定的同时,QeePHP 为创建具有复杂内在逻辑的 Web 应用提供了全面的支持。
“领域驱动设计”是一种设计和架构思想,以“模型”为核心,将业务逻辑封装到一个个内聚的模型之中,从而避免业务逻辑被分散到应用程序的各个部分。 这样一来,不管是增加了新的业务需求还是已有需求的改变,我们都能够将修改局限在一个相对较小的范围。从根本上避免了需求快速更新导致应用程序内在结构逐 渐腐朽的问题。
由于“领域驱动设计”的思想基础就是“模型”,所以框架必须为“模型”的定义、封装、持久化,以及模型关系的维护和扩展提供良好支持。QeePHP 实现了完善的 ORM(对象关系映射)系统,能够应付各种复杂的业务需求。利用 QeePHP 提供的帮助,开发者可以将精力放到如何完成“业务逻辑”之上,而不是不断的重复 CRUD 操作。
更进一步,QeePHP 提供了灵活的视图机制,让开发者可以轻松完成用户界面组件化工作,为高效开发奠定了基础。除此以外,QeePHP 的表单模型、用户界面控件、可扩展内核架构,都是构建复杂应用程序不可或缺的强力工具。
除了技术上的创新,QeePHP 还凝聚了 起源科技 团队及社区超过 5 年的框架设计和开发经验。无论是易用性、可靠性、运行性能还是扩展能力,QeePHP 都达到了当今 PHP 开发框架的极致。
最后,我们想说经过近两年的开发,QeePHP 已经为实践“领域驱动设计”做好了准备、为开发复杂应用提供了一个坚实的基础。我们坚信,随着 PHP 开发者面对的需求越来越困难,QeePHP 开源开发框架及其背后的思想必定会为大家所了解、信任与采用。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

关于FileReader实例化与文件读取在前端开发中,我们经常需要处理用户上传的文件。使用

深入探讨console.log输出差异本文将分析一段代码中console.log函数输出结果不同的原因。代码片段涉及URL参数解析�...

为什么vue-router跳转后控制台网络中没有页面请求信息?在使用vue-router进行页面跳转时,你可能会注意到一个现�...

您是否曾在传输或存储大量文件时遇到困难?了解FileSplitter&Merger,这是一个开源项目,旨在以优雅和高效的方式简化这一挑战。这个项目是做什么的?文件分割和合并由两个工具组成:文件分割器—将大文件分成更小的块。文件合并—将这些块重新组合成原始文件为什么有用?处理非常大的文件可能会令人畏惧,尤其是在传输或存储它们时。这些工具允许您将文件分割成可管理的片段,然后从这些片段重建原始文件。文件分割器该程序将输入文件分割成指定大小的较小块。每个块都保存为单独的文件。用法:复制要分割的文

正则表达式中的捕获组与返回值解析在学习正则表达式时,我们常常会遇到一些令人困惑的返回值。今天我们来...
![为什么使用正则表达式 /\[1-9\]\\d\*$/ 时,-1 会被判定为匹配成功?](https://img.php.cn/upload/article/001/246/273/174286872459076.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
探讨正则表达式在字符串匹配中的应用在编程中,正则表达式是用来匹配字符串模式的强大工具。然而,有时我...
