問題タブ [phar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1548 参照

php - PHAR アーカイブを PHP 実行可能ファイルとしてマークする

PHAR アーカイブを PHP としてマークして(これの正しい用語はわかりません)、一部なしで cli から使用できるようにしようとしていphpます。そのため、呼び出す代わりに、php /path/to/my/archive.phar ARGUMENTS_HERE移動してどこからでも/usr/local/bin呼び出すことができarchiveます。(PHPUnit や Composer と同じように)。

私が正しければ、それを行うに#!/usr/bin/env phpは、PHAR アーカイブ ファイルの上に追加するだけでよいのでしょうか?

それ、どうやったら出来るの?ビルドスクリプトでcomposer コンパイラを模倣しようとしましたが、 PHP_CLI (セグメンテーション違反)がクラッシュするだけです。

ご覧のとおり、/lib/app.phpファイルを実行するために必要なのはスタブだけで、それだけです。

コンパイルされた PHAR の先頭に追加

もちろん、私が最初に試したのは手動でアーカイブに追加することでしたが、それは破損しているようです:

手動で変更する前に、まったく同じアーカイブが機能することに注意してください。(ただしphp /path/to/arch、もちろん必要です)

0 投票する
1 に答える
1212 参照

php - Phar の有無にかかわらずパッケージ化するための互換性のある方法で PHP ファイルを含める方法は?

次の構造を持つ PHP アプリケーションがあるとします。

同じソースベースで同時に次のケースをカバーしようとしています:

  1. No Phar : DocumentRootweb/を指し、すべてのリクエストをindex.phpにリダイレクトして、アプリケーションをそのまま使用できること。
  2. Minimal Phar : web/index.phpのみを含み、 web/application-minimal.pharとして保存されるphar を生成できること。
  3. Full Phar : libディレクトリとweb/index.phpの両方のコンテンツを含み、web/application-full.pharとして保存されるphar を生成できること。

phar ファイルの場合、すべての要求は phar ファイル自体にリダイレクトされます。

*require_once* を変更せずに、これらすべてのユースケースを達成することは可能ですか?

*web/index.php からlib/mylib.phpをインクルードするために、さまざまなアプローチ (相対/絶対) を試しました。また、 Phar::mount()でいくつかのトリックを試しました。私の試みはどれも成功しませんでした。

0 投票する
1 に答える
952 参照

php - phar.cache_list ディレクティブでキャッシュされた phar をどのように更新しますか?

phar をcache_listディレクティブに追加するphp.iniと、キャッシュがうまく機能しました。数日後、phar を更新すると、次のエラーが表示されます。

ディレクティブをコメント アウトするcache_listと、phar は機能し、問題なくロードされますが、キャッシュできなくなりました。crc32これは、PHPが古いファイルを見ていると思わせます。

他にキャッシュを「リフレッシュ」する方法がわからない、またはこれが問題であるかどうかはわかりません。

0 投票する
1 に答える
901 参照

php - PHP ソースから実行可能な phar コマンドを取得するにはどうすればよいですか?

このマンページpharで説明されているように、(Debian Linux で) コマンド ライン ツールを使用できるようにしたいと考えています。

私がこれまでに行ったこと:

  1. PHP PHAR ソース フォルダーをダウンロードしました。

  2. に移動しました/usr/share/

  3. phar.phpfrom #!/usr/local/bin/phpto #!/usr/bin/php(PHP シンボリックリンクへのパス -> PHP 実行可能ファイルへのパス)の最初の行を変更しました。

  4. へのシンボリックリンクを作成しましphar/usr/share/phar/phar.php

phar helpエラーを返すようになりました:

私は何を間違っていますか?それを機能させる方法は?

どうも

0 投票する
2 に答える
22326 参照

linux - make の実行中にエラーが発生しました: 区切り記号がありません (8 つのスペースではなく TAB を意味していましたか?)

pharDebian VM に PHP コマンド ライン ツールをインストールしようとしています

(1) php-src をダウンロードします。/tmp/php/src にあると仮定します。

(2) ディレクトリを /tmp/phar にする

(3)これを /tmp/php-src/ext/phar/Makefile として保存します。

(4) cd /tmp/php-src/ext/phar

(5)走るsudo make

ステップ5の後、エラーが発生します:

私が知っているように、このエラー メッセージには 2 つの原因が考えられます。

  1. make ファイルのタブ。でファイルをテストしましたod -t c Makefile。ファイルにはタブが含まれていません ( \t)。

  2. これは v3.81 のバグである可能性があり、 makev3.82 へのパッチまたはアップグレードが必要です (まだ不安定です: "警告: このパッケージは実験的ディストリビューションからのものです。 ")。ダウンロードしてインストール ( dpkg -i make_3.82-1_amd64.deb) しましたが、まだエラーが発生しています。

エラーの原因は何ですか? どうすれば回避できますか?

どうも

0 投票する
1 に答える
1133 参照

php - Zend Framework 2 の ZFTool から Phar を作成できません

ZFTool の Phar アーカイブは、GitHub からダウンロードするか、手動で作成できます。

自分で Phar をコンパイルしようとすると、次のエラーが発生します。

フォルダが見つかりません/lib/ZendFramework/ZFTool/vendor...

私は何か間違ったことをしていますか?

0 投票する
1 に答える
676 参照

php - passwordlib 致命的エラー

私はPasswordLibを使用しています。プロジェクトを wamp で実行し、すべて問題ありませんが、ホスティングにアップロードすると、次のエラーが発生しました。

致命的なエラー: メッセージ '__HALT_COMPILER(); で例外 'PharException' がキャッチされませんでした。/data/web/virtuals/9784/virtual/www/subdom/roids/_libs/PasswordLib.phar:21 スタック トレース: #0 /data/web/virtuals/9784/virtual/www/ subdom/roids/_libs/PasswordLib.phar(21): Phar::mapPhar('PasswordLib.pha...') #1 /data/web/virtuals/9784/virtual/www/subdom/roids/index.php( 7): require_once('/data/web/virtu...') #2 {main} が /data/web/virtuals/9784/virtual/www/subdom/roids/_libs/PasswordLib.phar の 21 行目にスローされる

致命的なエラー: メッセージ「phar "/data/web/virtuals/9784/virtual/www/subdom/roids/_libs/PasswordLib.phar" SHA1 署名を検証できませんでした: /data/ の壊れた署名」を含むキャッチされない例外 'PharException' web/virtuals/9784/virtual/www/subdom/roids/_libs/PasswordLib.phar:21 スタック トレース: #0 /data/web/virtuals/9784/virtual/www/subdom/roids/_libs/PasswordLib.phar(21 ): Phar::mapPhar('PasswordLib.pha...') #1 /data/web/virtuals/9784/virtual/www/subdom/roids/index.php(7): require_once('/data/web/ virtu...') #2 {main} が /data/web/virtuals/9784/virtual/www/subdom/roids/_libs/PasswordLib.phar の 21 行目にスローされる

問題が何であるかについて何か考えはありますか?

ありがとう

0 投票する
1 に答える
14133 参照

php - 単純なアプリケーションの PHAR の生成

Symfony2 コンソール ライブラリを使用して CLI ツールの構築を実験しています。基本的な作業ができたので、それを phar としてパッケージ化したいと考えています。いくつかの例を読みましたが、見たものは非常に単純です (3 つのファイル、名前空間なしなど)。

私のsrc/ディレクトリには次のものがあります。

ここに画像の説明を入力

上記src/にはconsole.php、アプリを実行するために実行する があります。vendors/コンポーザーを使用して依存関係をインストールしているため、ディレクトリもあります。console.php非常に簡単です:

console.phpphar のビルドについて (少し) 理解していることから、スタブとして含める必要があるsrc/と思いますvendors/

phpmaster.comのサンプル コードを見ると、すべてのファイルを phar を使用して手動で指定していますfile_get_contentsが、コンポーザーのオートローダーを使用して PSR-0 ディレクトリ構造を維持するには、ディレクトリ構造を維持する必要があります。

.phar を作成し、その中にディレクトリ構造を維持して、composer のオートローダーを引き続き使用できるようにする簡単な方法はありますか?