2025. 9. 3. 21:31ㆍ프로그램/PHP 고급
ORM(Object-Relational Mapping)의 개념을 이해했다면, 이제 직접 #모델 (Model)을 만들고 #데이터베이스에 연동하여 데이터를 다뤄볼 차례야. 이번 포스팅에서는 #PHP의 #ORM인 #Eloquent ORM을 활용해서 실제로 #클래스를 정의하고 #테이블과 연결하는 방법을 알아볼 거야.
1. ORM 환경 설정: Laravel 없이 Eloquent 사용하기
#Eloquent ORM은 #Laravel #프레임워크에 내장되어 있지만, #Laravel을 사용하지 않는 순수 #PHP 환경에서도 독립적으로 사용할 수 있어. 이를 위해 필요한 패키지를 #Composer로 설치하고 간단한 #설정 파일을 만들어야 해.
1-1. Composer로 패키지 설치
터미널에서 아래 명령어를 실행하여 #Eloquent와 #데이터베이스를 연결해 줄 #PHP 라이브러리를 설치해. composer require illuminate/database
1-2. 데이터베이스 설정 파일 만들기
bootstrap.php와 같은 파일을 만들어서 #데이터베이스 #연결 정보를 설정해줘. 이 파일은 모든 #PHP #스크립트에서 require 해서 사용할 거야.
<?php
// bootstrap.php
use Illuminate\Database\Capsule\Manager as Capsule;
require 'vendor/autoload.php';
$capsule = new Capsule;
$capsule->addConnection([
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'your_database',
'username' => 'your_username',
'password' => 'your_password',
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
]);
$capsule->setAsGlobal();
$capsule->bootEloquent();
위 코드에서 your_database, your_username, your_password 등을 실제 #데이터베이스 #정보로 변경해줘. Capsule은 #Eloquent를 독립적으로 사용할 수 있게 해주는 클래스야.

2. 모델(Model) 클래스 생성
이제 #데이터베이스의 #테이블과 매핑될 #모델 #클래스를 만들어보자. 예를 들어, users #테이블이 있다면 User.php라는 파일을 만들고 아래와 같이 작성해.
2-1. User 모델 정의
<?php
// User.php
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
// Eloquent는 기본적으로 클래스 이름의 복수형을 테이블 이름으로 간주해.
// 따라서 User 클래스는 'users' 테이블과 연결돼.
// 만약 다른 테이블 이름을 사용하고 싶다면 protected $table = 'my_users'; 와 같이 지정할 수 있어.
}
이 코드는 #Eloquent의 #Model #클래스를 상속받아 User #클래스를 정의하고 있어. 이제 이 User #클래스는 users #테이블과 연결돼서 #데이터베이스의 #데이터를 다룰 수 있는 도구가 돼.
3. 데이터 조작 예제
모든 설정이 끝났으니, 이제 #모델을 사용해서 #데이터를 생성, 조회, 수정, 삭제하는 코드를 작성해볼게.
3-1. 사용자 데이터 생성 (Create)
<?php
require 'bootstrap.php';
require 'User.php';
$user = new User;
$user->name = 'John Doe';
$user->email = 'john@example.com';
$user->password = password_hash('password123', PASSWORD_BCRYPT);
$user->save();
echo "새로운 사용자가 생성되었습니다. ID: " . $user->id;
save() 메서드를 호출하면 #Eloquent가 자동으로 #SQL INSERT #쿼리를 실행해서 새로운 #데이터를 #테이블에 저장해줘.

3-2. 사용자 데이터 조회 (Read)
<?php
require 'bootstrap.php';
require 'User.php';
// 모든 사용자 조회
$users = User::all();
foreach ($users as $user) {
echo $user->name . "님의 이메일은 " . $user->email . "입니다.\n";
}
// 특정 ID의 사용자 조회
$user = User::find(1);
echo "ID가 1인 사용자의 이름은 " . $user->name . "입니다.";
#Eloquent는 all()이나 find() 같은 직관적인 #메서드를 제공해서 #SQL SELECT #쿼리를 쉽게 작성할 수 있어.

루젠VPN, #VPN추천 끝판왕! #멀티IP와 강력한 #API 지원으로 비즈니스 맞춤 최적화.
안정적이고 빠른 속도로 제한 없이 자유로운 #인터넷 을 루젠VPN 으로
VPN 5,500원 / IP교체 1,100원 / 유동프록시 22,000원 | LuzenVPN 루젠VPN
국내최저가 고정IP서비스,유동프록시(IP4000개이상제공),PPTP,L2TP,IPSec,OpenVPNVPN,통신사VPN,VPN프로그램,고정IP,고정아이피,PPTP,저렴한VPN,리니지MVPN,리니지VPN,아이온VPN,던파VPN,유동프록시,유동PROXY,바이
vpn.luzensoft.com
'프로그램 > PHP 고급' 카테고리의 다른 글
| 📚 PHP 고급 - 3주차: 인증 및 권한 관리 (프레임워크) - 01 프레임워크의 내장 인증 시스템 활용 (0) | 2025.09.13 |
|---|---|
| 📚 PHP 고급 - 2주차: ORM (Object-Relational Mapping) 활용 - 03 관계형 데이터베이스 관리 (1:1, 1:N, N:M 관계) (0) | 2025.09.05 |
| 📚 PHP 고급 - 1주차: PHP 프레임워크 입문 - 03 라우팅, 컨트롤러, 뷰 기본 사용법 (0) | 2025.08.26 |
| 📚 PHP 중급 - 1주차: PHP 프레임워크 입문 - 02 선택한 프레임워크의 설치 및 기본 구조 이해 (0) | 2025.08.25 |
| 📚 PHP 고급 - 1주차: PHP 프레임워크 입문 - 01 프레임워크의 필요성과 장점 (0) | 2025.08.19 |