JanetNelson

PHP 8.4의 새로운 기능

· 2024-09-18 (수) 18:01:21 · 2637 · 4

PHP 8.4는 2024년 11월 21일에 출시될 예정입니다. 이 버전은 속성 훅, JIT 개선, 추가 괄호 없이 메서드 체이닝 호출을 지원하는 기능을 포함할 것입니다. 이는 큰 변화입니다!

속성 훅 RFC

현대 PHP 역사상 가장 큰 변화 중 하나는 속성 훅을 정의할 수 있는 능력입니다.


class BookViewModel
{
    public function __construct(
        private array $authors,
    ) {}

    public string $credits {
        get {
            return implode(', ', array_map(
                fn (Author $author) => $author->name,
                $this->authors,
            ));
        }
    }

    public Author $mainAuthor {
        set (Author $mainAuthor) {
            $this->authors[] = $mainAuthor;
            $this->mainAuthor = $mainAuthor;
        }

        get => $this->mainAuthor;
    }
}
    

속성 훅의 목표는 각 속성이 자체의 get 및 set 훅을 정의할 수 있도록 하여 많은 getter 및 setter를 제거하는 것입니다. 훅은 선택 사항이며 특정 속성에 대해 두 개의 훅을 동시에 추가할 필요는 없습니다. 예를 들어, get 훅만 있는 속성은 가상 속성입니다. 이는 현재 PHP 8.4에서 가장 큰 업데이트 중 하나로, 많은 코드를 줄여줄 것입니다 ?


interface HasAuthors
{
    public string $credits { get; }
    public Author $mainAuthor { get; set; }
}
    

괄호 없는 새 인스턴스 체이닝 호출 RFC

속성 훅이 충분하지 않다면, PHP 8.4는 새 인스턴스 호출을 괄호로 감싸지 않고도 메서드 체이닝을 호출할 수 있는 기능을 추가하여 많은 코드를 절약할 수 있습니다. 개인적으로 이 변경이 매우 좋다고 생각합니다. 매번 이렇게 해야 했거든요.


$name = (new ReflectionClass($objectOrClass))->getShortName();
    

이제 (PHP 8.4) 이렇게만 하면 됩니다:


$name = new ReflectionClass($objectOrClass)->getShortName();
    

JIT 변경 RFC

PHP 8.4는 JIT 활성화 방식을 변경했습니다. PHP 8.4 이전에는 opcache.jit_buffer_size를 0으로 설정해야 JIT를 비활성화할 수 있었지만, 이제는 다음과 같이 비활성화할 수 있습니다:


opcache.jit=disable
opcache.jit_buffer_size=64m
    

사용자가 이 변경에 영향을 받는 유일한 방법은 opcache.jit_buffer_size를 지정했지만 opcache.jit을 지정하지 않은 경우입니다. 이 경우, JIT를 다시 활성화하려면 opcache.jit=tracing을 추가해야 합니다.

마지막으로, JIT는 특정 상황에서 더 빠르게 실행되고 더 적은 메모리를 사용하도록 개선되었습니다.

|

댓글 4개

좋은 정보 감사합니다.

감사합니다.

좋은 정보 감사요!

2025-02-07 (금) 14:00:01

좋은 정보 감사합니다!!!

댓글을 작성하시려면 로그인이 필요합니다.

영카트5 팁자료실

455건
+
제목 글쓴이 날짜 조회
25-09-03 조회 1,687
25-08-26 조회 2,008
25-08-18 조회 2,058
25-08-16 조회 1,747
25-08-07 조회 1,864
25-07-31 조회 1,780
25-07-28 조회 1,888
25-07-24 조회 1,834
25-07-21 조회 1,815
25-07-14 조회 1,639
25-07-08 조회 1,880
25-07-01 조회 1,850
25-06-24 조회 1,863
25-06-05 조회 1,728
25-06-04 조회 1,438
25-04-08 조회 2,012
25-04-08 조회 1,658
25-03-24 조회 1,677
25-01-20 조회 2,222
24-12-31 조회 2,207
24-12-28 조회 1,668
24-10-24 조회 2,458
24-10-22 조회 1,861
24-10-21 조회 1,974
24-09-26 조회 3,607
24-09-18 조회 2,638
24-08-26 조회 4,234
24-08-23 조회 1,856
24-07-22 조회 4,649
24-07-18 조회 2,447