webdevvie / pakket
从项目内部或...外部作为phar本身制作phar文件!
1.2.5
2024-03-12 09:02 UTC
Requires
- php: ^7.4|^8.0|^8.1|^8.2|^8.3
- symfony/console: ^5.4
Requires (Dev)
- mockery/mockery: ^1.3
- phpmd/phpmd: ^2.6
- phpunit/phpunit: ^8.5
- squizlabs/php_codesniffer: ~3.0
README
Pakket是荷兰语中的“包”。这个工具可以帮助你将项目打包成PHAR文件。
它旨在不依赖于框架。它不包含更新代码(对于使用phar本身下载新版本的phar,请另寻它处。它只是制作PHAR文件。
这是初始版本。我建议暂时不要将其用于生产。
如何作为库使用
可以使用composer通过以下方式包含包:
composer require webdevvie/pakket
创建您的phar存根(调用phar文件内部其他文件的东东)并将其命名为"stub"。
然后创建一个构建对象
<?php include("vendor/autoload.php"); $builder = new \Webdevvie\Pakket\Builder(); $config = [ "stubFile"=>__DIR__."/stub" ]; $builder->build( __DIR__, __DIR__."/yourphar.phar", $config )
然后您就可以开始比赛了!
当然,您可能不想将所有东西都包含到您的phar中。(制作一个“荷马”)您可以通过填写键"exclude"来排除这些内容,该键是一个正则表达式数组(这些是通过preg_match抛出的)。
如何作为phar使用
从此处下载预先构建的pakket.phar(待找到一个地方托管phar文件)。
创建一个pakket.json,包含正确的配置。
这是用于pakket本身的示例pakket.json。
{ "exclude": [ "/^Tests/i", "/^coverage/i", "/^yourphar.phar/i", "/^yourphar-(.*)\\.phar/i", "/^Tests\\/(.*)/i", "/^.git/i", "/^(.*)\\/.git/i", "/\\.gitignore/i", "/\\.travis.yml/i" ], "parse": [ "/^console/i" ], "targetPath": "yourphar.phar", "stubFile": "stub", "vars": {} }
在这种情况下,我们创建文件yourphar.phar
,解析/console文件以包含默认变量。
创建您的phar存根(调用phar文件内部其他文件的东东)并将其命名为"stub"。
现在运行pakket.phar
./pakket.phar build .
这里的命令是build
,要工作的路径是.
(当前目录),输出文件是yourphar.phar
您还可以指定输出(例如,您想通过命令行指定目标文件来自动化构建)。
./pakket.phar build . output.phar
这里的命令是build
,要工作的路径是.
(当前目录),输出文件是yourphar-1.0.phar
待办事项
以下内容仍然是待办事项:
- 一个设置命令,用于配置pakket.json文件。
- 更好的帮助文本。
- 找到一个托管.phar文件的地方。