如何将 PHP 脚本转换为 Phar 文件


how to convert a php script into a phar file?

该项目的目标是将 php 脚本转换为 .phar

我的项目由以下部分组成:1 个单索引.php用于将类调用到/lib 和/database 文件夹中

目标是尽可能少地分发文件(理想情况下是2:index.php和assets.phar,它将包括来自/lib和/database的所有文件)甚至1(index.phar)

我尝试过 empir 并取得了任何成功:以前有人这样做过吗?

任何可用的教程?

使用 Phar 类。例如,将其放在compress.php中:

$phar = new Phar('index.phar');
$phar->addFile('index.php');
$phar->buildFromDirectory('lib');
$phar->buildFromDirectory('database');

从命令行运行php compress.php。瞧,你自己有一个法尔。

我使用以下脚本:

<?php
$phar = new 'Phar(__DIR__ . '/index.phar');    
$phar->startBuffering(); // For performance reasons. Ordinarily, every time a file within a Phar archive is created or modified in any way, the entire Phar archive will be recreated with the changes.  
$phar->addFile('index.php');
$phar->addFile('composer.json');
$phar->addFile('composer.lock');
$phar->buildFromDirectory(__DIR__ . '/vendor');
$phar->stopBuffering();
运行

以下命令以运行以前的脚本:

$ php -dphar.readonly=0 index.php

(在 PHP 中默认禁用创建 phar 存档。