一贯以来在其他编程措辞程序员心目中PHP便是个套HTML页面的。所谓PHP程序员便是搞WordPress、discuz二次开拓,一个月拿三五千的loser,和我大Java工程师比较切实其实low爆了。
但大家黑了PHP半天,才创造PHP最近这几年反而越来越盛行了,PHPer们的人为可一点都不低。就拿我司来说吧,之前面过一个PHP程序员事情三年多,水平一样平常吧,后来公司开价2万/m收了。
水平好一点的均匀都在3-4万/m。实际上作为一名PHP程序员,我很清楚PHP的确有很多局限性,比如Unix系统编程、网络通信编程、异步io,大部分PHPer不懂。

PHP界也确实没有这样的东西。Swoole开源项目便是为了填补PHP在这些方面的毛病出身的。与WordPress这些产品不同,swoole实际上是一个网络通信和异步io的引擎,一个根本库。PHPer可以基于swoole去实现过去PHP无法实现的功能。swoole为PHPer打开了通往另一个天下的大门。
swoole
用swoole可以做什么?
用户打开了我们的网站。他要做的便是勾选须要发邮件的代理商列表,然后把结算邮件发出去。
如果我们须要发1封邮件,我们写个函数实行即可。考虑到网络可能会轻微有点延迟,但是是可以接管的,用户会乖乖等你的网页发完邮件了再关闭网页。
如果我们要发布10封邮件,用一个for循环,循环10遍实行发邮件操作。这时候,大概10倍的网络延迟会让用户轻微有点不耐烦,但勉强可以等吧。
如果要发1000封邮件,for循环1000遍,用户直接逼上梁山,什么破网站!
但实际上,我们很可能有超过2万的邮件。怎么处理这个延迟的问题?
答案便是用异步。把“发邮件”这个操作封装,然后后台异步地实行1万遍。这样的话,用户提交网页后,他所等待的韶光只是“把发邮件任务要求推送进行列步队里”的韶光。而我们的后台做事将在用户看不见的地方跑。而swoole就为我们实现了异步队列处理及并发等问题。
Swoole须要节制哪些根本?多进程/多线程
理解Linux操作系统进程和线程的观点理解Linux进程/线程切换调度的基本知识理解进程间通信的基本知识,如管道、UnixSocket、行列步队、共享内存SOCKET
理解SOCKET的基本操作如accept/connect、send/recv、close、listen、bind理解SOCKET的吸收缓存区、发送缓存区、壅塞/非壅塞、超时等观点IO复用
理解select/poll/epoll理解基于select/epoll实现的事宜循环,Reactor模型理解可读事宜、可写事宜TCP/IP网络协议
理解TCP/IP协议理解TCP、UDP传输协议调试工具
利用 gdb 调试Linux程序利用 strace 跟踪进程的系统调用利用 tcpdump 跟踪网络通信过程其他Linux系统工具,如ps、lsof、top、vmstat、netstat、sar、ss等swoole高等讲解安装篇源码安装Swoole源码安装PHP7让PHP支持Swoole根本篇网络通信引擎Tcp做事/客户端websocket做事器进阶篇异步MySQL场景处理异步实时日志高性能行列步队异步任务task进程、内存、协程