内容简介:QueryPHP 渐进式 PHP 常驻框架引擎 QueryPHP 是一款现代化的高性能 PHP 7 常驻框架,以工程师用户体验为历史使命,让每一个 PHP 应用都有一个好框架。 百分之百单元测试覆盖直面 Bug 一剑封喉,基于 Zephir 实现框...
QueryPHP 渐进式 PHP 常驻框架引擎
QueryPHP 是一款现代化的高性能 PHP 7 常驻框架,以工程师用户体验为历史使命,让每一个 PHP 应用都有一个好框架。
百分之百单元测试覆盖直面 Bug 一剑封喉,基于 Zephir 实现框架常驻,依托 Swoole 生态实现业务常驻,此刻未来逐步渐进。 我们的愿景是 USE LEEVEL WITH SWOOLE DO BETTER, 让您的业务撑起更多的用户服务。
#特性
框架理念 (值得托付的使命感,让每一个 PHP 应用都有一个好框架。)
路由系统 (框架提供 MVC 自动路由并能够智能解析 Restful 请求和基于 OpenApi 3.0 规范的 swagger-php 注解路由,文档路由一步搞定。)
整体解决方案 (框架提供了从缓存、Session、IOC 容器、模板引擎、Ddd ORM 等大量开箱即用的功能,提供了基于 Symfony Console 命令行 工具 集。)
框架常驻 (Leevel 可选扩展接管底层核心)
业务常驻 (基于 Swoole 4 开发,我们的愿景是少量代码或者无修改,让你的业务撑起更多的用户服务。)
百分之百单元测试覆盖(单元测试一直是国产 PHP 开源项目的痛)
PHP 7 严格模式 (每一个 PHP 脚本都是 strict_types = 1)
PHP 7 类型提示 (尽可能为每一个方法提供确定的参数类型和返回值类型)
依赖注入 (完整实现,关键 mvc、命令行脚本、事件监听器全部接入 IOC)
领域驱动设计 (在妖怪的 QeePHP 基础上保持创新,提供了 UnitOfWork[事务工作单元]、Repository[仓储]、Specification[查询规约],Entity getter setter[领域实体或叫模型] )
more...
更新日志
距离上一个版本有一个月了,这个我们的 hunzhiwange/framework 已有 94 条跟新日志,hunzhiwange/queryphp 已有 150 条日志,这个版本主要支持一个 IViewUI 开发的通用权限系统。
修复模型实体更新 replace 的错误
修复数据库单元测试没有很好的释放连接造成的本地跑单元测试 mysql gone away
更好地支持单元测试
加入断线重连,支持最高 3 次重连
优化仓储查询对分页的友好支持
修正一处集合的 BUG
完善 Leevel\Support\Type 返回值类型
Restful 路由没有参数时为首页 index 而不是 show
删除兼容获取 pathInfo 的获取方法 ?_url=xx,由 Nginx 可以做到
对 axios 等前端提交类型 application/json 时自动处理表单数据
加入一个环境变量 RUNTIME_ENVIRONMENT,利于更好地处理单元测试载入不同的配置文件
领域实体加入 ENUM 支持
... 更新太多不一一说明了。
金字招牌,百分之百单元测试覆盖
QueryPHP 拥有 6.5 万行源代码,单元测试代码为 75000行,当然包含注释和空格,拥有 2829 条测试用例和 9245 条断言,充分的单元测试保证了我们代码的稳定性和质量。
QueryPHP 其中一个使命就是单元测试带入的企业开发,以及给同行抛砖引玉,促进共同进步。
Test and Deploy Your Code with Confidence
==> ...View\Compiler\CompilerForTest ✓ ✓ ✓ ✓ ✓ ✓ ==> ...\View\Compiler\CompilerIfTest ✓ ==> ...\Compiler\CompilerIncludeTest ✓ ==> ...iew\Compiler\CompilerListTest ✓ ==> ...ew\Compiler\CompilerListsTest ✓ ✓ ✓ ==> ...ompilerPairedTagExceptionTest ✓ ✓ ✓ ✓ ✓ ==> ...View\Compiler\CompilerPhpTest ✓ ==> ...ew\Compiler\CompilerQuickTest ✓ ==> ...\Compiler\CompilerTagselfTest ✓ ==> ...View\Compiler\CompilerVarTest ✓ ✓ ✓ ✓ ✓ ==> ...ew\Compiler\CompilerWhileTest ✓ ==> Tests\View\HtmlTest ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ==> Tests\View\ManagerTest ✓ ==> Tests\View\PhpuiTest ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ==> Tests\View\Provider\RegisterTest ✓ ==> Tests\View\TwigTest ✓ ✓ ✓ ✓ ==> Tests\View\V8jsTest → → → → → → → → → Time: 1.32 minutes, Memory: 84.00MB OK, but incomplete, skipped, or risky tests! Tests: 2829, Assertions: 9245, Skipped: 9. Generating code coverage report in Clover XML format ... done
为什么要特别强调单元测试,这是国内一个 PHP 轮子普遍的一个非常大的痛点,欧美国家的轮子做得非常不错,片面追求功能炫酷吊炸天,外强中干。
在早年的时候,我也从来不写单元测试觉得没什么用。做好一个功能,在控制器去调用一下,测试一哈是否正常,正常则通过。随着时间的流逝,这个控制器中的代码会被删除而丢失,当我们添加一个新功能或者修改已有的功能,分分钟改挂以前的功能,造成 bug 无穷无尽。
单元测试的好处
软件质量最简单、最有效的保证;
是目标代码最清晰、最有效的文档;
可以优化目标代码的设计;
是代码重构的保障;
是回归测试和持续集成的基石。
QueryPHP 在未来将加大力度提供更重的单元测试彻底消灭低级 BUG,为中国创业提供公司提供稳定的 WEB 框架。
如何安装
基本使用
composer create-project hunzhiwange/queryphp myapp dev-master
打开浏览器访问
php leevel server <Visite http://127.0.0.1:9527/>
Mvc restful 路由 http://127.0.0.1:9527/restful/123
指定方法的 Mvc restful 路由 http://127.0.0.1:9527/restful/123/show
注解路由 http://127.0.0.1:9527/api/v1/petLeevelForApi/helloworld
php leevel link:public http://127.0.0.1:9527/public/css/page.css
php leevel link:storage http://127.0.0.1:9527/storage/logo.png
php leevel link:apis http://127.0.0.1:9527/apis/
php leevel link:debugbar http://127.0.0.1:9527/debugbar/debugbar.css
连接数据库
首先创建一个数据库.
CREATE DATABASE IF NOT EXISTS myapp DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
修改 .env
vim .env ... // Database DATABASE_DRIVER = mysql DATABASE_HOST = 127.0.0.1 DATABASE_PORT = 3306 DATABASE_NAME = queryphp_development_db DATABASE_USER = root DATABASE_PASSWORD = ... to ... // Database DATABASE_DRIVER = mysql DATABASE_HOST = 127.0.0.1 DATABASE_PORT = 3306 DATABASE_NAME = myapp DATABASE_USER = root DATABASE_PASSWORD = 123456 ...
执行数据库迁移命令
php leevel migrate:migrate php leevel server
测试连接数据库
http://127.0.0.1:9527/api/entity
{ count: 4, :trace: { ... } }
登陆到 QueryVue 后台
安装前端
第一步安装前端,细节信息可以在 frontend/README.md
查看.
cd frontend npm install -g cnpm --registry=https://registry.npm.taobao.org // Just once cnpm install npm run serve # npm run dev
登陆后台
接着访问这个登陆地址. http://127.0.0.1:9528/#/login
user: admin password: 123456
后台首页
红色主题的资源列表
【声明】文章转载自:开源中国社区 [http://www.oschina.net]
以上所述就是小编给大家介绍的《QueryPHP 1.0.0-alpha.2 发布,新增 IViewUI 通用后台权限系统》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 后台管理系统若依 1.0.9 发布,新增定时任务
- 后台权限管理系统 FEBS 新增 Spring Security 版
- 后台权限管理系统 FEBS 新增 Spring Security 版
- 组件式后台服务 goserver 0.2 发布,新增 Lua 支持
- 若依后台管理系统 1.1.1 发布,新增表单构建器
- 飞特商城后台管理系统 1.0 发布,功能新增和改进
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。