반응형
Web Development · PHP Member class
Member 클래스 —
private + getter/setter의 표준 형태
DTO·엔터티 객체의 가장 흔한 패턴
시작 오늘 분석할 코드
class Member { private $id; private $lastname; private $firstname; private $email; private $password; public function setID($id) { $this->id = $id; } public function getID() { return $this->id; } public function setLastname($x) { $this->lastname = $x; } public function getLastname() { return $this->lastname; } // ... firstname, email, password도 같은 패턴 } $member = new Member; $member->setID("1"); $member->setLastname('당신의 성'); print $member->getID(); print $member->getLastname();
5개 멤버변수, 각각 setter와 getter — 총 10개 메서드. 회원 정보를 담아 다루는 가장 단순한 객체 구조.
용어 용어 정리
DTOData Transfer Object — 데이터를 옮기는 객체
엔터티DB의 한 행에 대응하는 객체
setter멤버에 값을 저장하는 메서드
getter멤버 값을 가져오는 메서드
camelCasesetLastname처럼 단어 첫 글자 대문자
캡슐화private + 메서드로 접근 통제
return $this메서드 체이닝용 (선택)
실무 표준대부분의 프레임워크가 이 패턴
1 왜 모두 private + getter/setter?
· 입력 검증을 setter에 끼워 넣을 수 있다 (이메일 형식, 비밀번호 길이 등)
· 내부 구조 변경해도 외부 코드 수정 없이 가능
· IDE 자동완성·문서화 도구가 명시적 인터페이스로 인식
· 자동 생성 도구가 많아 작성 부담↓
· 내부 구조 변경해도 외부 코드 수정 없이 가능
· IDE 자동완성·문서화 도구가 명시적 인터페이스로 인식
· 자동 생성 도구가 많아 작성 부담↓
2 camelCase 명명 관례
setId, setPassword, setLastname // 첫 글자 소문자, 다음 단어부터 대문자 getEmail, getFirstname // 클래스 이름은 PascalCase class Member, class UserAccount
3 메서드 체이닝 (return $this)
public function setID($id) { $this->id = $id; return $this; // 자기 자신 반환 } // 사용 — 체이닝 $member ->setID(1) ->setLastname("홍") ->setFirstname("길동") ->setEmail("...");
Fluent API로도 부르는 패턴. 한 줄에 여러 setter 호출 가능.
반응형
4 현대 PHP — Constructor Property Promotion
// PHP 8.0+ 짧게 class Member { public function __construct( private string $id, private string $lastname, private string $firstname, private string $email, private string $password, ) {} public function getID(): string { return $this->id; } // ... } $m = new Member("1", "홍", "길동", "...", "...");
핵심 한 줄 요약
private 멤버외부 직접 접근 차단
setter값 저장 (검증 가능)
getter값 반환
camelCasesetX/getX 명명 관례
DTO/엔터티DB의 한 행 = 한 객체
메서드 체이닝return $this 활용
PHP 8.0Constructor Property Promotion으로 짧게
반응형
'php' 카테고리의 다른 글
| PHP trait — 수평 상속(다중 코드 재사용) 완전 정리 (0) | 2026.06.18 |
|---|---|
| PHP extends — 클래스 상속과 메서드 오버라이딩 완전 정리 (0) | 2026.06.18 |
| PHP getter — private 멤버를 메서드로 우회 접근 완전 정리 (0) | 2026.06.18 |
| PHP private 멤버변수 — 외부 직접 접근 차단 완전 정리 (0) | 2026.06.18 |
| PHP 접근제어자 — public/private 메서드 완전 정리 (0) | 2026.06.18 |
왕진 블로그

댓글