문의하기
개발 이야기

PHP 8.x 실무 적용 후기 - Named Arguments부터 Fibers까지

2024년 10월 18일 · 약 2분 소요 · 722회 조회 · 관리자

PHP의 대변혁

2024년 새로운 프로젝트부터 PHP 8.2를 기본으로 사용하기 시작했습니다. PHP 8은 언어 자체의 설계를 개선한 버전으로, 코드의 안전성과 가독성이 크게 향상되었습니다.

Named Arguments (명시적 인수)

// PHP 7.4
function createUser($name, $email, $role, $active = true) {}
createUser('John', 'john@example.com', 'admin', true);

// PHP 8 - Named Arguments
createUser(name: 'John', email: 'john@example.com', role: 'admin', active: true);
// 순서 상관없이, 명확한 의도 표현
createUser(email: 'john@example.com', name: 'John', role: 'admin');

Union Types (합집합 타입)

// PHP 8
function formatValue(string|int|float $value): string {
    return (string) $value;
}
// 여러 타입을 허용하되, 명확히 선언

Match Expression

// 기존 switch
switch ($status) {
    case 'active':
        return '활성화됨';
    case 'inactive':
        return '비활성화됨';
    default:
        return '알 수 없음';
}

// PHP 8 match
$message = match ($status) {
    'active' => '활성화됨',
    'inactive' => '비활성화됨',
    default => '알 수 없음'
};

Attributes (속성)

// 메타데이터를 코드에 직접 작성
#[Route('/api/users', 'GET')]
#[Auth(role: 'admin')]
function getUsers() {}

// 리플렉션으로 읽어서 처리

성능 향상

PHP 8은 PHP 7 대비 약 2배 성능 향상을 보였습니다. 같은 기능을 더 빠르게 실행할 수 있습니다.

목록으로
무료 상담