Nette phar 引导文件
Nette phar boot file
我正在尝试创建 PHP 框架 Nette 2.4 的单文件版本。我使用以下代码创建了一个 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: "loader.php" is not a file in phar "C:/wamp64/www/app/nette.phar" in C:\wamp64\www\app\nette.phar on line 2
所以,加载了单文件版本,但是没有引导文件loader.php。有谁知道错误在哪里?感谢所有的建议!
您无法从通过 Composer 下载的 Nette 创建 .phar。它没有一些必要的文件(例如你的Loader.php)。
如果要创建 .phar 从 https://nette.org/en/download 下载官方 .zip 并从文件夹 ./Nette
.
创建 .phar
__
顺便说一句,您不需要自己创建 .phar,您可以在文件夹 Nette-minified
的 .zip 文件中找到它
我正在尝试创建 PHP 框架 Nette 2.4 的单文件版本。我使用以下代码创建了一个 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: "loader.php" is not a file in phar "C:/wamp64/www/app/nette.phar" in C:\wamp64\www\app\nette.phar on line 2
所以,加载了单文件版本,但是没有引导文件loader.php。有谁知道错误在哪里?感谢所有的建议!
您无法从通过 Composer 下载的 Nette 创建 .phar。它没有一些必要的文件(例如你的Loader.php)。
如果要创建 .phar 从 https://nette.org/en/download 下载官方 .zip 并从文件夹 ./Nette
.
__
顺便说一句,您不需要自己创建 .phar,您可以在文件夹 Nette-minified