请解释如何创建PHP的Phar存根
||
我正在尝试创建一个非常简单的PHP CLI应用程序,可以从命令行将其作为phar文件运行:
# php myProject.phar
到目前为止,这是我尝试过的:
我的项目
我的项目在一个名为ѭ1的目录中,并且其中包含以下两个文件:
|-- createPhar.php
`-- bootstrap.php
bootstrap.php
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
createPhar.php
createPhar.php文件旨在将项目转换为Phar存档。
看起来像这样:
<?php
$phar = new Phar(\'MyProject.phar\');
$phar->addFile(\'bootstrap.php\');
$phar->setStub( $phar->createDefaultStub(\'bootstrap.php\') );
当我运行该脚本时...
# php createPhar.php
...在我的项目目录中创建了一个名为“ 9”的新文件。
|-- bootstrap.php
|-- createPhar.php
`-- MyProject.phar
现在这是问题所在
当我运行phar文件时...
# php MyProject.phar
...我希望看到的是与运行bootstrap.php
脚本时得到的输出相同的输出。
相反,我什么也没看到。完全没有输出。这意味着由$phar->createDefaultStub(\'bootstrap.php\')
创建的默认存根未包含我的bootstrap.php
脚本。
我想我误解了Phars及其存根的创建方式。请您解释一下我出了什么问题。
没有找到相关结果
已邀请:
2 个回复
靛取糕奖穿
茬贺努充尽
然后: php -r \“要求 \'phar://Myproject.phar \';走();\” 或没有功能,它将执行您在其中具有的任何命令,但是通常您在phar中将具有一些功能或类文件。