ホームページ >バックエンド開発 >PHPチュートリアル >Zend フレームワークでのデータ対話にオブジェクト指向を使用する方法

Zend フレームワークでのデータ対話にオブジェクト指向を使用する方法

WBOY
WBOYオリジナル
2016-06-23 14:20:13862ブラウズ

Zend Framework オブジェクト指向フレームワーク

PHP Web サイトは zend フレームワークを使用します。 データを取得するときは、通常、次のように SQL ステートメントを作成し、 fetchAll() メソッドを使用してデータを取得します。
$db->fetchAll($ sql) );
取得されたのは配列コレクションであり、その後処理されてページに表示されます。これは、オブジェクトにデータを入力し、オブジェクトを通じてページに値を割り当てるという手順が欠落しています。 Zend フレームワークのユーザーマニュアルには関連する例が見つかりません
そこで、私のプロジェクトには純粋にオブジェクト指向の例を教えていただきたいのですが、コード例

ディスカッションへの返信 (解決策)

皆さん、これに興味のある人はいませんか?

「オブジェクトにデータを埋める」という文が理解できません...

上記の意見には同意します


なぜデータをオブジェクトに割り当ててから、オブジェクトをページに渡す必要があるのでしょうか??データベースアダプターを取得した後、必ず query($sql) メソッドを呼び出してデータベースにクエリを実行してください。返されるのは pdo オブジェクトです
。このオブジェクトには、データベースからクエリされたデータが含まれているだけではありません
。しかし、多くのテーブル情報も含まれています。 クラス
は役に立ちません...

通常、このオブジェクトに対して fetchAll() メソッドを呼び出して配列に変換します

本当にオブジェクトをページに追加します
これはできると思います

自分でクラスを書くこともできます
次に、 fetchAll() からの配列をパラメータとして
このクラスのコンストラクターに渡します
コンストラクターは、クラスのメンバー変数に値を割り当てますクラス

これは「オブジェクトにデータを埋める」ことかもしれません
次に、このオブジェクトを配置します それをページに渡します

しかし、それでも、ビューにオブジェクトを出力したい場合は
する必要があると思いますオブジェクトに対して関連する処理操作を実行します




そして、フレームワークを使用する場合、モデルを使用しないわけにはいきません...
データベースを操作するために従来の PHP メソッドを使用する必要がありますか?

この場合、フレームワークで許可されている限り、自分で関数を作成して配列をクラスに変更するだけで済みます。素晴らしいですが、それは私が望む答えではありません。フレームワークを使用する理由は、将来の保守と拡張が容易であるためです。また、単に関数を実装するだけであれば、オブジェクト指向がプログラミングの主要な考え方です。私ならこの質問はしません。必要なのは、見つかったデータをクラス オブジェクトに変換できるライブラリが zend にあるかどうかです。引き続き解決してください。 。 。 。

初心者がたくさんいる、zf2、ZendDbSql、ZendDbTableGateway、ZendDbRowGateway には操作方法がたくさんある、どれも必要ない

db に書く

class Db_Test{  function fetchData(){    $db=new Db();    $res=$db->fetchAll("select * from table");    return $res;  }}

コントローラーに書く

class TestController extends  Zend_Controller_Action{  public function testAction(){    $dbclass=new Db_Test();    $data=$dbclass->fetchData();    $this->view->viewdata=$data;  }}

テンプレートに書く

foreach($this->viewdata as $key=>$value){   echo $value;}


それで私は初心者です。zf2、ZendDbSql、ZendDbTableGateway、ZendDbRowGateway には非常に多くの操作メソッドがありますが、どれも使用されていません
もっと詳しく説明してもらえますか、またはコードを教えていただけますか? ? ? ?

オブジェクトの配列?

まず、これをやりたい理由を教えてください


それから、これの応用シナリオを教えてください

授業に飽きることはありません

実際、私はウェブサイトを作成していて、すでにそれを完了しています。ここでは完全に技術的な説明になります

モデル層はビジネス ロジックを配置するためのものです
オブジェクトのプロパティに配列を配置してから、オブジェクトをコントローラーに渡す必要があります。

次に、ビュー内のこのプロパティをループして配列を取得します。

配列をページに渡すことができないということではありませんか? オブジェクトとはデータベース内のテーブルのことであり、その属性はクエリされたものを割り当てることです。データをテーブルのフィールドに追加しますか?


$db->fetchAll($sql); はオブジェクトのコレクションを取得する必要があります。配列を変換するには toArray() メソッドを使用します。オブジェクトにデータを入れて代入するということについて私は本当に理解できません。ページへ。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。