この記事では、CI (CodeIgniter) モデルの使用例を分析します。参考のために皆さんと共有してください。詳細は次のとおりです:
MVC のビジネス ロジックはコントローラーやモデルに配置するのには適していないため、ビジネス ロジックを処理するために追加のレイヤーが使用され、モデルはデータ アクセス レイヤーとしてのみ使用されます。このようにモデルは軽くなります。 CI では、パラメーターはエンティティ オブジェクトを介して渡されません。パラメーターの入力と戻りは開発者によって制御されるため、より柔軟です。多くの場合、配列として渡されるか、返されます。
モデルの使用方法も比較的簡単です。使用前に頭に浮かぶいくつかの質問を以下に示します。
1. すでにデータ アクセス層があるため、コントローラーまたは特定のクラスで SQL を介してデータベースに直接クエリすることは避けるべきです。ほとんどの場合、1 つのテーブル名がモデルを通じて取得される必要があります。モデルクラス。
2. モデルは複数のデータベースに簡単に接続できる必要があります。複数のライブラリの構成は、group_name に従って簡単に接続できます。マスター/スレーブがある場合は、マスター/スレーブの切り替えの問題も考慮できます。
3. モデルはモジュールで区別する必要がありますか?コントローラー内でパブリック コントローラーを配布する慣行がありますが、この種の考え方はモデルでは適切ではないかもしれませんが、異なるパブリック モデル クラスを継承することで実現でき、これらのクラスは CI の MY_Model を継承します。ビジネスによっては、モジュールに基づいて継承すると便利な場合があります。ほとんどの場合、MY_Model は主にデータベースの初期化接続といくつかのパブリック メソッドを実装します。
4. データベースが提供する操作方法は比較的基本的なものであり、必要に応じて組み立てる必要がありますが、主キーに基づいて情報を取得したり、ID に基づいて情報を取得したりするなど、日常的な操作の多くは似ています。 、属性に基づいた情報の取得など、これらの基本的な操作を一度にカプセル化できるため、より便利に使用できます。 AR を使用してデータベースを操作したい場合は、多くのメソッドを覚えておく必要があるためです。たとえば、ユーザー名に基づいてクエリを実行するとします。 リーリー
カプセル化されている場合は、次のようなメソッドを 1 つだけ覚えておく必要があります:リーリー
このように、各モデルに tableName メソッドを追加し、テーブル名を返した後、モデルを通じてこのメソッドを簡単に使用できます。5. 上記のメソッドは MY_Model に記述しますが、この種のメソッドをファイルに分割することはできますか?このメソッドはほとんどの場合変更されず、MY_Model に配置すると変更が可能になるため、これらのメソッドに影響を与える可能性があります。このクラスが ActiveRecord クラスと呼ばれる場合、MY_Model は ActiveRecord クラスを継承でき、ActiveRecord クラスは CI_Model を継承できます。以下のリファレンス コードを参照してください。
多くの場合、クラス ライブラリによって提供されるメソッドは比較的詳細であり、使用の難しさを軽減するためにそれらをカプセル化できます。モデル内でのパブリック メソッドのカプセル化についてはまだ検討中です。以下に示すのは 1 つのテーブルに対する単純な操作です。複雑な操作は特定のモデルに実装する必要があります。方法は統一できるので、将来この問題を再度検討する機会があるかどうかを確認します。
パブリック AR カプセル化クラスは、一般的な操作を実行できます。データベース接続オブジェクトとして db 属性を割り当て、主キーやテーブル名などのいくつかのメソッドをモデルに設定する必要があります。 リーリー
MY_Model はこのクラスを継承できるため、上記のメソッドをサブモデル内で直接呼び出すことができます。
リーリーCodeIgniter 関連のコンテンツに興味のある読者は、このサイトの特別トピック「codeigniter 入門チュートリアル」と「CI (CodeIgniter) フレームワーク上級チュートリアル」をチェックしてください
この記事が、CodeIgniter フレームワークに基づく皆様の PHP プログラム設計に役立つことを願っています。
興味があるかもしれない記事: CodeIgniter カスタム コントローラー MY_Controller の使用分析
http://www.bkjia.com/PHPjc/1094765.html