qcubed-4 / application
QCubed-4框架中许多组件使用的常用文件
Requires
- php: >=7.0
- qcubed-4/cache: dev-master
- qcubed-4/common: dev-master
- qcubed-4/i18n: dev-master
- qcubed-4/orm: dev-master
Requires (Dev)
- phpunit/phpunit: ^9.0.0
This package is auto-updated.
Last update: 2024-09-04 05:57:52 UTC
README
这是QCubed-4框架的应用部分,包括表单、控件、动作、事件以及将它们全部连接起来的代码。
什么是QCubed-4?
QCubed(发音为'Q' - 立方)是一个PHP模型-视图-控制器快速应用开发框架,支持PHP7及以上版本。该框架的目标是节省日常重复性任务的开发时间,让您能够专注于有用且有趣的事情。QCubed擅长在您有一个大型数据库结构且希望快速将其提供给用户的情况下。
有状态架构
使用QCubed-4,您无需处理来自浏览器的POST和GET。QCubed会自动为您处理这些操作,并将信息打包成面向对象的形式和控件。使用QCubed编程感觉就像在编程桌面应用程序。如果您熟悉ASP,它与之类似。
代码生成器
代码生成器会根据您的数据库模式自动创建具有匹配表单和控件的类。它使用对象关系映射(ORM)的概念,实际上为您创建整个模型层。
Codegen可以利用外键关系和字段约束来生成包含验证例程和强大的CRUD方法的完整数据模型,允许您操作对象而不是不断执行SQL查询。
更多信息以及示例可以在https://qcubed.eu/上找到
面向对象查询
使用QQueries可以简单而强大地加载模型,所有生成的ORM类都具有查询方法和QQNodes。通过使用这些方法,获取复杂数据子集非常简单 - 并且几乎可以在任何关系型数据库上使用。
用户界面库
QCubed-4使用Qform的概念来保持POST事务之间的表单状态。QForm充当控制器,可以包含控件,这些控件是UI组件。
所有控件(包括Qform本身)都可以使用模板,这是视图层,完成MVC结构。
控件可以利用Qform的FormState通过Ajax回调轻松更新自己,就像同步服务器POST一样。所有jQuery UI核心小部件都可作为控件使用。
一些控件包括
- 对话框
- 文本框
- 列表框
- 标签页
- 手风琴
了解QCubed-4的最佳方式是查看https://qcubed.eu/上的示例教程
插件
通过其插件系统,QCubed-4使打包和交付核心代码库的增强功能和补充变得容易。一些插件由其他用户创建,您可以尝试根据这些示例创建它们。
系统要求
- 一台可以设置以便浏览器向您的文件系统中的目录写入的开发计算机。
- v4.0.x版本需要PHP 7.0及以上版本。也支持HHVM。
- 所有HTML代码都符合HTML5规范。
- QCubed-4 部分ajax交互依赖于jQuery。此外,许多超出基本HTML控件的内置控件需要jQuery UI。
- SQL数据库引擎。包含MySQL、SqlServer、Postgres、Oracle、PDO、SqlLite、Informix适配器。如果您有其他SQL,创建另一个适配器并不困难。
安装
安装过程在此详细描述:[安装说明](https://github.com/qcubed-4/application/blob/master/INSTALL.md)。
升级说明
此版本现在使用命名空间。请参阅工具目录中的工具,以帮助您将当前代码库转换为新的命名空间。具体来说,请在您的代码库上运行以下命令行脚本,它将转换约99%的代码
cd (vendor_dir)/qcubed/application/tools/v4_converter ./run_was.php -R all.regex.php (your source dir)
从现在起,应用程序框架将专注于支持其控件库中的HTML5标签。其中可能包含一些其他项目,以提供支持常见数据关系(如单选框和复选框列表)的方法,但大部分情况下,我们希望任何不是直接绘制标签的内容都放在单独的库中。
因此,以下文件不再在核心中支持,目前是废弃代码。您可以在“废弃”目录中找到它们。但是,如果您认为这些旧文件很重要,可以随意将它们作为插件恢复。由于PHP内建或GitHub中可用的库已开发出更好的解决问题的方式,其中大部分代码已不再适用。
- QDialogBox.class.php(我们目前使用JQuery UI对话框,但这可能会改变)
- FileAssetDialog.php
- QArchive.class.php
- QEmailServer.class.php
- QFileAsset.class.php
- QFileAssetBase.class.php
- QImageBase.class.php
- QImageBrowser.class.php
- QImageControl.class.php
- QImageControlBase.class.php
- QImageFileAsset.class.php
- QImageLabel.class.php
- QImageLabelBase.class.php
- QImageRollover.class.php
- QLexer.class.php
- QMimeType.class.php
- QRegex.class.php
- QRssFeed.class.php
- QSoapService.class.php
- QStack.class.php
- QTreeNav.class.php
- QTreeNavItem.class.php
- QWriteBox.class.php
此外,JQuery UI框架已放入自己的目录,为将其移至稍后版本中的独立库做准备。
鸣谢
QCubed是从Michael Ho的项目QCodo分支出来的。QCubed-4v是从QCubed项目分支出来的,@spekary(Shannon Pekary)在重新设计该项目中发挥了关键作用。