0

Zendフレームワークとデータベース間の通信が実際にどのように機能するかを理解しようとしています(しかし、見た目ほど簡単ではありません;))。

私の主な焦点は Zend_Http_Client_Adapter_Socketクラス、特に read() 関数です。魔法のような方法で、データベースから応答を受け取り、応答のステータスを設定します。ただし、実際のデータ処理がどこで行われているかはわかりません。データベースから返されるコードを制御したい場合はどうすればよいですか? Fe データに応じて、いくつかの特別なケースでデータベースが 204 を返すようにします。どこでそれを行うことができますか?ソケットは、互いの要求/応答を待機することで通信を有効にしていることがわかります。しかし、それはデータベース側で正確にどこで行われますか?

4

2 に答える 2

3

コメントセクションでRockyFordが述べたように、Zend_Dd_Adapterにもっと集中する必要があると思います。ZFを使用している場合、モデルは2つの部分に分かれています。データベースからのデータが保持されているオブジェクトと、save、edit、delete、findなどのメソッドを持つマッパー。そのため、マッパーは新しいZend_Db_Table_Abstractを初期化しています。例:

class Application_Model_DbTable_Cable extends Zend_Db_Table_Abstract
{
    protected $_name = "cable";
    protected $_primary = "ID";
}

Zend_Db_Table_Abstractのインスタンスは、マッパーに格納する必要があり、たとえば次のように呼び出すことができます。

$this->dbTable->find($id);

詳細については、ZFのリファレンスガイドをご覧ください:Zend_Db

またはここで聞いてください:)

于 2012-09-18T07:54:48.573 に答える
2

どこでできますか?ソケットはお互いの要求/応答を待つことで通信を可能にしていることがわかります。しかし、それはデータベースのどこで正確に行われているのでしょうか?

Zend_Http_Client_Adapter_Socketあなたの質問はデータベースに関連しているので、実際には当てはまりません。

Zend_Http_Client_Adapter_Sockethttp接続の要求/応答サイクルを処理します。

Zend Frameworkのすべてのデータベースアダプターは、主にPHP拡張機能のラッパー(関数をエミュレートおよび/または拡張)です。(PHP拡張機能はphp.iniファイルに登録されており、次の形式になっていますextension=extension_name

私たちのほとんどは現在、お気に入りのさまざまなデータベースにPDO拡張機能を使用しています。

したがって、実際に質問に答えるには、PHP用のデータベースアダプタの作成を掘り下げる必要があります。本当に興味がある場合は、 http: //www.php.net/manual/en/internals2.pdo.phpから始めることができます。

Zend_Http_Client_Adapter_Socketただし、データベースクエリの結果に基づいて応答を返すようにコントローラーをコーディングでき ます。

于 2012-09-19T08:38:13.137 に答える