1. はじめに
おそらく、この用語を見たときに、Php Ctemplate の前半部分だけがプログラミング言語であることを理解しているでしょう。関係ないので、PHP 言語をベースにしたこのタグ テンプレート エンジンを紹介しましょう (私の翻訳は正確ではないかもしれませんが、この Web 開発ソリューションを次のように翻訳することをお許しください)。
彼の経歴について簡単に話しましょう。 Php Ctemplate を理解するには、まず Ctempalte について知る必要があります。Ctempalte の正式名は Google Ctemplate です。 C 言語を使用した、シンプルですが非常に効率的な Web テンプレート エンジンです。コードの一部を見てみましょう。賢い人ならすぐに使い方がわかるでしょう (公式デモから)。
C の出力は次のようになります。
こんにちは、ジョン スミス
あなたは勝ちました (ここではランダム 0000 の乱数を実行しています)
そうですね (ここではランダム 0000 を実行しています乱数は * 0.83)、税引後
要約すると、c ソース コードの Template オブジェクトを tpl (テンプレートと呼ぶことができます) ファイルにロードした後、TemplateDictionary に対応する値を入力します。そして最後に出力します。面倒に思えますよね。バックエンド タグの対応する値を tpl の {{tag}} に入力するだけです。
詳細については、http://google-ctemplate.googlecode.com/svn/trunk/doc/index.html を参照してください。
PHP ctemplate についてはどうですか? PHP 拡張機能については誰もが知っています。PHP を使ったことのある友人は、gd、exif、mysql、mysqli 拡張機能について知っています。はい、これは php.ini ファイルの「extension=」セクションにある dll です。私は、PHP ctemplate は PHP 拡張インターフェイスの形式を使用して Google Ctemplate をラップし、PHP が Google Ctemplate の機能を備えていると結論付けました。より一般的には、これはコードに反映されます。tpl ファイルは変更されませんが、c ファイルは php ファイルに変更されます。使い方については、ここでは紹介しないと思いますが、Google Ctempalteと同じです。
詳細については、http://code.google.com/p/php-ctemplate/ を参照してください。
2. WIN32 では可能ですか?
おそらく、このテンプレート エンジンが私たちの共通の MVC バー。はい、それだけです。しかし、残念ながら、PHP Ctemplate は、Win32 環境の PHP でのみ実行できます。インターネット上で、対応する PHP ctemplate dll が見つかりませんでした。また、PHP ctemplate の作者にも相談しましたが、彼はそれに乗り気ではないようです。これらのコードをコンパイルします。私はかつて C を開発している友人の「Dumb」とコンパイルしようとしました。PHP ソース コード Ctemplate ソース コード PHP ctemplate ソース コードを見つけて、PHP ctemplate 拡張機能を win32 でコンパイルしました。 PHP が起動するたびに PHP ctemplate が読み込まれると、PHP エンジンで例外が発生し、PHP ctemplate が正常に読み込まれないのが不思議でした。
php ctemplate が正常にロードされると、phpinfo に表示されます:
PHP ctemplate のソースコードも調べてみましたが、Zend をベースに書かれているようです。私は C と PHP にあまり習熟しておらず、この一連の拡張機能を書き直す能力も実際にはありません。そのため、妥協策として考えられるのは、Ctemplate を ATL COM でラップし、PHP ctemplate の関数とメソッドをシミュレートすることだけです。
3.私の試み
こんなに曲がりくねった理由は、このフレームワークを使用した後、PHP コードをデバッグする方法がないためです。freebsd 環境に xdebug をインストールしてみましたが、リモート デバッグはかろうじて実行できます。ただし、freebsd にはグラフィカル インターフェイスがないため、gnome をインストールするしかありませんでした。これは一時的にしかできません。好奇心と不満から、PHP ctemplate の関数とメソッドをシミュレートするために Ctemplate を ATL COM でラップしましたが、まだ半分しか完成していません。同志「ダム」に特別な感謝を表したいと思います。彼なしでは、私は c の ATL を書くことができなかったでしょう。以下は ATL COM でのメソッドです (一部のみ完成しています)。
ATL COM 関数を core.php にパッケージしました。
ご興味がございましたら、改善を続けるためにソースコードをリクエストしてください。COM なので、ダウンロード用の DLL も提供します。エビが win32 で PHP ctemplate を正常にコンパイルして使用できるのであれば、私はそれをさらに嬉しく思います。
COM ファイル phpctempalteCOM をダウンロード