欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

如何命名二进制PHP扩展?

程序员文章站 2022-06-11 12:29:32
...
Python界有自己的文件名约定 https://www.python.org/dev/peps/pep-0427/#file-name-convention,比如 distribution-1.0-1-py27-none-any.whl一看就知道自己能不能用到这个whl包。

最近需要发布 thrift_protocol扩展,故自己定下一个命名规范,在此记录之。

首先看看php如何判断扩展兼容与否, dl.c:172和 dl.c:182分别根据 zend_api(比如 20151012)和 build_id(比如 API20151012,NTS)来判断是否兼容。

所以我们用build_id+platform就可以表示ABI版本了,加上name和version就得出命名规范:

{distribution}-{version}-{build_id}-{platform}.{so,dll}

比如:

thrift_protocol-1.0-API20151012,NTS-linux_x86_64.so

遗憾的是,github会吞掉英文逗号,所以只能用英文句号替代了。

不过, phpize的时候能看到 zend_api,无法看到 build_id,算是一个不方便的地方,只能通过 php -i | grep 'PHP Extension Build'来变通获取了。