Skip to content

Latest commit

 

History

History
82 lines (63 loc) · 2.48 KB

HOW_TO_CONTRIBUTE.md

File metadata and controls

82 lines (63 loc) · 2.48 KB

如何参与贡献 Swoole 开源项目

技能需求

  • C++11编程
  • 了解Linux系统相关API知识,如epollsocketforkpthread,具备Unix环境编程能力
  • 了解PHP ZendVM的基本原理,了解php-src

安装软件

sudo apt install php-dev gcc g++ cmake autoconf curl openssl

克隆项目

建议在githubfork swoole-src 到个人空间,然后git clone到本地

cd ~/workspace/
[email protected]:{your_name}/swoole-src.git
cd swoole-src

开发环境

  • Linux环境,建议使用 Ubuntu 18/20Windows环境可使用WSL2虚拟机
  • C++11编译器,建议使用g++
  • IDE:请使用Eclipse CDT,不建议使用VIMEmacs这样的本文编辑器
  • 建议使用宽屏显示器,分辨率大于1920x1080

编码风格

  • 遵循Google C++ Style规范
  • 请使用clang-formatv9或更高)工具格式化代码
  • 单行字符宽度调整为120,原因是在现代大屏幕显示器上,Unix传统的80宽度太小了,只占用到了50%左右屏幕,在屏幕上会留下大量空白区域,利用率不足。调整到120宽度,在EclipseIDE工具中,左侧是工程视图、右侧是类/函数结构视图,中间区域是代码编辑区,可以最大化利用显示器所有区域
  • 缩进从2空格调整为4空格,原因是2空格,辨识度较低,带来了不必要的心智负担,调整到4空格,会更加清晰

新建工程

Eclipse中创建C++工程,目录使用克隆好的swoole-src

配置 IDE

配置工程的include路径,注意需要同时配置CC++相关,将php头文件目录设置到include路径中。例如:

  • /usr/local/include/php
  • /usr/local/include/php/main
  • /usr/local/include/php/TSRM
  • /usr/local/include/php/Zend

include路径

配置工程的预定义宏,加入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扩展相关源文件