現在、PHP 5.3 ホスティング環境では、「Zend Guard Loader」拡張機能をインストールして使用し、Zend Guard でエンコードされたファイルを処理および実行する必要があります。Zend Optimizer (PHP 5.2) で使用するためにエンコードされたファイルを実行できませんでした。
これに対する回避策はありますか?
現在、PHP 5.3 ホスティング環境では、「Zend Guard Loader」拡張機能をインストールして使用し、Zend Guard でエンコードされたファイルを処理および実行する必要があります。Zend Optimizer (PHP 5.2) で使用するためにエンコードされたファイルを実行できませんでした。
これに対する回避策はありますか?
そうは思いません...そのため、php 5.2の使用にもこだわっています。
「Zend Guard Loader」を使用して zend でエンコードされた 5.2 スクリプトを実行したい場合は、スクリプトを再度エンコードするために、より多くのお金を払い、新しいバージョンを購入する必要があります.... 悲しい.
私にとってうまくいった唯一の方法は、phpバージョンをチェックするif条件でzendガードローダーが見つからない場合に表示されるZend Guardsメッセージの代わりにphp 5.2ファイルを含めることでした。汚れていますが、機能していますが、まだ 2 つのファイルが存在する必要がありますが、保護されていないコードでローダーがそれらを切り替える必要はありません。
Zend Guard/Optimizer/Loader のコンテキストで Encoding と Runtime に答えるには、完全に一致する必要があります。受け入れられた答えは正しくありません。PHP 5.2 にロードされたオプティマイザーで PHP 5.3 でエンコードされたファイルを実行する調整はありません。
コードの更新時にエンコード プロセスをスクリプト化またはバッチ化すると、2 つのターゲット バージョンを維持するのが非常に簡単になります。ソースのエンコーディングを zendenc52 で 1 回実行し、次に zendenc53 で実行して、異なるターゲット ディレクトリを指定するだけです。
それについてもっと。PHP 5.3 コードは 5.2 とは異なります。実際には、これらのバージョンに一致するソース用に 2 つの異なるブランチが必要です。古いニュース: http://php.net/manual/en/migration53.php
Zend Guard でエンコードされたアプリケーションをテスト/ステージングする場合は、必ずエンコードされたバージョンをテストしてください (もちろん、必要に応じてオープン ソースをデバッグしてください)。理由は単純です。エンコードされたファイルには、難読化を処理するデータ テーブルのオーバーヘッドがあり、高度な PHP 構文で PHP の機能が変更される可能性があります。テスト中にエンコードされたファイルに問題が見つかった場合、ソースを特定して修正するのは簡単です。ソース バージョンのみをテストし、エンコードして顧客に展開する場合、結果は予測できません。
デプロイに関しては、PHP ファイルをインストール/untar/git/svn デプロイするときに、PHP ターゲット バージョンをリリース/ダウンロード/コード プッシュに貼り付けて、正しいバージョンにインストールするか、別のドキュメントに 2 つのバージョンをデプロイすることができます。ルートの場所、および PHP ターゲット バージョン 5.2 または 5.3 に一致する正しい保護されたアプリケーション バージョンにシンボリック リンクまたは書き換えることができます。
最後だが大事なことは。Zend Guard でサポートされているランタイムは Zend Server です。コミュニティ エディションがあり、DEB/RPM のネイティブ パッケージ マネージャーまたはインストール ファイル (Windows、Mac、その他の Linux ではサポートされていませんネイティブ パッケージ マネージャー)。Zend Server のオプションの Loader コンポーネントは、エンコードされたアプリケーション ファイルを処理し、PHP 5.2 および 5.3 ブランチに付属しているため、PHP に Zend Optimizer または Loader を手動でインストールする必要はありません。PHP 5.2 から 5.3 へのアップグレードは、アプリケーション (エンコード済みおよびオープン ソース) が適切に移行されていれば、簡単かつネイティブです。
お役に立てれば。