SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

連載記事

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

CodeZine BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。

書籍に関する記事を見る

'); googletag.cmd.push(function() { googletag.pubads().addEventListener('slotRenderEnded', function(e) { var ad_id = e.slot.getSlotElementId(); if (ad_id == 'div-gpt-ad-1659428980688-0') { var ad = $('#'+ad_id).find('iframe'); if ($(ad).width() == 728) { var ww = $(window).width(); ww = ww*0.90; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/728+","+ww/728+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/728+","+ww/728+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/728+","+ww/728+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/728+","+ww/728+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(90*ww/728)+"px;width:"+728+"px;}", 0 ); } else { if ($(window).width() < 340) { var ww = $(window).width(); ww = ww*0.875; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/320+","+ww/320+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/320+","+ww/320+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/320+","+ww/320+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/320+","+ww/320+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(180*ww/320)+"px;width:"+320+"px;}", 0 ); } } } }); }); } else { document.write('
'); document.write('
'); }
japan.internet.com翻訳記事

DAO generator for PHP and MySQLを使用する

DAOデザインパターンを使ってデータベース操作を実現するPHPクラスの作成方法

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

 DAOデザインパターンを使って、一般的なMySQLデータベース操作を実現するPHPクラスの作成方法を紹介します。

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

はじめに

 データアクセスオブジェクト(DAO)はデータベースへの抽象インターフェースを提供し、開発者がデータベーススキーマの詳細を知らなくても一般的なデータベース操作を行えるようにします。データアクセスオブジェクトは基本的に、アプリケーションのビジネスロジック層とデータ層を分離するものです。この分離は重要です。この2つの重要なアプリケーション層がお互いのことをほとんど何も知らず独立して動作するようにしておけば、双方をいつでも別々に改訂できるからです。DAOを適切に使用すれば、ビジネスロジックが頻繁に変わる環境でも同じDAOインターフェースを使用でき、インターフェースが正しく実装されてさえいれば、永続ロジックに変更を加えてもDAOクライアントに影響を与えずに済みます。

 DAO generator for PHP and MySQLはMySQLデータベース用のDAOクラスの作成プロセスを自動化します。この記事では以下のことを行う方法を説明します。

  • DAO generator for PHP and MySQLをインストールする
  • 指定のデータベース(bookstore)を使ってDAO成果物を生成する
  • DAOジェネレータツールとそのファクトリクラスを使ってアプリケーションを作成する
  • 複数のSQL操作が関係するトランザクションを作成する
  • 生成されたクラスに独自のDAO関数を追加する

DAO generator for PHP and MySQL

 DAOジェネレータとは、通常はある特定の対象データベースのために使用するクラスを特定の言語で生成するツールです。DAO generator for PHP and MySQLの場合は、DAOデザインパターンを使ってMySQLデータベースへのクエリと更新を行うPHPクラスを生成します。このツールをインストールして使用するのは比較的簡単ですが、効果的に使用するにはDAOメカニズムについての知識が多少必要になります。

 DAO generator for PHP and MySQLはここからダウンロードできます。インストールするには、次の手順に従ってください。

  1. phpdao-1.7.zipアーカイブをダウンロードします
  2. このアーカイブをhtdocsディレクトリに解凍します
  3. templates/class/dao/sql/ConnectionProperty.class.phpファイルのデータベースプロパティを指定して、既存のデータベースへの接続を設定します
  4. generate.phpスクリプトを実行します
  5. 生成されたクラスが、generatedという新たに作成されたフォルダに格納されます

 図1はDAO generator for PHP and MySQLのアーキテクチャを示しています。

図1 DAOジェネレータのアーキテクチャ: この図はDAO generator for PHP and MySQLのアーキテクチャとデータフローを示している
図1 DAOジェネレータのアーキテクチャ: この図はDAO generator for PHP and MySQLのアーキテクチャとデータフローを示している

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
DAOクラスの概要

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.com や EarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Octavia Andreea Anghel(Octavia Andreea Anghel)

経験豊富なPHP開発者。現在は、国内外のソフトウェア開発コンテストに参加するプログラミングチームの主任トレーナーを務める。国レベルの教育プロジェクト開発のコンサルティングも担当している。共著書に『XML technologies?XML in Java』があり、XML部分の執筆を担当。PHPやXML...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4576 2009/12/02 14:00
" ); }

おすすめ

アクセスランキング

  1. 1
    Linux Mint 22.1、通称「Xia」がリリース NEW
  2. 2
    C# 13の新機能を理解する――paramsコレクションと新しいロックセマンティクス
  3. 3
    ITエンジニア本大賞2025、ベスト10選出! 技術書部門とビジネス書部門の大賞はどうなる!?
  4. 4
    実はITエンジニアの設計力が求められるkintone、その仕組みとポイントを事例に学ぶ
  5. 5
    アイスマイリー、「生成AIリスキリングカオスマップ 2025」を公開 NEW
  1. 6
    Flutterでアプリをビルドしよう。AndroidとiOSそれぞれの流れを解説 NEW
  2. 7
    Microsoft、AIとのチャットと従量課金のエージェント機能を利用可能な「Microsoft 365 Copilot Chat」の提供を開始 NEW
  3. 8
    総務省、データサイエンス・オンライン講座「誰でも使える統計オープンデータ」をリニューアル開講
  4. 9
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  5. 10
    ガントチャートをWebアプリに組み込める「ガントシート」でプロジェクト管理機能を作成してみよう

アクセスランキング

  1. 1
    Linux Mint 22.1、通称「Xia」がリリース NEW
  2. 2
    C# 13の新機能を理解する――paramsコレクションと新しいロックセマンティクス
  3. 3
    ITエンジニア本大賞2025、ベスト10選出! 技術書部門とビジネス書部門の大賞はどうなる!?
  4. 4
    実はITエンジニアの設計力が求められるkintone、その仕組みとポイントを事例に学ぶ
  5. 5
    アイスマイリー、「生成AIリスキリングカオスマップ 2025」を公開 NEW
  6. 6
    Flutterでアプリをビルドしよう。AndroidとiOSそれぞれの流れを解説 NEW
  7. 7
    Microsoft、AIとのチャットと従量課金のエージェント機能を利用可能な「Microsoft 365 Copilot Chat」の提供を開始 NEW
  8. 8
    総務省、データサイエンス・オンライン講座「誰でも使える統計オープンデータ」をリニューアル開講
  9. 9
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  10. 10
    ガントチャートをWebアプリに組み込める「ガントシート」でプロジェクト管理機能を作成してみよう
  1. 1
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  2. 2
    ガントチャートをWebアプリに組み込める「ガントシート」でプロジェクト管理機能を作成してみよう
  3. 3
    1/10まで全文無料公開、人気の入門書シリーズ『いきなりプログラミング Androidアプリ開発』
  4. 4
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  5. 5
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  6. 6
    Google、社内AIエージェント「Google Agentspace」発表
  7. 7
    JavaScriptのWebフレームワーク、「Astro 5.1」リリース
  8. 8
    ITエンジニア本大賞2025、ベスト10選出! 技術書部門とビジネス書部門の大賞はどうなる!?
  9. 9
    実はITエンジニアの設計力が求められるkintone、その仕組みとポイントを事例に学ぶ
  10. 10
    テストは増え続ける、でもボトルネックにはできない──テスト効率化の2つのカギを朱峰 錦司氏が解説!

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

メールバックナンバー

アクセスランキング

  1. 1
    Linux Mint 22.1、通称「Xia」がリリース NEW
  2. 2
    C# 13の新機能を理解する――paramsコレクションと新しいロックセマンティクス
  3. 3
    ITエンジニア本大賞2025、ベスト10選出! 技術書部門とビジネス書部門の大賞はどうなる!?
  4. 4
    実はITエンジニアの設計力が求められるkintone、その仕組みとポイントを事例に学ぶ
  5. 5
    アイスマイリー、「生成AIリスキリングカオスマップ 2025」を公開 NEW
  1. 6
    Flutterでアプリをビルドしよう。AndroidとiOSそれぞれの流れを解説 NEW
  2. 7
    Microsoft、AIとのチャットと従量課金のエージェント機能を利用可能な「Microsoft 365 Copilot Chat」の提供を開始 NEW
  3. 8
    総務省、データサイエンス・オンライン講座「誰でも使える統計オープンデータ」をリニューアル開講
  4. 9
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  5. 10
    ガントチャートをWebアプリに組み込める「ガントシート」でプロジェクト管理機能を作成してみよう

アクセスランキング

  1. 1
    Linux Mint 22.1、通称「Xia」がリリース NEW
  2. 2
    C# 13の新機能を理解する――paramsコレクションと新しいロックセマンティクス
  3. 3
    ITエンジニア本大賞2025、ベスト10選出! 技術書部門とビジネス書部門の大賞はどうなる!?
  4. 4
    実はITエンジニアの設計力が求められるkintone、その仕組みとポイントを事例に学ぶ
  5. 5
    アイスマイリー、「生成AIリスキリングカオスマップ 2025」を公開 NEW
  6. 6
    Flutterでアプリをビルドしよう。AndroidとiOSそれぞれの流れを解説 NEW
  7. 7
    Microsoft、AIとのチャットと従量課金のエージェント機能を利用可能な「Microsoft 365 Copilot Chat」の提供を開始 NEW
  8. 8
    総務省、データサイエンス・オンライン講座「誰でも使える統計オープンデータ」をリニューアル開講
  9. 9
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  10. 10
    ガントチャートをWebアプリに組み込める「ガントシート」でプロジェクト管理機能を作成してみよう
  1. 1
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  2. 2
    ガントチャートをWebアプリに組み込める「ガントシート」でプロジェクト管理機能を作成してみよう
  3. 3
    1/10まで全文無料公開、人気の入門書シリーズ『いきなりプログラミング Androidアプリ開発』
  4. 4
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  5. 5
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  6. 6
    Google、社内AIエージェント「Google Agentspace」発表
  7. 7
    JavaScriptのWebフレームワーク、「Astro 5.1」リリース
  8. 8
    ITエンジニア本大賞2025、ベスト10選出! 技術書部門とビジネス書部門の大賞はどうなる!?
  9. 9
    実はITエンジニアの設計力が求められるkintone、その仕組みとポイントを事例に学ぶ
  10. 10
    テストは増え続ける、でもボトルネックにはできない──テスト効率化の2つのカギを朱峰 錦司氏が解説!