# QueryPHP **Repository Path**: hehq_php/queryphp ## Basic Information - **Project Name**: QueryPHP - **Description**: QueryPHP 是一款现代化的高性能 PHP 7 常驻框架,以工程师用户体验为历史使命,让每一个 PHP 应用都有一个好框架 - **Primary Language**: PHP - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 16 - **Created**: 2018-12-11 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

StyleCI Build Status Coverage Status Coverage Status Latest Version QueryPHP License

English | 中文

# QueryPHP 渐进式 PHP 常驻框架引擎 QueryPHP 是一款现代化的高性能 PHP 7 常驻框架,以工程师用户体验为历史使命,让每一个 PHP 应用都有一个好框架。 百分之百单元测试覆盖直面 Bug 一剑封喉,基于 Zephir 实现框架常驻,依托 Swoole 生态实现业务常驻,此刻未来逐步渐进。 我们的愿景是 **USE LEEVEL WITH SWOOLE DO BETTER**, 让您的业务撑起更多的用户服务。 *代码如诗,自由如风, 此刻携手 QueryPHP 共创美好.* * 官方网站: * API 文档: * 开发文档: ## 核心包 * QueryPHP On Github: * QueryPHP On Gitee: * Framework On Github: * Framework On Gitee: * Leevel On Github: * Leevel On Gitee: * Tests: * Packages: * Packages From Hunzhiwange: * Packages From Leevel: ## 如何安装 ## 基本使用 ``` composer create-project hunzhiwange/queryphp myapp dev-master ``` ## 打开浏览器访问 ![](home.jpg) ``` php leevel server ``` * 首页 * Mvc 路由 * 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 * 带有绑定的注解路由 http://127.0.0.1:9527/api/v2/withBind/foobar * php leevel link:public * php leevel link:storage * php leevel link:apis * php leevel link:debugbar ## 连接数据库 ### 首先创建一个数据库. ``` 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 ``` ### 测试连接数据库 ``` { 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 ``` ### 登陆后台 接着访问这个登陆地址. ![](login.jpg) ``` user: admin password: 123456 ``` ### 后台首页 ![](index.jpg) ### 红色主题的资源列表 ![](list.jpg) ## 运行测试 ### 首先创建一个用于测试的数据库 test. ``` CREATE DATABASE IF NOT EXISTS test DEFAULT CHARSET utf8 COLLATE utf8_general_ci; ``` ### 修改 .testing ``` vim .testing ... // Database DATABASE_DRIVER = mysql DATABASE_HOST = 127.0.0.1 DATABASE_PORT = 3306 DATABASE_NAME = test DATABASE_USER = root DATABASE_PASSWORD = ... to ... // Database DATABASE_DRIVER = mysql DATABASE_HOST = 127.0.0.1 DATABASE_PORT = 3306 DATABASE_NAME = test DATABASE_USER = root DATABASE_PASSWORD = 123456 ... ``` ### 执行数据库迁移命令 ``` php leevel migrate:migrate -e testing ``` ### 运行 ``` _____________ _______________ ______/ \__ _____ ____ ______ / /_ _________ ____/ __ / / / / _ \/ __`\/ / __ \/ __ \/ __ \___ __/ / / / /_/ / __/ / \ / /_/ / / / / /_/ /__ \_\ \_/\____/\___/_/ / / .___/_/ /_/ .___/ \_\ /_/_/ /_/ $cd /data/codes/queryphp/ $vim .testing # modify database redis and other $php leevel migrate:migrate -e testing $php vendor/bin/phpunit tests ``` ## 基本优化 ### 关闭调试 修改 .env 或者 runtime/bootstrap/option.php. ``` // Environment production、testing and development ENVIRONMENT = production // Debug DEBUG = false ``` ### 执行优化指令 下面的指令可以让 QueryPHP 运行得更加快速。 ``` php leevel router:cache php leevel option:cache php leevel i18n:cache php leevel view:cache php leevel autoload (contains `composer dump-autoload --optimize`) ``` 或者 ``` php leevel production # `php leevel development` will back. ``` ## 安装 Leevel 扩展让性能更好 ### Windows 后续会提供 dll 扩展. ### Linux 从下面的仓库下载源代码. ``` git clone git@github.com:hunzhiwange/leevel.git cd ext ``` GCC 编译源码. ``` $/path/to/phpize $./configure --with-php-config=/path/to/php-config $make && make install ``` 将扩展添加到你的 php.ini, 使用 php -m 查看扩展是否被安装. ``` extension = leevel.so ``` ## 使用 swoole 提升性能 Swoole 后续会逐步提供支持. ``` php leevel swoole:http ``` ## 统一团队代码风格 ### 安装 PHP 代码格式化工具 ### 基本使用 ``` $cd /data/codes/queryphp $php-cs-fixer fix --config=.php_cs.dist ``` ### 使用 Git 钩子 添加一个 pre-commit 钩子. ``` ln -s ./build/pre-commit.sh ./.git/hooks/pre-commit ``` 跳过钩子 ``` # git commit -h # git commit -n -m 'pass hook' #bypass pre-commit and commit-msg hooks ``` ## 致谢 感谢同事 [毛飞](https://github.com/maosea0125) 在开发这个项目过程中的无私帮助,让我有了很多新的认识, 这让 QueryPHP 变得更加的美好. 也非常感谢下面的这些优秀的开源软件, 我们也参考了很多的设计与思想, 让我们可以站在巨人的肩膀上保持创新. * QeePHP: * Swoole: * JeCat: * ThinkPHP: * Laravel: * Symfony: * Doctrine: * Phalcon: ## 版权协议 QueryPHP 是一个基于 [MIT license](http://opensource.org/licenses/MIT) 授权许可协议的开源软件.