我在将 PHAR 包含到我的应用程序引导代码中时遇到问题。我正在尝试包括phpunit/phpunit
PHAR 在我的应用程序中提供 PHPUnit 类。
鉴于我有以下目录结构:
/path/to/code/
app.php
phpunit
Where phpunit
是作为 PHAR 的 PHPUnit,并且app.php
包含:
<?php
$phar = 'phar://' . __DIR__ . '/phpunit';
include $phar;
assert(class_exists('\\PHPUnit\\Framework\\TestCase'));
我收到以下错误:
PHP Warning: include(phar:///path/to/code/phpunit): failed to open stream:
phar error: no directory in "phar:///path/to/code/phpunit",
must have at least phar:///path/to/code/phpunit/ for root directory
(always use full path to a new phar) in /path/to/code/app.php on line 4
但是当我将 PHAR 重命名为phpunit.phar
,并包括它而不是使用
<?php
$phar = 'phar://' . __DIR__ . '/phpunit.phar';
include $phar;
assert(class_exists('\\PHPUnit\\Framework\\TestCase'));
该代码运行良好,并且TestCase
类存在。
为什么第一个版本不起作用,有关“新 Phar 的完整路径”的错误是什么意思?
我的 PHP 版本是 7.2,PHPUnit PHAR 是版本 7.*,已随 Phive 安装。
“为什么不直接使用.phar
扩大?”
我希望能够将 PHPUnit PHAR 作为二进制文件使用,而无需.phar
扩展以保持事物清洁。