无法创建PHAR存档

时间:2014-03-16 11:08:48

标签: php phar

我是一个PHP新手。

我试图为我的项目制作一个PHAR。

我的项目包括5个目录,并在每个目录中复用类。

我已经按照本教程

Phar – PHP archiving practice

我做了以下事情:

到我的主index.php我添加了这一行:

$sLibraryPath = 'lib/myPhar.phar';

// we will build library in case if it not exist
if (! file_exists($sLibraryPath)) {
   ini_set("phar.readonly", 0); // Could be done in php.ini

   $oPhar = new Phar($sLibraryPath); // creating new Phar
   $oPhar->setDefaultStub('index.php', 'classes/index.php'); // pointing main file which require all classes
   $oPhar->buildFromDirectory('classes/'); // creating our library using whole directory

   $oPhar->compress(Phar::GZ); // plus - compressing it into gzip

}

我创建了一个名为classes的新文件夹,并在其中创建了一个index.php文件,并且我包含了所有项目类。

我chmod 777以下目录:lib,HelloWorld,HelloWorld / index.php,

并改变了phar.readonly。 (phar.readonly = 0)

我仍然收到此消息:

Fatal error: Uncaught exception 'PharException' with message 'unable to create temporary file' in /Applications/XAMPP/xamppfiles/htdocs/HelloWorld/index.php:10 Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/HelloWorld/index.php(10): Phar->setDefaultStub('index.php', 'classes/index.p...') #1 {main} thrown in /Applications/XAMPP/xamppfiles/htdocs/HelloWorld/index.php on line 10

我没有找到任何有用的信息如何使用它,我很乐意为您提供帮助。

(如果有更好的方法来创建PHAR,那就没关系了)

2 个答案:

答案 0 :(得分:0)

我不确定这是不是重点,但请查看此链接Bug #63112 PharException when compiling 可能你和temp目录有同样的麻烦吗?

答案 1 :(得分:-1)

使用PHP2Phar包从PHP文件创建Phar文件。

链接: https://github.com/00F100/php2phar

用法:

$ php php2phar.phar --dir-source <path/to/dir> --index-file </path/to/index.php> --output-file <path/to/file.phar>