> 데이터 베이스 > MySQL 튜토리얼 > OOP 및 MySQL을 사용하여 PHP CRUD 애플리케이션 구축: 모범 사례 가이드

OOP 및 MySQL을 사용하여 PHP CRUD 애플리케이션 구축: 모범 사례 가이드

Patricia Arquette
풀어 주다: 2025-01-11 07:20:43
원래의
855명이 탐색했습니다.

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

PHP 애플리케이션 개발에서는 데이터베이스 작업을 효율적으로 관리하는 것이 중요합니다. CRUD(생성, 읽기, 업데이트, 삭제)는 가장 일반적인 데이터베이스 작업 중 하나입니다. 객체 지향 프로그래밍(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의 사용자 테이블과 상호 작용하기 위한 로직이 포함되어 있습니다.
  • 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/: 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 작업 생성

사용자 데이터를 처리하기 위한 모델을 만들어 보겠습니다. 이 클래스는 사용자 테이블과 상호 작용하고 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿