借着Laracon的热潮,在这里留个static-php-cli的分享!
项目地址
GitHub Repo: github.com/crazywhalecc/static-php...
首页:static-php.dev/
项目简介
项目主要的目的是将 PHP 编译为单一静态编译的文件,这样就可以将 PHP 环境以一个单文件代替。配合 phpmicro 也可以构建二进制和代码结合为一个文件的单文件可执行程序。
项目背景
这个项目起源于我自己写的机器人框架,因为涉及到环境分发,无论使用 Docker、系统包管理还是面板等方式安装 PHP 环境,都是一个比较麻烦的问题,于是就起身做了一些常见扩展的静态编译尝试,并将 PHP 编译为单个文件加入项目进行分发。
经历过一次重构,旧版本为纯 bash 编写,灵活性不够强。新重构版本使用 PHP 的 symfony/console 作为基础编写,本身也是一个 php-cli 的程序。可以在不同环境下构建独立的 PHP 二进制。
贡献及国际化
起初项目本身只是个人框架的一个延伸,后来好像这是一个奇特的思路,对于 PHP 本身的传播来说是一个好事情。所以后续也就有了今天的 NativePHP、Herd。这里也很感谢 Beyond Code 对我的支持。
项目不足
现在项目其实并不是一个 PHP 的探索,因为静态编译的重点不在于 PHP 本身,而在于其依赖库。现在静态编译还有很多缺点,比如无法安装动态链接扩展(macOS 默认支持,但 Linux 需要加入一些魔法),使用证书需配置等问题。还有关于新扩展的支持,我不是一个专业的 C/C++ 码农,所以很多时候对于新扩展的支持还需要靠社区大佬一起帮忙。
推荐文章: