この記事では、thinkPHP2.1カスタムタグライブラリのインポート方法について詳しく説明します。参考のために皆さんと共有してください。詳細は次のとおりです:
TP のマニュアルはカスタム タグについて少ししか書かれていないようです。
1. 状況: 新しいカスタム タグ ライブラリ クラスを作成します: @.Mylib.Tag.TagLibTest — TP を理解している人は、これで表されるパスを知っているはずです
例のタグデモファイルを使用してください
リーリー
次に、プロジェクトの下の Conf ディレクトリに次の内容の新しい taglibs.php ファイルを作成します。
リーリー
このようにテンプレートで使用できます:
リーリー
これは非常に単純な状況ですが、私のアイデアは、カスタム タグ ライブラリを自動的にインポートすることを要求し、各タグの最初の行に のようなタグを追加する必要がないようにすることです。テンプレート
ちょっとした問題が発生しました
2. カスタムタグライブラリを自動的にインポートします
config.php ファイルを追加します:
リーリー
キャッシュをクリアすると、「存在しないクラスをインスタンス化します!」というエラーが表示されます。
TP 公式フォーラムを何度か検索したところ、解決方法は 1 つだけであることがわかりました。それは、エイリアスを使用してインポートすることです。つまり、TP フレームワークの commonn/alias.php にインポート パスを追加することです。
例:
コードをコピーします
コードは次のとおりです:'TagLibArticle' => THINK_PATH.'/Lib/Think/Template/TagLib/TagLibArticle.class.php',
Template クラスのソース コードを変更するためのソリューションもいくつかありますが、これは簡単ではありません。通常、小さな問題のためにコアを変更したくないからです。
そこで私は Action のインポートを考えました:
プロジェクトの基本クラスBaseAction.class.phpにインポートを追加します:
リーリー
キャッシュを更新し、問題は解決しました...
このソリューションはシンプルで使いやすいです。
追加:
TP の自動読み込み設定を使用すると、より高速になります:
リーリー
最終計画:
1. Mylibs.Tag.TagLibTest を作成する — カスタムタグライブラリ
2. 構成:
リーリー
キャッシュを削除すれば通常通り使えるようになります
より thinkPHP 関連のコンテンツに興味のある読者は、このサイトの特別トピックをチェックしてください: 「ThinkPHP 入門チュートリアル」、「ThinkPHP テンプレート操作スキルの要約」、「ThinkPHP の共通メソッドの要約」、「Smarty テンプレートの基本チュートリアル」、 「PHPテンプレート技術」まとめ」です。
この記事が皆さんの ThinkPHP フレームワークに基づく PHP プログラムの設計に役立つことを願っています。