我正在尝试创建一个非常简单的 PHP CLI 应用程序,可以作为phar http://php.net/manual/book.phar.php从命令行文件:
# php myProject.phar
这是我到目前为止所尝试过的:
我的项目
我的项目位于一个名为MyProject
它里面有这两个文件:
|-- createPhar.php
`-- bootstrap.php
引导程序.php
The bootstrap.php
文件包含以下内容:
<?php
print phpversion() . PHP_EOL;
print 'i am some script' . PHP_EOL;
当我从 Ubuntu 命令行运行此脚本时:
# cd MyProject
# php bootstrap.php
我得到以下输出:
5.3.2-1ubuntu4.9
i am some script
创建Phar.php
createPhar.php 文件旨在将项目转换为 Phar 存档。
它看起来像这样:
<?php
$phar = new Phar('MyProject.phar');
$phar->addFile('bootstrap.php');
$phar->setStub( $phar->createDefaultStub('bootstrap.php') );
当我运行该脚本时...
# php createPhar.php
...一个名为MyProject.phar
在我的项目目录中创建。
|-- bootstrap.php
|-- createPhar.php
`-- MyProject.phar
现在问题来了
当我运行 Phar 文件时...
# php MyProject.phar
...我希望看到与我运行时得到的相同的输出bootstrap.php
脚本。
相反,我什么也没看到。根本没有输出。这意味着我的bootstrap.php
脚本未包含在创建的默认存根中$phar->createDefaultStub('bootstrap.php')
我认为我误解了 Phar 及其存根的创建方式。请您解释一下我哪里出错了。