如何命名二进制PHP扩展?
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'
来变通获取了。
如何命名二进制PHP扩展?