Zend-framework-models-and-database
Zend Framework-モデルとデータベース
この章では、Zend Frameworkのさまざまなモデルとデータベースについて説明します。
Zend Frameworkのモデル
モデルは、アプリケーションの論理データ表現を定義します。 たとえば、ショッピングカートアプリケーションでは、製品、顧客、カート、注文がモデルです。 それらは、保持するエンティティのプロパティを定義します。 モデルの概念のいくつかは次のとおりです-
- コントローラーはモデルと通信し、モデルに必要な情報を取得するよう依頼します。 この取得された情報は、コントローラーによってビューに渡されます。 最後に、Viewはモデルをユーザーの消費可能なプレゼンテーションデータとしてレンダリングします。
- モデルがビューと直接相互作用することは非常にまれですが、時々起こる場合があります。
- モデルは互いに対話でき、自己完結型ではありません。 それらは互いに関係を持っています。 これらの関係により、コントローラーは異なるモデルと対話する必要がないため、情報を簡単かつ迅速に取得できます。モデルはそれを自分で行うことができます。
単純なモデル- MyModel を見てみましょう。
Zend Frameworkのデータベース
Zendフレームワークは、データベーステーブルのデータを検索、挿入、更新、削除するためのシンプルで機能豊富なクラスZend \ Db \ TableGateway \ TableGatewayを提供します。
Zend frameworkでPHPのPDOドライバーを介して MySqlservice を接続する方法を次の手順で見てみましょう。
ステップ1:MySQLでデータベースを作成する
ローカルMySQLサーバーにデータベース tutorials を作成します。 この目的のために、 phpmyadmin またはその他のMySQL GUIツールを使用できます。 コマンドプロンプトで* MySQLクライアント*を使用してみましょう。 mysqlサーバーに接続し、次のコマンドを実行して tutorial データベースを作成します。
ステップ2:チュートリアルデータベースでテーブルを作成する
次のSQLコマンドを使用して、 tutorials dbにデータベース book を作成します。
ステップ3:本の表にデータを入力する
ステップ4:データベース接続を更新する
グローバル構成ファイル(myapp/config/autoload/global.php)を必要なデータベースドライブ情報で更新します。
ステップ5:データベース資格情報を更新する
ローカル構成ファイル(myapp/config/autoload/local.php)のデータベース資格情報を更新します。 このようにして、ローカルとライブのデータベース接続資格情報を分離できます。
ステップ6:ブックのモデルを作成する
モジュール src ディレクトリに Book というモデルを作成しましょう。 通常、モデルは、Modelフォルダー(/myapp/module/Tutorial/src/Model/Book.php)の下にグループ化されます。
ステップ7:ブックモデルにexchangeArrayを実装する
以下に示すように、モデル Book を更新します-
ステップ8:TableGatewayを使用して本を取得する
データベースから書籍情報を取得するクラス BookTable を作成します。 Model フォルダー自体にクラスBookTableを作成します。
TableGatewayクラスの* select()メソッドを使用して、データベースから書籍情報を取得しました。 ただし、コードの *book というテーブルへの参照は使用していません。 TableGatewayは本質的に汎用であり、特定の構成を使用して任意のテーブルからデータをフェッチできます。 通常、これらの設定は module.config.php ファイルで行われます。これについては、以降の手順で説明します。
ステップ9:BookTableクラスを構成する
チュートリアルモジュール Module.php を* getServiceConfig()*メソッドで更新します。
ここでは、サービスマネージャーを使用して BookTable クラスを登録しました。 BookTableクラスは、書籍情報を取得するために使用され、登録することで必要な場所にアクセスできます。 登録されたサービスは共有されるため、パフォーマンスが向上し、メモリ消費が削減されます。
- 別の項目Model \ BookTableGateway
- classは、 Book モデルに特化したTableGatewayオブジェクトであり、 BookTable の依存関係です。
ステップ10:TutorialController構成を更新する
ブック情報を取得するには、チュートリアルコントローラーに BookTable サービスが必要です。 BookTableサービスを取得するには、TutorialControllerのコンストラクター依存関係として登録します。
このコンストラクターの依存関係は、コントローラー自体が初期化段階にある間にBookTableサービスを取得するのに役立ちます。 以下に示すように、チュートリアルモジュール構成の module.config.php のコントローラーセクションを更新します。
ステップ11:チュートリアルコントローラーを更新する
これは、次の3つのステップを順守することによって行われます。
- _BookTable_を引数としてコンストラクターを追加します。
- * BookTableのfetchAll()*メソッドを使用して本の情報を取得し、ビューに登録します。
- 表示スクリプトで書籍情報を表示します。
ステップ12:アプリケーションを実行する
- http://localhost:8080/tutorial を実行して、アプリケーションを確認します。