创建 Phar 存档 要创建 Phar 存档,请使用 Phar::new() 方法:
$phar = new Phar("my_app.phar");
然后,您可以使用 addFile() 方法添加文件和目录:
$phar->addFile("main.php");
$phar->addDirectory("includes");
最后,使用 buildFromIterator() 方法构建 Phar 存档:
$phar->buildFromIterator(new RecursiveDirectoryIterator("src"));
设置元数据 您可以使用 setStub() 和 setSignatureAlgorithm() 方法设置 Phar 存档的元数据:
// 设置 Phar 入口文件
$phar->setStub("<?php Phar::mapPhar(); include "main.php"; ?>");
// 设置签名算法
$phar->setSignatureAlgorithm(Phar::SHA1);
签名 Phar 存档 为了使 Phar 存档更安全,您可以使用 sign() 方法对存档进行签名:
$phar->sign("my_key.pem", "my_cert.pem");
分发和部署 一旦您创建了 Phar 存档,您就可以通过将文件复制到目标服务器或使用 Composer 等包管理器来分发和部署它。
执行 Phar 存档 要在 Linux 和 macOS 系统上执行 Phar 存档,请使用以下命令:
php my_app.phar
在 Windows 系统上,请使用以下命令:
php.exe my_app.phar
优点 使用 Phar 扩展的优点包括:
- 轻量级且可移植,无需其他依赖项
- 便于分发和部署,只需复制一个文件
- 增强安全性,可通过签名验证存档完整性
- 支持压缩,减少存档大小
限制 Phar 扩展也有一些限制:
- 在某些共享主机环境中不受支持
- 性能开销略高于直接执行 PHP 脚本
- 对于大型应用程序,管理可能变得复杂
最佳实践 创建和使用 Phar 存档时的最佳实践包括:
- 将 Phar 存档用作独立应用程序,而不是将它们集成到现有应用程序中
- 保持 Phar 存档相对较小,并仅包括必要的依赖项
- 使用准确的元数据来描述 Phar 存档的内容和目的
- 考虑使用签名来增强安全性
- 定期测试 Phar 存档以确保其正常工作