#모던PHP

겍코겍코· 2년

미처 몰랐을 수 있는 최신 PHP에 추가된 기능 요약 (PHP 7, 8 버전)

Modern PHP | Dimitrios Lytras While I wasn't paying attention, PHP got quite good dnlytras.com PHP는 여전히 계속 좋아지고 있습니다. 미처 몰랐을 수도 있는 몇가지 기능을 요약하였습니다.   Array destructuring Array destructuring을 이용하면 배열의 각 항목을 변수에 간편하게 할당할 수 있습니다. 아래 코드는 $array의 각 항목을 $a, $b, $c 변수에 할당하는 예제입니다. // 배열 destructuring 예제 $array = ['apple', 'banana', 'cherry']; [$a, $b, $c] = $array; // 변수 값 출력 echo $a . "\n"; // apple echo $b . "\n"; // banana echo $c . "\n"; // cherry   Null Coalescing 연산자 ?? Null Coalescing 연산자는 변수가 null인 경우에 대해 처리하는 방법을 단순화할 수 있습니다. 다음 예제에서 $value가 null인 경우에는 $default값을 반환합니다 $value = null; echo $value ?? $default;   Spaceship 연산자 <=> Spaceship 연산자는 두 개의 값을 비교하여 차이점을 반환합니다. 다음 예제에서는 $result에 -1값이 할당됩니다 $a = 2; $b = 3; $result = $a <=> $b;   Return Type Declarations 함수의 반환 값 타입을 명시할 수 있습니다. // 예시 function greet(): string { return "Hello, world!"; }   Scalar Type Declarations 함수의 매개변수와 반환 값에 스칼라 타입을 명시할 수 있습니다. // 예시 function add(int $x, int $y): int { return $x + $y; }   Composer를 사용한 패키지 관리 Composer를 사용하면 외부 라이브러리를 설치하고 관리하는 것이 용이해집니다. 다음 예제는 guzzlehttp/guzzle 패키지를 설치하고 사용하는 예제입니다: // Composer 설치 후 패키지 추가 composer require guzzlehttp/guzzle use GuzzleHttp\Client; $client = new Client(); $response = $client->get('http://example.com');   코드 품질 향상을 위한 도구 사용  PHP_CodeSniffer는 코딩 스타일을 검사하는 도구입니다. 코딩 스타일이 일관되게 유지되면 코드의 가독성이 향상되고 유지보수성이 향상됩니다. 다음 예제는 PHP_CodeSniffer를 사용하여 코딩 스타일을 검사하는 방법입니다 // PHP_CodeSniffer 설치 composer require squizlabs/php_codesniffer // 코드 품질 검사 명령어 ./vendor/bin/phpcs --standard=PSR2 path/to/code   객체 지향 프로그래밍과 디자인 패턴 객체 지향 프로그래밍과 디자인 패턴은 PHP 코드의 가독성과 재사용성을 향상시키는 방법 중 하나입니다. 다음 예제는 객체 지향 프로그래밍과 디자인 패턴을 이용하여 코드를 구성하는 예제입니다 interface Car { public function drive(): string; } class BMW implements Car { public function drive(): string { return 'Driving a BMW'; } } class CarFactory { public function create(string $type): Car { switch ($type) { case 'bmw': return new BMW(); default: throw new Exception('Invalid car type'); } } } $carFactory = new Car  
535
1
0