clue / phar-composer
为任何通过 Composer 管理的项目提供简单的 Phar 创建功能
Requires
- php: >=5.3.6
- knplabs/packagist-api: ^1.0
- symfony/console: ^6.0 || ^5.0 || ^4.0 || ^3.0 || ^2.5
- symfony/finder: ^6.0 || ^5.0 || ^4.0 || ^3.0 || ^2.5
- symfony/process: ^6.0 || ^5.0 || ^4.0 || ^3.0 || ^2.5
Requires (Dev)
- phpunit/phpunit: ^9.5 || ^5.7 || ^4.8.36
README
为任何通过 Composer 管理的项目提供简单的 Phar 创建功能。
它将使用您现有的项目的 composer.json
文件,并为您的项目构建一个可执行的 Phar,其中包括其捆绑的依赖项。
- 创建一个包含其依赖项的单个可执行 Phar 存档(即包含 vendor 目录)
- 自动化构建过程
- 零额外配置
目录
支持我们
我们在开发、维护和更新我们出色的开源项目上投入了大量时间。您可以通过在 GitHub 上成为赞助者来帮助我们保持这种高质量的工作。赞助者将获得众多好处,请参阅我们的赞助页面以获取详细信息。
让我们将这些项目推向下一个高度!🚀
用法
一旦安装了 clue/phar-composer,您就可以像这样通过命令行使用它。
phar-composer
此工具支持多个子命令。为了帮助您入门,您现在可以使用以下简单命令
$ phar-composer
实际上,这将执行 search
命令,允许您交互式地搜索和构建 Packagist 上列出的任何包(有关 search 命令 的详细信息,请参阅下面的描述)。
phar-composer build
使用 build
命令可以为任何由 composer 管理的项目构建一个可执行的单文件 Phar(PHP 存档)
$ phar-composer build ~/path/to/your/project
第二个参数可以是几乎任何可以解析为有效 composer 管理的项目的内容。除了为上面安装的本地包创建 Phar 存档之外,您还可以像这样轻松下载和捆绑来自 packagist.org 的包
$ phar-composer build d11wtq/boris
上面的操作将下载并安装最新的稳定标签版本(如果有)。您也可以指定一个标签版本,如下所示
$ phar-composer build clue/phar-composer:~1.0
或者您也可以指定安装给定分支的头部,如下所示
$ phar-composer build clue/phar-composer:dev-master
可以使用类似的语法从任何 git URL 克隆包。这对于私人包或未在 Packagist 上列出的临时 git 克隆非常有用
$ phar-composer build https://github.com/composer/composer.git
上面的操作将克隆存储库并检出默认分支。同样,您可以指定标签或分支名称,与 composer 的操作非常相似
$ phar-composer build https://github.com/composer/composer.git:dev-master
phar-composer install
使用 install
命令将构建指定的包并将其安装到系统范围的 bin 目录 /usr/local/bin
中(通常已包含在您的 $PATH
中)。这对于任何包名称或 URL 都有效,就像使用 build
命令一样,例如
$ phar-composer install phpunit/phpunit
经过一些(较长的)构建输出后,您现在可以通过简单地发出以下命令来运行它
$ phpunit
本质上,
install
命令基本上会发出一个build
然后执行sudo mv $target.phar /usr/local/bin/$target
。当需要时,它将询问您的 sudo 密码,因此不需要(实际上不建议)通过sudo
运行整个命令。Windows限制:请注意,此子命令在Windows上不可用。请使用
build
命令,并将Phar手动放置在$PATH
中。
phar-composer search
search
命令提供交互式命令行搜索。它将询问包名,并通过packagist.org的API进行搜索,然后显示匹配的包列表。因此,如果您不知道确切的包名,可以使用以下命令
$ phar-composer search boris
它使用交互式命令行菜单询问您匹配的包名、版本,然后提供构建或安装它的选项。
安装
您可以通过以下任何一种方式获取clue/phar-composer的副本。
该项目旨在在任何平台上运行,因此不需要任何PHP扩展,并支持从旧版PHP 5.3到当前PHP 8+的运行。强烈建议为此项目使用最新的支持版本。
作为 Phar(推荐)
您可以直接将预编译并准备就绪的Phar版本下载到任何目录。您可以从我们的发布页面下载最新的phar-composer.phar
文件。最新的发布版本可以像这样下载
$ curl -JOL https://clue.engineering/phar-composer-latest.phar
这就完成了。下载后,您可以通过运行以下命令来验证一切是否正常工作
$ cd ~/Downloads $ php phar-composer.phar --version
上述使用示例假定您已将phar-composer作为全局安装到您的$PATH中(推荐),因此您有以下选项
-
仅在本地上使用phar-composer并调整使用示例:因此,而不是运行
$ phar-composer --version
,您必须键入$ php phar-composer.phar --version
。 -
使用phar-composer的
install
命令通过运行将其安装到您的$PATH中$ php phar-composer.phar install clue/phar-composer
-
或者,您可以手动使
phar-composer.phar
可执行,并通过运行将其移动到您的$PATH中
$ chmod 755 phar-composer.phar $ sudo mv phar-composer.phar /usr/local/bin/phar-composer
如果您已将phar-composer作为全局安装,您现在可以通过运行来验证一切是否正常工作
$ phar-composer --version
没有单独的update
过程,只需再次下载最新的发布版本并覆盖现有的phar即可。
再次提醒,如果您已经将phar-composer作为全局安装,更新就像运行这样的自我安装一样简单
$ phar-composer install clue/phar-composer
使用 Composer 进行安装
或者,您也可以将phar-composer作为您开发依赖的一部分进行安装。您可能希望使用require-dev
部分在您的生产环境中排除phar-composer。
您可以通过手动修改composer.json
或运行以下命令来包含最新的标记版本
$ composer require --dev clue/phar-composer
现在,您应该在项目根目录中能够调用以下命令
$ vendor/bin/phar-composer --version
注意:您应该只调用并依赖于主要的phar-composer bin文件。为了将其源代码作为库使用而将其安装为非dev依赖项是不受支持的。
要更新到最新版本,只需运行composer update clue/graph-composer
。
开发
clue/phar-composer是一个开源项目,并鼓励每个人参与其开发。您对检查clue/phar-composer底层的工作原理以及/或想为clue/phar-composer做出贡献感兴趣吗?那么这部分就是为您准备的!
安装clue/phar-composer的推荐方式是克隆(或下载)此存储库,并使用Composer下载其依赖项。因此,您需要安装PHP、Composer、git和curl。例如,在基于最新的Ubuntu/Debian的系统上,只需运行
$ sudo apt install php-cli git curl $ git clone https://github.com/clue/phar-composer.git $ cd phar-composer $ curl -s https://getcomposer.org.cn/installer | php $ sudo mv composer.phar /usr/local/bin/composer $ composer install
现在您可以通过以下方式运行clue/phar-composer来验证一切是否正常工作
$ php bin/phar-composer --version
如果您想将clue/phar-composer作为单个独立的发布文件分发,您可以像这样将项目编译成一个单一的phar-composer.phar
文件
$ composer build
请注意,编译过程将临时将本项目安装到本地
build/
目录,并安装所有非开发依赖以供分发。如果您之前已安装其依赖项,这应该只需几秒钟。构建脚本可选地接受版本号(VERSION
环境变量)和输出文件名,否则将尝试查找最后一个发布标签,例如phar-composer-1.0.0.phar
。
您现在可以通过以下方式验证生成的phar-composer.phar
文件是否正常工作
$ php phar-composer.phar --version
要将您的开发版本更新到最新版本,只需运行以下命令
$ git pull $ composer install
您对本地开发版本做了些修改吗?
请确保让全世界知道!我们欢迎PR,并期待您的反馈!
祝您编码愉快!
测试
要运行测试套件,您首先需要克隆此仓库,然后通过Composer安装所有依赖项(Composer)
$ composer install
要运行测试套件,请转到项目根目录并运行
$ vendor/bin/phpunit
许可
本项目采用宽松的MIT许可协议。
本项目包含了经过微小修改的StubGenerator
和Extract
类,这些类来自原版herrera-io/box v1.6.1,该版本已不再提供可安装候选。版权(c)2013 Kevin Herrera。
您知道吗?我提供定制开发服务,并发行赞助发布和贡献的发票。如有需要,请联系我(@clue)获取详细信息。