読者です 読者をやめる 読者になる 読者になる

FOR SE

文系の学部から新卒でメーカー系のSIerに就職。技術・スキルがないためブログを通して勉強。その後、IT業界の業界知識が活かせる人材業界に就職

このエントリーをはてなブックマークに追加

【PHP】DAOとはなにか


今回のプロジェクトでMVCモデルを使用し、

Mの部分でDAOの考えを導入しているため、

メモしときます。




以下、現在の資産で気になるところ

・DAOとして使用しているクラスの中で、テーブルのカラムごとに定義をしていない

・インサート文は、DAO以外に記述している

・ゲッターセッターが、DAOとして利用されているクラスに、あったりなかったりする。



■DAOについて

 ①DAOというデザインパターンのこと。

 ②業務ロジックとデータの取得を分離するために考えられたもの。

 ③DBへのアクセスロジックがテーブルごとに集約される。

 ④DBへのアクセスはすべてDAOを介して行われる。
 


メリット


 ・ビジネスロジック側からDBアクセス処理が隠蔽される

 ・SQLが一カ所にあるため、使用しているSQLの一覧性がある


デメリット

 

 ・どのクラスから参照されているかわからない(メンテしづらい)   
→同じ関数を複数クラスから使用している場合、考慮範囲が広がる
 

■メモ

 
 ①DAOとしてのクラスは、テーブルごとに作成し、関数は更新処理ごとに作成する

 ②レコードをクラスの定義として宣言すること。
  newして更新値を設定後、関数を実行すれば、都度の関数側での引数チェックが不要



□参考:

blog.tojiru.net

blog.tojiru.net

.hatena-module:nth-of-type(10) { background: transparent; } .hatena-module:nth-of-type(10) .hatena-module-title{ display: none; } .hatena-module:nth-of-type(10) .hatena-module-body { padding: 0; }