현재 위치: > 최신 기사 목록> pdostatement :: fetchobject의 사용자 정의 클래스를 사용하여 편안한 API를 만듭니다

pdostatement :: fetchobject의 사용자 정의 클래스를 사용하여 편안한 API를 만듭니다

gitbox 2025-05-29

최신 PHP 개발에서 PDO (PHP 데이터 객체)는 가볍고 효율적인 데이터베이스 액세스 인터페이스를 제공합니다. pdostatement :: FetchObject 함수는 데이터베이스 쿼리 결과를 객체에 직접 인스턴스화하는 데 도움이 될 수 있습니다. 커스텀 클래스와 결합하여 잘 구조화 된 RESTFUL API를 신속하게 구축 할 수 있습니다. 이 기사는 pdostatement :: fetchobject를 사용하여이를 달성하는 방법을 자세히 설명합니다.

RESTFUL API를 개발할 때는 데이터베이스 쿼리 결과를 처리하려면 종종 명확하고 관리 가능한 방법이 필요합니다. pdostatement :: FetchObject를 사용하면 쿼리 결과를 사용자 정의 클래스의 인스턴스로 직접 변환 할 수 있으므로 코드를 단순화 할뿐만 아니라 전체 아키텍처의 가독성과 유지 가능성을 향상시킵니다.

아래에서는 전체 예제를 사용하여 간단한 사용자 (사용자) API를 구축합니다.

1 단계 : 데이터베이스 및 테이블을 만듭니다

다음 구조의 사용자 테이블이 있다고 가정합니다.

 CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100) NOT NULL
);

일부 테스트 데이터를 삽입하십시오.

 INSERT INTO users (name, email) VALUES 
('Alice', '[email protected]'),
('Bob', '[email protected]');

2 단계 : 사용자 클래스 정의 (user.php)

이 클래스는 데이터베이스 쿼리 결과를 매핑하는 데 사용됩니다.

 class User
{
    public int $id;
    public string $name;
    public string $email;

    public function toArray(): array
    {
        return [
            'id'    => $this->id,
            'name'  => $this->name,
            'email' => $this->email,
        ];
    }
}

ToArray 메소드는 객체를 API에서 JSON을 반환 할 수 있도록 객체를 배열 형식으로 변환하도록 촉진합니다.

3 단계 : 데이터베이스 연결 설정 (DB.PHP)

 <?php
function getPDO(): PDO
{
    $dsn = 'mysql:host=localhost;dbname=api_example;charset=utf8mb4';
    $username = 'root';
    $password = '';

    return new PDO($dsn, $username, $password, [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    ]);
}
?>

4 단계 : API 항목 파일 쓰기 (API.PHP)

 <?php
require 'db.php';
require 'User.php';

// 응답 헤더를 설정하십시오
header('Content-Type: application/json');

$pdo = getPDO();

// 사용자를 얻으십시오ID,그렇다면
$id = $_GET['id'] ?? null;

if ($id) {
    // 단일 사용자를 얻으십시오
    $stmt = $pdo->prepare('SELECT * FROM users WHERE id = :id');
    $stmt->execute(['id' => $id]);
    $user = $stmt->fetchObject('User');

    if ($user) {
        echo json_encode($user->toArray());
    } else {
        http_response_code(404);
        echo json_encode(['error' => 'User not found']);
    }
} else {
    // 모든 사용자를 얻으십시오
    $stmt = $pdo->query('SELECT * FROM users');
    $users = [];
    while ($user = $stmt->fetchObject('User')) {
        $users[] = $user->toArray();
    }
    echo json_encode($users);
}
?>

5 단계 : API를 테스트하십시오

내장 PHP 서버 사용과 같은 로컬 서버를 시작하십시오.

 php -S localhost:8000

그런 다음 다음 주소를 방문하여 테스트하십시오.

실제 배포에서는 서버 주소를 자신의 도메인 이름으로 바꿀 수 있습니다.

 https://api.gitbox.net/api.php?id=1

요약

pdostatement :: fetchObject를 사용하여 데이터베이스 레코드를 매우 우아하게 사용자 정의 객체에 매핑하여 RESTful API의 개발 프로세스를 단순화 할 수 있습니다. 객체 지향 설계를 사용하면 프로젝트를보다 모듈화 할뿐만 아니라 검증 및 직렬화 규칙 추가와 같은 후속 확장을 더 쉽게 만듭니다.