PHP 7에서 도입된 그룹 use 선언(Group Use Declaration)은 가독성을 크게 향상시키는 기능으로, 동일한 네임스페이스에 속한 클래스, 상수, 함수를 한 번에 손쉽게 임포트할 수 있도록 해줍니다.
그룹 use 선언은 하나의 네임스페이스에서 여러 구조체를 간편하게 가져올 수 있게 하여, 대부분의 경우 코드의 장황함(verbosity)을 상당히 줄여줍니다. 또한 같은 모듈에 속한 여러 임포트 항목들을 한눈에 파악할 수 있다는 점에서도 매우 유용합니다.
예제 1 — PHP 7 이전 방식
다음 예제는 PHP 7 이전 버전에서 사용하던 코드입니다.
<?php
use com\India\ClassX;
use com\India\ClassY;
use com\India\ClassZ as Z;
use function com\India\fn_x;
use function com\India\fn_y;
use function com\India\fn_z;
use const com\India\ConstX;
use const com\India\ConstY;
use const com\India\ConstZ;
?>예제 2 — PHP 7 이상 방식
다음은 PHP 7 및 그 이상 버전에서 그룹 use 선언을 활용한 코드입니다.
use com\India\{ClassX, ClassY, ClassZ as Z};
use function com\India\{fn_x, fn_y, fn_z};
use const com\India\{ConstX, ConstY, ConstZ};코드 설명
예제 1에서는 네임스페이스 내의 개별 클래스, 함수, 상수마다 별도의 use 문을 작성해야 했습니다. 그 결과 파일 상단에 중복된 라인과 수많은 use 문이 반복되어 코드가 지저분해지고 관리하기 어려워집니다.
반면 예제 2는 PHP 7의 그룹 use 선언을 적용한 동일한 코드로, 여러 클래스, 함수, 상수를 단 몇 줄 안에 깔끔하게 처리할 수 있습니다.
참고: 반복되는 use 문과 클래스 임포트의 번거로움을 해결하기 위해 PHP 7에서는 바로 이 '그룹 use 선언(group use declaration)'이라는 새로운 기능이 추가되었습니다.