C++11
编程- 了解
Linux
系统相关API
知识,如epoll
、socket
、fork
、pthread
,具备Unix
环境编程能力 - 了解
PHP
ZendVM
的基本原理,了解php-src
sudo apt install php-dev gcc g++ cmake autoconf curl openssl
建议在github
上fork
swoole-src
到个人空间,然后git clone
到本地
cd ~/workspace/
[email protected]:{your_name}/swoole-src.git
cd swoole-src
Linux
环境,建议使用Ubuntu 18/20
,Windows
环境可使用WSL2
或虚拟机
C++11
编译器,建议使用g++
IDE
:请使用Eclipse CDT
,不建议使用VIM
和Emacs
这样的本文编辑器- 建议使用宽屏显示器,分辨率大于
1920x1080
- 遵循
Google C++ Style
规范 - 请使用
clang-format
(v9
或更高)工具格式化代码 - 单行字符宽度调整为
120
,原因是在现代大屏幕显示器上,Unix
传统的80
宽度太小了,只占用到了50%
左右屏幕,在屏幕上会留下大量空白区域,利用率不足。调整到120
宽度,在Eclipse
等IDE
工具中,左侧是工程视图、右侧是类/函数结构视图,中间区域是代码编辑区,可以最大化利用显示器所有区域 - 缩进从
2
空格调整为4
空格,原因是2
空格,辨识度较低,带来了不必要的心智负担,调整到4
空格,会更加清晰
在Eclipse
中创建C++
工程,目录使用克隆好的swoole-src
配置工程的include
路径,注意需要同时配置C
和C++
相关,将php
头文件目录设置到include
路径中。例如:
/usr/local/include/php
/usr/local/include/php/main
/usr/local/include/php/TSRM
/usr/local/include/php/Zend
配置工程的预定义宏,加入HAVE_CONFIG_H
cd ~/workspace/swoole-src
phpize
./configure
make -j 8
suod make install
修改php.ini
在末尾加入swoole.so
修改swoole-src
下的.h
和.cc
源文件,重新编译安装,编写测试脚本,验证是否生效。
src/
: 与php
无关的内核模块源文件include/
: 头文件core-tests
: 内核测试文件,基于googletest
tests
:PHP
测试文件examples
: 示例文件swoole_*.cc
:PHP
扩展相关源文件