コマンドラインからpharファイルとして実行できる非常に単純な PHP CLI アプリケーションを作成しようとしています。
# php myProject.phar
これは私がこれまでに試したことです:
私のプロジェクト
私のプロジェクトは というディレクトリにMyProject
あり、その中に次の 2 つのファイルがあります。
|-- createPhar.php
`-- bootstrap.php
ブートストラップ.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
...という名前の新しいファイルMyProject.phar
がプロジェクトのディレクトリに作成されます。
|-- bootstrap.php
|-- createPhar.php
`-- MyProject.phar
ここで問題です
phar ファイルを実行すると...
# php MyProject.phar
bootstrap.php
...スクリプトを実行したときと同じ出力が表示されることを期待しています。
代わりに、何も見えません。まったく出力されません。これは、私のbootstrap.php
スクリプトが作成されたデフォルトのスタブに含まれていないことを意味します$phar->createDefaultStub('bootstrap.php')
Phar とそのスタブの作成方法を誤解していると思います。どこが間違っているのか説明してください。