ホームページ > データベース > mysql チュートリアル > OOP と MySQL を使用した PHP CRUD アプリケーションの構築: ベスト プラクティス ガイド

OOP と MySQL を使用した PHP CRUD アプリケーションの構築: ベスト プラクティス ガイド

Patricia Arquette
リリース: 2025-01-11 07:20:43
オリジナル
856 人が閲覧しました

Building a PHP CRUD Application with OOP and MySQL: A Best Practice Guide

データベース操作を効率的に管理することは、PHP アプリケーション開発にとって非常に重要です。 CRUD (作成、読み取り、更新、削除) は、最も一般的なデータベース操作の 1 つです。オブジェクト指向プログラミング (OOP) の原則を採用すると、コードがよりシンプルになり、再利用および拡張が容易になります。 PHP で MySQL を使用すると、アプリケーションがデータ ストレージを効率的に処理できるようになります。

このブログ投稿では、OOPMySQL を使用して PHP CRUD アプリケーション を構築する方法を説明します。ベスト プラクティスとデザイン パターンに従ってコードを整理し、初心者向けでありながら大規模なプロジェクトでも使用できる十分強力なコードになるようにします。

このガイドを読むと、PHP で OOP 原則を使用してデータベースを操作するための強固な基盤が得られます。

目次

  1. PHP における OOP の重要性
  2. プロジェクト設定
  3. データベースの作成
  4. フォルダー構造
  5. データベースに接続します
  6. CRUD オペレーションを作成する
    • 作成
    • 読む
    • アップデート
    • 削除
  7. 概要

1. PHP における OOP の重要性

オブジェクト指向プログラミング (OOP) は、「オブジェクト」を使用してコードを編成するプログラミング パラダイムです。 PHP では、OOP を使用して現実世界のエンティティを表すクラスを作成できるため、コードがよりモジュール化され、再利用および管理が容易になります。

データベースを操作するときに OOP 原則を適用することは、次のことを意味します:

  • 懸念事項の分離: データベース ロジックは、残りのアプリケーション ロジックから分離されたクラスにカプセル化されます。
  • 再利用性: アプリケーションの複数の部分でデータベース クラスを再利用できます。
  • 保守性: アプリケーションが成長するにつれて、コードの更新と拡張が容易になります。

2. プロジェクトの設定

コーディングを始める前に、保守しやすいフォルダー構造を設定しましょう。プロジェクトは次のように編成する必要があります:

<code>php-crud/
├── config/
│   └── Database.php
├── controllers/
│   └── UserController.php
├── models/
│   └── User.php
├── views/
│   └── user_list.php
├── public/
│   └── index.php
└── .gitignore</code>
ログイン後にコピー
ログイン後にコピー
  • config/Database.php: データベース接続ロジックが含まれます。
  • controllers/UserController.php: CRUD 操作を処理し、モデルと通信します。
  • models/User.php: MySQL の users テーブルと対話するためのロジックが含まれています。
  • views/user_list.php: ユーザーデータを表形式で表示します。
  • public/index.php: アプリケーションのエントリ ポイント。

3. データベースを作成します

まず、MySQL でデータベースとユーザー テーブルを作成しましょう。次の SQL クエリを実行してデータベースをセットアップできます:

<code class="language-sql">CREATE DATABASE php_crud;

USE php_crud;

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);</code>
ログイン後にコピー
ログイン後にコピー

このテーブルには、名前、電子メール、作成日などの基本的なユーザー情報が保存されます。

4. フォルダー構造

基本的なフォルダー構造を設定しました。各フォルダーの機能の内訳は次のとおりです:

  • config/: データベース構成と接続ロジックが含まれます。
  • controllers/: リクエストを処理し、モデル内の対応するメソッドを呼び出します。
  • models/: ビジネス ロジックとデータベースの相互作用を表します。
  • views/: データをユーザーに表示します。
  • public/: パブリック フォルダーには、アプリケーションへのエントリ ポイントとして機能する、index.php ファイルが含まれています。

5. データベースに接続します

まず、config/Database.php にデータベース接続クラスを作成します。

<code>php-crud/
├── config/
│   └── Database.php
├── controllers/
│   └── UserController.php
├── models/
│   └── User.php
├── views/
│   └── user_list.php
├── public/
│   └── index.php
└── .gitignore</code>
ログイン後にコピー
ログイン後にコピー

このクラスは MySQL への PDO 接続を作成し、プロジェクトで再利用できます。

6. CRUD オペレーションを作成します

ユーザーデータを処理するためのモデルを作成しましょう。このクラスは、users テーブルと対話し、CRUD 操作を実行します。

モデルの作成 (User.php)

<code class="language-sql">CREATE DATABASE php_crud;

USE php_crud;

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);</code>
ログイン後にコピー
ログイン後にコピー

コントローラーの作成 (UserController.php)

<code class="language-php"><?php namespace Config;

use PDO;

class Database
{
    private $host = '127.0.0.1';
    private $dbName = 'php_crud';
    private $username = 'root';
    private $password = '';
    private $connection;

    public function connect()
    {
        try {
            $this->connection = new PDO(
                "mysql:host={$this->host};dbname={$this->dbName}",
                $this->username,
                $this->password
            );
            $this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            return $this->connection;
        } catch (PDOException $e) {
            die("Database connection failed: " . $e->getMessage());
        }
    }
}</code>
ログイン後にコピー

ビューの作成 (user_list.php)

<code class="language-php"><?php namespace Models;

use Config\Database;

class User
{
    private $conn;

    public function __construct()
    {
        $database = new Database();
        $this->conn = $database->connect();
    }

    public function create($name, $email)
    {
        $sql = "INSERT INTO users (name, email) VALUES (:name, :email)";
        $stmt = $this->conn->prepare($sql);
        $stmt->bindParam(':name', $name);
        $stmt->bindParam(':email', $email);
        return $stmt->execute();
    }

    public function read()
    {
        $sql = "SELECT * FROM users";
        $stmt = $this->conn->prepare($sql);
        $stmt->execute();
        return $stmt->fetchAll(\PDO::FETCH_ASSOC);
    }

    public function update($id, $name, $email)
    {
        $sql = "UPDATE users SET name = :name, email = :email WHERE id = :id";
        $stmt = $this->conn->prepare($sql);
        $stmt->bindParam(':name', $name);
        $stmt->bindParam(':email', $email);
        $stmt->bindParam(':id', $id);
        return $stmt->execute();
    }

    public function delete($id)
    {
        $sql = "DELETE FROM users WHERE id = :id";
        $stmt = $this->conn->prepare($sql);
        $stmt->bindParam(':id', $id);
        return $stmt->execute();
    }
}</code>
ログイン後にコピー

エントリポイント (index.php) を作成します

<code class="language-php"><?php namespace Controllers;

use Models\User;

class UserController
{
    public function createUser($name, $email)
    {
        $user = new User();
        return $user->create($name, $email);
    }

    public function getUsers()
    {
        $user = new User();
        return $user->read();
    }

    public function updateUser($id, $name, $email)
    {
        $user = new User();
        return $user->update($id, $name, $email);
    }

    public function deleteUser($id)
    {
        $user = new User();
        return $user->delete($id);
    }
}</code>
ログイン後にコピー

概要

OOP の原則に従い、PHP のベスト プラクティスを適用することで、シンプルでスケーラブルな CRUD アプリケーションを構築しました。このアプローチにより、新しい機能でプロジェクトを簡単に拡張したり、データベースの対話を改善したりできます。

このガイドでは以下について説明します:

  • シンプルで管理しやすいフォルダー構造。
  • MySQL 接続用の再利用可能なデータベース クラス。
  • すべての CRUD 操作をカプセル化するユーザー モデル。
  • ビジネス ロジックを処理するための UserController。

この構造により、PHP アプリケーションがよりクリーンになり、よりモジュール化され、拡張が容易になります。このアプローチを使用して、OOP と MySQL を使用して大規模で複雑なアプリケーションを構築できるようになりました。

コーディングを楽しんでください! ?

以上がOOP と MySQL を使用した PHP CRUD アプリケーションの構築: ベスト プラクティス ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート