2016-11-27 56 views
0

我試圖創建一個單文件版本PHP框架Nette 2.4。我創建了一個藥業文件中使用此代碼:Nette phar引導文件

<?php 
$phar = new Phar('nette.phar'); 
$phar->buildFromDirectory(__DIR__ . '/../vendor/nette'); 
$phar->setStub("<?php 
    require 'phar://' . __FILE__ . '/loader.php'; 
    __HALT_COMPILER();"); 
$phar->compressFiles(Phar::GZ); 

一切都很好,在文件被創建。如果我嘗試使用這個壓縮版本:發生

// bootstrap.php 
<?php 
require __DIR__ . '/nette.phar'; 
... 

錯誤:

Warning: require(phar://C:\wamp64\www\app\nette.phar/loader.php): failed to open stream: phar error: &quot;loader.php&quot; is not a file in phar &quot;C:/wamp64/www/app/nette.phar&quot; in C:\wamp64\www\app\nette.phar on line 2 

所以,單文件版本加載,但沒有啓動文件loader.php。有誰知道錯誤在哪裏?感謝所有的建議!

+0

你肯定有loader.php?如果你通過composer安裝了nette,它應該在'vendor/nette/nette/Nette/Framework.php'中。 –

回答

0

您無法通過Composer從Nette下載創建.phar。它沒有一些必要的文件(例如你的Loader.php)。

如果您想從https://nette.org/en/download創建.phar官方.zip並從文件夾./Nette創建.phar。

__

BTW,你不需要創建.phar自己,你可以找到它在.zip文件中的文件夾Nette-minified