ホームページ  >  記事  >  バックエンド開発  >  Php Ctemplate エンジン開発関連コンテンツ_PHP チュートリアル

Php Ctemplate エンジン開発関連コンテンツ_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:20:22821ブラウズ

1. はじめに

おそらく、この用語を見たときに、Php Ctemplate がプログラミング言語であることしか理解していません。関係ないので、PHP 言語をベースにしたこのタグ テンプレート エンジンを紹介しましょう (私の翻訳は正確ではないかもしれませんが、この Web 開発ソリューションを次のように翻訳することをお許しください)。

彼の経歴について簡単に話しましょう。 Php Ctemplate を理解するには、まず Ctempalte について知る必要があります。Ctempalte の正式名は Google Cte​​mplate です。これは、C++ 言語を使用した、シンプルですが非常に効率的な Web テンプレート エンジンです。コードの一部を見てみましょう。賢い人ならすぐに使い方がわかるでしょう (公式デモから)。

C++ 出力は次のようになります:
こんにちは、ジョン スミス
あなたは勝ちました (ここに、random%100000 によって実行された乱数があります)
そうですね (ここに、random%100000 によって実行された乱数があり、* 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 Cte​​mplate をラップし、PHP が Google Cte​​mplate の機能を備えていると結論付けました。より一般的には、これはコードに反映されます。tpl ファイルは変更されませんが、c++ ファイルは php ファイルに変更されます。使い方については、ここではあまり紹介しないと思いますが、Google Cte​​mpalteと同じです。
詳細については http://code.google.com/p/php-ctemplate/ を参照してください
2. WIN32 でも可能ですか?
おそらく、このテンプレート エンジンが一般的な MVC と一致していることがすぐにわかるでしょう。はい、それだけです。しかし、残念ながら、PHP Ctemplate は、Win32 環境の PHP でのみ実行できます。インターネット上で、対応する PHP ctemplate DLL が見つかりませんでした。また、PHP ctemplate の作者にも相談しましたが、彼はそれに乗り気ではないようです。これらのコードをコンパイルします。私はかつて C++ を開発している友人の「A-Dai」と一緒に、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 でラップしましたが、まだ半分しか完成していません。同志 "Dumb" に特別な感謝を表したいと思います。彼なしでは、私は C++ ATL をまったく書くことができなかったでしょう。以下は ATL COM でのメソッドです (一部のみ完成しています)。

ATL COM 関数を core.php にパッケージ化しました。

興味があれば、改善を続けるためにソースコードを要求してください。COM なので、ダウンロード用の DLL も提供します。エビが win32 で PHP ctemplate を正常にコンパイルして使用できるのであれば、私はそれをさらに嬉しく思います。
COMファイルphpctempalteCOMをダウンロード

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/325078.html技術記事 1. はじめに Php Ctemplate という用語を見たときに、前半だけがプログラミング言語であることしか理解していないかもしれません。関係ないので、phpベースのこの言語を紹介しましょう...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。