**最新稳定版本:[版本 3.1.0,于 2017 年 7 月 6 日发布]。
版本 2 的最新稳定版本可以在 v2 分支中找到。
在 qcubed.slack.com 上加入我们的 Slack。在这里获取您的邀请。
QCubed(发音为“Q”-cubed)是一个 PHP 模型-视图-控制器快速应用程序开发框架,支持 PHP5(5.4 及更高版本)和 PHP7。该框架的目标是节省围绕平凡、重复性任务的开发时间 - 让您能够专注于有用且有趣的事情。 QCubed 在您拥有大型数据库结构并希望快速提供给用户的情况下表现出色。
使用 QCubed,您不必处理来自浏览器的 POST 和 GET。 QCubed 会自动为您处理这些问题,并将信息打包到面向对象的表单和控件中。使用 QCubed 编程感觉非常像编程桌面应用程序。如果你熟悉ASP,它是类似的。
代码生成器根据您的数据库架构自动创建具有匹配表单和控件的对象类。它使用 ORM(对象关系映射)的概念,实际上为您创建整个模型层。
Codegen 可以利用外键关系和字段约束来生成随时可用的数据模型,并配有验证例程和强大的 CRUD 方法,使您能够操作对象,而不是不断发出 SQL 查询。
更多信息和示例可在线获取:https://qcubed.eu/
使用 QQueries 可以简单而强大地加载模型,所有生成的 ORM 类都有 Query 方法和 QQNode。通过使用这些方法,获取复杂的数据子集非常简单 - 并且可以在几乎任何关系数据库上使用。
QCubed 使用 QForm 的概念来保持 POST 事务之间的表单状态。 QForm 用作控制器,并且可以包含作为 UI 组件的 QControl。
所有的QControl(包括QForm本身)都可以使用一个模板,即视图层,完成MVC结构。
QControl 可以利用 QForm 的 FormState 通过 Ajax 回调来更新自身,就像同步服务器 POST 一样简单。所有 jQuery UI 核心小部件都可用作 QControl。
一些 QControl 包括:
学习 QCubed 最简单的方法是查看示例教程:http://qcu.be/examples/
通过其插件系统,QCubed 可以轻松打包和交付核心代码库的增强功能和添加内容。当前活动版本的 QCubed 插件位于以plugin开头的存储库中。
安装过程详细描述如下:安装说明。
3.0 是 2.x 的一个重大架构变化。您本质上应该从头开始,创建一个新项目,生成模型,使用 ModelConnectorEditor 优化连接器(过去称为 MetaControls)中生成的内容,然后将代码从旧版本复制到新版本。您会发现许多必须手动完成的事情现在都是在生成的代码中完成的,因此可能不需要您想象的那么长时间。让我们跳吧:-)
v3.1 现在模型中有更改跟踪。每次保存对象时,它不会将整个对象推送到数据库,而是仅推送已更改的数据。为此,它使生成的模型超类中的成员变量变为私有而不是受保护,这可能需要您更改模型子类中的代码。为了帮助过渡,新的私有变量功能默认处于关闭状态。您需要通过编辑 codegen_settings.xml 文件并将“privateColumnVars=”true“”参数添加到 createOptions 标记来打开它。有关示例,请参阅 qcubed/install/project/configuration 目录中的 codegen_settings.xml 文件。
这将使 Gen 类中的所有受保护列变量变为私有,因此您将无法直接从 Model 子类访问它们。例如,如果表中有“名称”列,您可以执行以下操作:
$ strName = $ this -> Name ;
或者更好:
$ strName = $ this -> getName ();
但不是:
$ strName = $ this -> strName ;
$this->Name
路由到$this->getName()
另外,代替这个:
$ this -> strName = $ strName ;
做:
$ this -> setName ( $ strName );
或者
$ this -> Name = $ strName ;
新功能的好处包括更好的性能、减少 OptimisticLocking 异常以及防止您意外访问由于 QSelect 子句而未加载的值。此外,QSelect 现在可用于控制将对象转换为其他格式(如 JSON)时生成的内容。
v4.0 是另一个重大的架构变化,旨在支持 PSR-1、PSR-2 和 PSR-4 标准。 v4 为所有核心文件和库文件添加了命名空间。所有核心类前面的字母“Q”都消失了,因为这本质上是我们在 PHP 中提供命名空间之前进行命名空间的方式。
它包含帮助自动将代码从 v3.x 代码更改为 v4.0 的工具。有关更多信息,请参阅 qcubed/application 存储库中的自述文件。
最新更改列表位于 https://github.com/qcubed/qcubed/commits/master
QCubed 是从 QCodo 中衍生出来的,QCodo 是 Michael Ho 的一个项目。 QCubed 依赖于 JQuery 并使用 jQuery UI 库来实现其一些核心控件。