如何将php脚本转换为phar文件?

时间:2015-01-03 22:24:13

标签: php phar

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

我的项目由以下部分组成: 1个index.php,它将类调用到/ lib和/ database 文件夹

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

我尝试使用empir取得任何成功:有人曾经这样做过吗?

任何可用的教程?

2 个答案:

答案 0 :(得分:3)

使用the Phar class。例如,将其放在compress.php

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

从命令行运行php compress.php。 Voilà,你有一个Phar。

答案 1 :(得分:2)

我使用以下脚本:

<?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存档的创建。)