【问题标题】:How to deploy a webapplication in a single phar file with composer?如何使用 Composer 在单个 Phar 文件中部署 Web 应用程序?
【发布时间】:2014-05-14 19:40:48
【问题描述】:
我打算使用带有数字签名的单个 phar 文件来部署 Web 应用程序。将此与事件溯源相结合将使我很容易遵循早期发布,经常发布的理念......
我使用 composer 作为包管理器。我不确定的:
- 如何将供应商与我的应用程序打包到一个 phar 中?
我不确定 composer 如何安装供应商,但我认为它也可以将它们安装为 phar 文件。我几乎没有发现将 phar-s 装入其他 phars 的情况。
- composer 的自动加载器是否准备好执行此操作,或者我必须进行一些修改?
- 我必须在服务器上安装作曲家吗? (我没有 CLI,我也无权这样做。对我不利,是的。)
- 如何自动过滤掉我的应用程序及其依赖项的测试和文档。 (我想要一个小的发布包。)
【问题讨论】:
标签:
php
deployment
composer-php
web-deployment
phar
【解决方案1】:
回答您的一些问题:
- Composer 不会将 .phar 文件安装为依赖项。事实上,那些以 .phar 文件(即 PHPUnit)形式出现的常见包确实提供了 .phar 作为使用 Composer 的替代方案,这是互斥的。因此,您只需运行
composer install,获取您自己的文件和供应商文件的目录树,然后可以将这些全部添加到您即将创建的 .phar 文件中。
- Composer 自动加载器确实使用
__DIR__ 来知道它在哪里,以及其他文件与该常量的相对位置。这应该与 .phar 文件兼容。
- 您必须在要创建 .phar 文件的计算机上安装 Composer。
- 过滤不需要的文件是创建 .phar 文件的构建脚本的任务。这不是 Composer 的任务。
请注意,已经有一些库可以帮助您创建 .phar 文件。例如,看看kherge/box。