thinkphp のフック関数の機能は何ですか? どのようなビジネス ロジックを処理するために一般的に使用されますか?
thinkphp のフック関数の機能は何ですか? どのようなビジネス ロジックを処理するために一般的に使用されますか?
フックは、機能に取り付けられる取り付けポイントのようなものです。関数の実行中にこのマウント ポイントが検出されると、このフックはコードの一部を取り出して実行します。フック関数は、関数内で別の関数を直接呼び出すよりも安全で便利です。拡張関数を変更する必要がある場合、関数 B のフックを変更する必要はなく、関数 A を直接変更する場合は、関数 B が配置されているクラスを変更するだけで済みます。変更されました。閉鎖の原則に違反します。もう 1 つのポイントは、フックを使用した方が、後のメンテナンスや機能拡張に便利であることです。
thinkphp では、フックは動作の拡張機能です。オンラインでの動作拡張の説明は次のとおりです:
行動
動作は、アプリケーションの実行中のアクションまたはプロセスとして想像できます。たとえば、ルーティング検出は動作です。静的キャッシュは動作であり、ユーザー権限の検出も動作です。これは、ビジネス ロジックと同じくらい大きくても、ブラウザの検出や多言語の検出などでも、動作とみなすことができ、さらに言うことができます。 Web サイトのユーザーに最初の訪問を提供したい場合は、「Hello, world!」をポップアップします。これらは一種のビヘイビアとみなすことができ、ビヘイビアーの存在により、フレームワークやアプリケーションを変更することなく、拡張や周辺設定によって一部の機能を変更したり追加したりすることができます。
さまざまな動作には位置的な類似性もあります。たとえば、一部の動作はアプリケーションの実行前に有効になり、一部のアクションはテンプレートの出力後に有効になります。これらの動作が有効になる位置をラベル (位置) (タグ) と呼びます。 、アプリケーションがこのタグに対して実行されると、タグがインターセプトされ、関連する動作が均一に実行されます