phpmv / ubiquity
Ubiquity框架
Requires
- php: >=7.4
Requires (Dev)
- phpmv/php-mv-ui: ^2.2
- phpmv/ubiquity-codeception: dev-master
- phpmv/ubiquity-dev: ^0.1
- phpmv/ubiquity-devtools: dev-master
- dev-master / 2.6.x-dev
- 2.5.2
- 2.5.1
- 2.5.0
- 2.4.12
- 2.4.11
- 2.4.10
- 2.4.9
- 2.4.8
- 2.4.7
- 2.4.6
- 2.4.5
- 2.4.4
- 2.4.3
- 2.4.2
- 2.4.1
- 2.4.0
- 2.3.13
- 2.3.12
- 2.3.11
- 2.3.10
- 2.3.9
- 2.3.8
- 2.3.7
- 2.3.6
- 2.3.5
- 2.3.4
- 2.3.3
- 2.3.2
- 2.3.1
- 2.3.0
- 2.2.0
- v2.1.4
- v2.1.3
- v2.1.2
- v2.1.1
- v2.1.0
- 2.0.11
- v2.0.10
- v2.0.9
- v2.0.8
- v2.0.7
- v2.0.6
- v2.0.5
- v2.0.5-b
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- dev-316-connect-to-microsoft-access
- dev-204-rfc-nette-latte-templates-compatibility
- dev-199-rfc-config-add-env-variables-and-profiles-to-config
- dev-nosql-prepare
This package is auto-updated.
Last update: 2024-09-18 23:38:21 UTC
README
Ubiquity,一个强大且快速的框架,用于高效设计。
主要功能
- MVC或基于MVC的领域驱动设计
- 依赖注入
- PSR-4自动加载器
- 基于注解/属性的路由器
- 实现数据映射器的ORM
- 支持多数据库和多数据库类型(PDO Mysql/PostgreSQL/SQLite,Mysqli,Swoole协程Mysql,Tarantool,MongoDB)
- 多级缓存
- REST服务器
- Web管理界面(Webtools)
- 脚手架(CRUD、REST、控制器、视图、认证等)
- 控制台管理界面(Devtools)
- 资产和主题管理(自2.1.0起,由提议 @Gildonei)
- 托管服务器:fpm/fastcgi与Apache或nginx、ngx_php、Workerman、Swoole、Roadrunner、PHP-PM与ReactPHP(仅开发)
- 支持多种模板引擎:Twig(默认)、Latte和Plates(自2.5.2起)
升级
如果Ubiquity Devtools已经全局安装,并且您想升级到最新稳定版本
composer global update
对于现有项目(在根目录中)
composer update
项目创建
创建项目的最简单方法是使用composer create-project命令
创建名为firstProject的项目
composer create-project phpmv/ubiquity-project firstProject
- 使用
vendor/bin/Ubiquity serve
运行服务器 - webtools可在
http://127.0.0.1:8090/Admin
访问
Devtools安装
还可以全局安装devtools,以便在不同项目间共享使用,并获得更多项目创建选项。
- 安装Ubiquity-devtools
composer global require phpmv/ubiquity-devtools
- 创建项目
Ubiquity new firstProject -a
- 启动服务器
Ubiquity serve
需要帮助吗?
Ubiquity是一个较新的项目,目前还没有一个庞大的社区。在此期间,您可以咨询
- 使用devtools的快速入门指南,通过cli程序了解框架
- 使用webtools的快速入门指南,通过webtools界面了解框架
- 文档深入了解
- API文档进一步搜索
如需进一步帮助,请随时
性能
Ubiquity 非常快,性能良好。
在 PHP 世界中
Techempower 基准测试 的各种结果有力地证明了这一点。
TechnologyEmpower 多查询测试 (*) (见 PHP 框架结果)
这些优秀的结果也得到了一个独立基准网站的确认: phpbenchmarks.com
在 Web 框架的世界中
Ubiquity 优化了与异步平台(Workerman 和 Swoole)的使用。它利用了最新的 PHP 进展(opCache 管理 和 预加载)。在这种情况下,它甚至能与用 C、C++、Rust 或 Java 编写的最快框架相媲美。
TechnologyEmpower 20 更新测试 (*) (见 所有框架结果)
(*) 只考虑具有框架和 ORM 的测试。
关于设计选择
Ubiquity 是在 2017 年 4 月创建的。
该项目试图简化开发过程,赋予通过他们的应用程序提供价值的高级 Web 开发人员权力。它旨在结合性能和易于处理。
这种双重目的导致了某些设计选择
从其他框架中汲取最佳实践和成功概念,但不要试图复制不属于 PHP 逻辑的东西。
一些 PHP 框架受到了 Java 世界的启发,这有助于更专业的 PHP 开发。但 Java 不是 PHP:环境和语言完全不同(尽管它们的语法类似)。Java 中的好东西不一定适合 PHP。
Ubiquity 希望保持 PHP 的本质和它最擅长的事情,例如
- 使用 php(打包)数组,因为它们在 php(与 php7 优化)中很有效
- 不创建用于框架核心部分的实例,而是优先使用具有静态方法类的使用
总的来说,Ubiquity 希望保持和利用 PHP 的优点。
从这个角度来看,Ubiquity 选择不遵守某些标准:例如,不创建一个实现接口的 Response 对象(见 PSR-7 HTTP 消息接口),以响应 Http 请求。
不增加做事的方式。
如果一个方法或技术是最佳的,就没有理由实现一个替代版本,尤其是如果存在降低性能或复杂化框架处理的风险。
避免多个外部依赖,这些依赖有时被加载,但从未使用过。
- 它们阻止开发人员优化自己的代码。
- 在某些应用程序中,依赖加载时间比运行应用程序代码的时间更昂贵。
所使用的框架必须给开发人员提供优化其应用程序的手段,而不是相反。
Ubiquity 努力永远不成为一个迷宫般系统。
一些功能的预览
Devtools 控制台程序
Ubiquity help
控制台模式使得执行所有与项目设计相关的重复性任务变得容易
- 创建:项目、控制器、动作、路由、模型、视图
- 检查:路由、模型、验证器
- 脚手架(CRUD + 认证)
脚手架
使用devtools生成模型类的CRUD元素
Ubiquity crud --resource=Developers --path=/devs/
生成的路由 /devs/ 为CRUD操作提供入口点
管理界面
与控制台类似,管理界面使得可以操作框架的主要组件。
创建项目时,可以使用 -a 选项安装。
ubiquity new firstProject -a
图形设计
- 普遍性标志和横幅: @richardbmx
捐赠
您可以通过给我们一个星标来表达使用Ubiquity的愉悦,通过 贡献 来做得更好...
谢谢!