PHP版本:7.3.5
操作系统:我希望你是alpine
你也可以直接使用我为你准备的Dockerfile
,以保证和我的开发环境一致,避免不必要的麻烦:
docker build -t study -f docker/Dockerfile .
1、编写config.m4文件
2、开发规范
3、整理文件
4、理解PHP生命周期的过程
5、梳理一下架构
6、协程创建(一)
7、协程创建(二)
8、协程创建(三)
9、协程创建(四)
10、协程创建(五)
11、协程创建(六)
12、协程创建(七)
13、协程创建(八)
14、协程yield
15、协程resume
16、协程getCid
17、修复一些bug(一)
18、修复一些bug(二)
19、协程isExist
20、修复一些bug(三)
21、协程defer
22、协程短名(一)
23、协程短名(二)
到目前为止,我们已经实现了协程常用的关键接口,可以算是本书的第一版吧,接下来,我将会带领大家去实现网络的部分。我们的最终目标是去实现一个高性能的协程化的服务器。因为这其中涉及到了比较多的数据结构,所以需要些时间来构思文章内容。
大家可以提前去学习下以下知识点:IO多路复用(重点学习epoll
)、数据结构中的堆、定时器。
敬请期待。
24、引入libuv
25、sleep(一)
26、sleep(二)
27、sleep(三)
28、sleep(四)
29、sleep(五)
30、server创建(一)
31、server创建(二)
32、server接收请求
33、server监听的封装
34、server接收数据
35、server发送数据
36、server错误码
37、压测server(一)
38、socket可读写时候调度协程的思路
39、全局变量STUDYG
40、定义协程化的Socket类
41、协程化Socket::Socket
42、实现coroutine::Socket::bind和listen
43、协程化Socket::accept
44、协程化Socket::wait_event
45、在事件到来时resume对应的协程
46、协程化Socket::recv和send
47、实现coroutine::Socket::close
48、协程化服务器(一)
49、协程化服务器(二)
50、协程化服务器(三)
51、协程化服务器(四)
到目前位置,我们已经实现了一个协程化的服务器。实际上,对于协程的理解效果已经达到了,但是,我们学习是不能够停止的,我们接下来会让这个扩展更加的强大。我们会去实现协程在多线程里面可用,以及channel
,协程锁等等一些列的功能。
52、修复一些bug(四)
53、修复一些bug(五)
54、修复一些bug(六)
55、server关闭连接
56、压测server(二)
57、修复一些bug(七)
58、错误使用协程库导致的Bug(一)