我是一个PHP新手。
我试图为我的项目制作一个PHAR。
我的项目包括5个目录,并在每个目录中复用类。
我已经按照本教程
了我做了以下事情:
到我的主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,那就没关系了)
答案 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>