HI,各位 2018 已接近尾声,在这个秋意满满的时节,小牛仔潜心研究 2 年的 QueryPHP 将迎来了自己第一个测试版本。
早在 2009 年 2 月份,我开始接触 PHP 这门语言,那个时候边学些边开发,并在 2009 年发布了第一个开源项目 DYHB.BLOG,这是一个未使用任何框架的独立博客。
从早年的原生 PHP 开发,最开始的 smart 模板引擎到今天 PHP7、Swoole、Composer、Laravel 等,整个 PHP 世界正发生着日新月异的变化。在这些年的成长过程中看过无数的 PHP 框架和各种轮子,心里总有一种造轮子冲动。
2016 年看了韩天峰老师的 《PHP7+Swoole 开发超高性能后台程序--韩天峰 @PHPCon2016》,心情非常激动,里面提到了一个超高性能组合。
我想要是可以做这样一套组合就好了,要做这样的一个基本的需要什么,分析一下。
PHP 7 我们不用操心,Redis 也不用操心,Swoole 不用操心(也要操心,需要连接起来)。最麻烦要数 phalcon 和 yaf,以及一个连接它们的框架。
经过折腾找到 zephir 终于解决了 phalcon 和 yaf 这块问题,终于我们找到了完整的方案。
We think the performance of PHP applications is very important and the development of pleasure also needs to be considered, and that's why we have developed the QueryPHP framework to achieve great ideals.
PHP 7 - We choose the lowest version of 7.1.3, because php7 has a unique advantage over the earlier version.
Leevel - We provides an optional c extension to takeover core components of the framework,such as ioc, log, cache.
Swoole - Enable PHP developers to write high-performance, scalable, concurrent TCP, UDP, Unix socket, HTTP, Websocket services in PHP programming language.
Redis - QueryPHP encapsulation a cache component, including files, redis and so on, so as to reduce the pressure of database.
其中 PHP 7 搞定了,Leevel 可选扩展框架实现也搞定了,Leevel 高性能 PHP 扩展开发框架,基于 zephir 的中国版 Min Phalcon。
https://github.com/leevels/cache
Swoole 还为搞定,做了一些还需要完善,最终在第一个版本拿下了,为了主框架发布,主要是百分之单元测试覆盖彻底占用了开发 swoole 部分的时间,对 swoole 的开发是我们的后续版本主打特性。
我们的愿景是 USE LEEVEL WITH SWOOLE DO BETTER,没有 swoole 部分愿景就不完美。
https://www.v2ex.com/t/466294#reply4
百分之百单元测试覆盖 (花了 8 个月时间只做一件事,编写单元测试一块一块重构,完整覆盖)
PHP 7 严格模式 (每一个 PHP 脚本都是 strict_types = 1 )
PHP 7 类型提示 (仅可能为每一个方法提供确定的参数类型和返回值类型)
依赖注入 (完整实现,关键 mvc、命令行脚本、事件监听器全部接入 IOC )
领域驱动设计 (在妖怪的 QeePHP 基础上保持创新,提供了 UntiOfWork、Repository、规约 Specification,getter setter Entity )
Leevel 可选扩展接管底层核心
支持 swoole,未来完善
底层所有功能全部组件化由 composer 管理 https://packagist.org/packages/leevel/
更多功能 ...
做为一个刚刚发布的框架还有很多不足,希望大家给予意见,如果你觉得不错,也可以给我们一个 star。
来源: https://www.oschina.net/news/101614/queryphp-1-0-0-alpha1-released
1
hubahuba 2018-11-08 13:44:11 +08:00
我慌了···
|
2
JaguarJack 2018-11-08 13:59:26 +08:00 2
不来不来了,太多了,请你们这些作者不要各自占山为王了,可以找韩天峰商议利用 swoole 开发属于社区的一套框架就可以了,谁有时间学这么多啊。
|
3
Exceptions 2018-11-08 16:02:55 +08:00
@JaguarJack +1
|
4
Junjunya 2018-11-08 16:09:48 +08:00
@JaguarJack +1
|
5
fyibmsd 2018-11-08 16:11:41 +08:00
挖坑一时爽
|
6
server 2018-11-08 16:17:57 +08:00
膜拜还是要有的,不过我选择用 go,🐶
|
7
doyouhaobaby OP @JaguarJack 不同的场景适应不同框架,轮子不是很多,遇到了才看看,golang 才叫轮子多。
新的项目出来,感兴趣就看看,不感兴趣的就忽略,大部分项目都会与我们生活插肩而过。 国内开源项目普遍工程化不如欧美的,我也看了不少 swoole 的轮子,很多连基本的单元没有怎么能稳定。 谢谢指正。 |
8
Youngda 2018-11-08 16:19:52 +08:00 via Android
福利满满,坐等完善 swoole
|
9
doyouhaobaby OP @server 我也选择 golang,我研究了一段时间了 gin,哈哈
|
10
Donne 2018-11-08 16:24:35 +08:00 1
我理解的这是一个整合类框架,如果是整合为什么我看文档里模板、ORM 之类的又造了一套轮子
|
11
doyouhaobaby OP @Donne 我在 2010 - 2014 开发一个框架 DoYouHaoBaby,这个是在哪个框架上重新重构,老框架留下了不少组件,甚至包含模板引擎,于是保留了下来。也依赖了很多 composer 包,重构了 2 年,自己的组件也有很多。
"php": "^7.1.3", "ext-mbstring": "*", "ext-openssl": "*", "symfony/console": "~4.0", "symfony/var-dumper": "~4.0", "symfony/process": "~4.0", "symfony/finder": "~4.0", "clio/clio": "@stable", "robmorgan/phinx": "^0.9.2", "vlucas/phpdotenv": "~2.2", "nesbot/carbon": "~1.20", "league/flysystem": "^1.0.8", "monolog/monolog": "^1.23", "swiftmailer/swiftmailer": "6.0.2", "nunomaduro/collision": "~2.0", "twig/twig": "~2.0", "gettext/gettext": "^4.6.0", "fzaninotto/faker": "^1.6", "zircote/swagger-php": "^3.0.1", "maximebf/debugbar": "~1.15.0" |
12
doyouhaobaby OP @Donne 文档还没有准备,暂时单元测试即文档,编写 2700 例单元测试,8000 个断言,后面后把文档整理一下。
|
13
lsls931011 2018-11-09 08:38:48 +08:00
swoole 社区类似的 PHP 框架轮子太多了,我还是选择 golang 吧,这边多框架
|
14
gouchaoer 2018-11-09 11:58:36 +08:00
其实 swoole 社区生态需要一个轻量级的简单的框架
|