Zan PHP Framework 是有赞开源的基于 PHP 协程的网络服务框架,提供最简单的方式开发面向 C10K+ 的高并发SOA服务和RPC服务。
该项目每天为2,000+个服务提供300,000,000+次访问量支持,广泛应用于有赞各项业务。
基于 yield 实现了独立堆栈的协程
yield
类似于 Golang 的并发编程模型实现
基于 zan 提供异步非阻塞I/O服务
连接池支持(内置 MySQL、Redis、syslog 等多种组件)
类似 Golang 的 defer 机制解决由于异常导致的资源未释放、锁未释放的问题
可继承的View布局及组件化支持,方便完成 bigPipe/bigRender/ 首屏加载优化等不同的渲染方式
基于模型驱动的 SQLMap,实现了 SQL 的快速定位及方便的 sharding、cache 支持
提供类似于 Laravel 的 middleware(Filters & Terminators) 机制
Di及单元测试的良好支持
完整的RPC远程服务调用方案
ZanPHP 的定位是高并发 Web 服务或业务中间件。
ZanPHP 参考了很多 Golang 特性,不过目的绝不是为了替换掉 Golang。
PHP 在业务系统开发上的优势明显,而 Golang 相信会是将来系统编程的霸主。
ZanPHP 和 Golang 的边界是:ZanPHP做业务系统;Golang 做平台系统(中间件或基础服务组件)。
而 ZanPHP 和 Golang 编程模型的驱近,是希望能给PHP程序员一个更好的桥梁到Golang。
理想的技术栈是:ZanPHP + Go + 少量的C/C++。
当然对于致力于终身coding的码农来说:Java依然是很难跨过去的坎。