0

私がやろうとしているのは、括弧の代わりに空白を解釈する PHP 用のパーサーを作成することです。ビットを書き換えてPHPを出力することはできますが、これをアプリケーションに統合する最善の方法はわかりません。

理想的な世界では、ファイルの先頭にインクルードを配置するのが最善だと思います。これにより、それに続くすべてのコードブロックがインタープリターに渡されるときに適切な PHP 構文に書き換えられますが、そうではありません。この方法でコードのブロックを渡すことができることに注意してください。

別の方法として、サーバー エクステンションとして記述することもできますが、アクセスしにくくなるため、これは避けたいと思います。

これを設計する簡単な方法はありますか?

4

2 に答える 2

3

Stream Wrappersでこれを行う方法があります。

これにより、基本的に、実際に解釈される前に、PHP によって読み取られるコードを読み取って書き直すことができます。、fopen()fwrite()、など。include_requirefile_get_contents()

したがって、あなたの場合は、好きなコードで実行されているrequire(_once)ファイルをリッスンできます。include(_once)コード全体を変数で取得し、それを使用して、正規表現を使用した文字列のあらゆる種類の置換を簡単に実行できます。

唯一の欠点は、このメソッドはまたはによってキャッチされないindex.phpため、このメソッドを使用できないことです。ただし、そこからインクルードされる他のコード ファイルは、.includerequirestream wrapper

その方法を使ったプラグインシステムの記事はこちらです。たぶんそれは何かの助けになることができます。

http://phpmyweb.net/2012/04/26/write-an-awesome-plugin-system-in-php/

そこには、プラグイン コードのソースが記載された Guthub ページへのリンクもあります。そこには、基本的にStream Wrapperクラスのセットアップ方法が表示されます。そこから、プラグインのようにメソッド呼び出しなどをインターセプトする必要がないため、独自のコードを作成できます。

于 2013-07-27T22:24:49.357 に答える