PHP 5.6.0

  • 2014년 8월 28일 발표

 

PHP 7.0

  • 2015년 12월 1일 공개
  • 파서 재작성으로 성능 향상 - PHP 5.6 보다 두배 이상 빠른 속도
  • 변수 최적화로 메모리 사용률이 상당히 감소 PHP 5.6 대비(1/5)로 감소
  • 추상 구문 트리(Abstract Syntax Tree)
  • 일관된 64비트 지원(Consistent 64-bit support)
  • 향상된 예외 상속(Improved Exception hierarchy)
  • 많은 치명적 에러들이 예외로 전환됨
  • 보안 난수 발생기(Secure random number generator)
  • 오래됐거나 지원하지 않는 SAPI와 확장 지원 중단
  • Null 병법 연산자(The null coalescing operator (??))
  • 함수에 리턴 타입 정의, 매개변수에 스칼라 타입 정의 가능
  • 익명 클래스(Anonymous Classes)
  • Zero c

 

PHP 7.1

  • 2016년 12월 3일 공개
  • 일반지원 기간 : 2018-12-01
  • 보안 부분 지원기간 : 2019-12-01

  • 함수 리턴과 매개변수에 Nullable 지정(Nullable Type)
  • 리턴 타입에 이터러블과 Void 지원(Iterable and Void Returns)
  • try catch 구문에서 catch에 한 번에 여러 익셉션 감지
  • list 함수에서 key 사용 가능
  • 배열의 인덱스에 음수 사용 가능
  • 이터러블타입인지 확인하는 is_iterable() 함수

 

PHP 7.2

  • 2017년 11월 30일 공개
  • 일반지원 기간 : 2019-11-30
  • 보안 부분 지원기간 : 2020-11-30

  • PHP 7.1 대비 10%의 성능 향상
  • Mcrypt 확장이 제거됨
  • Argon2 해시함수 지원 
  • 함수의 리턴과 매개변수의 타입으로 object 지정가능.
  • 추상 클래스의 추상 메서드를 오버라이딩 가능
  • 클래스 오토로딩함수 __autoload -> spl_autoload_register 로 전환
  • each 함수 삭제 예고됨 (이터러블로 대체 권장)

 

PHP 7.3

  • 2018년 12월 8일 공개
  • 일반지원 기간 : 2020-12-06
  • 보안 부분 지원기간 : 2021-12-06

  • PHP 7.2 대비 성능이 5% 향상되었다.
  • FastCGI의 로그 작성이 최적화되었다.
  • 기존 여러 줄 작성 가능한 문법 Heredoc, Nowdoc의 유연화
  • 배열의 마지막 요소에 , 가능(Trailing commas)
  • 어떤 변수가 셀 수 있는 타입인지 체크 강화
  • 어떤 변수가 셀 수 있는 타입인지 체크하는 is_countable() 함수 추가
  • samesite 쿠키 지원
  • list 함수의 기본 동작이 참조 전달(call by references) ->값 복사(call by value)로 전환
  • 기존처럼 참조변수 전달 시 & 명시
  • 정규식 엔진을 PCRE -> PCRE2로 전환

 

PHP 7.4

  • 2019년 11월 28일 공개
  • 일반지원 기간 : 2021-11-28
  • 보안 부분 지원기간 : 2022-11-28

  • 람다식이라고도 부르는 화살표 함수 추가(Arrow functions)
  • 함수 축약 표현식 fn 문법 추가
  • 클래스를 미리 메모리에 로딩하는 프리 로딩 추가 (Preloading)
  • 클래스 프로터티에 타입 명시 가능
  • PHP 코어의 타입 시스템 개선 (Improved type variance)
  • Null 병합연산자 추가 (?? 물음표가 두 개이다.) (Null coalescing)
  • 배열 전개 연산자 추가 (Array spread operator)
  • 외부 함수 인터페이스 FFI 추가로 다른 언어(c나 러스트, go 등)로 작성된 라이브러리 로딩 가능
  • 사용자 정의 객체의 직렬화 가능
  • 삼항 연산자 중첩 시 왼쪽부터 평가되게 전환 예고(언어의 비일관성 개선)

 

PHP 8.0

  • 2020년 11월 26일 발표
  • 일반지원 기간 : 2022-11-26
  • 보안 부분 지원기간 : 2023-11-26

  • 성능 향상을 위한 JIT 도입 (0.9~3.0배 빠른 성능)
  • 정의되지 않은 변수 검사 등 예외처리 강화
  • 에러 출력 안 하게 하는 @연산자 삭제
  • Null safe 연산자 지원(javascirpt에서는 옵셔널체이닝이라 불림)
  • 애트리뷰트 기능 지원 (자바에서는 어노테이션이라고 불림)

 

PHP 8.1

  • 2021년 11월 25일
  • 일반지원 기간 : 2023-11-25
  • 보안 부분 지원기간 : 2024-12-25

  • PHP 8.0 대비 47.10% 빠른 성능
  • Enumerations
  • Readonly properties
  • 경량 스레드 기능인 Fiber 도입
  • 파일 변경 사항을 디스크에 강제 동기화하는 fsync 기능
  • 클래스 상수 final 사용 가능
  • 새로운 명시적 8진수 표기법

 


PHP 업그레이드 계획

현재 운영 중인 사이트에서 PHP 7.0코드이그나이터 3 을 사용하고 있습니다.

목표는 PHP 8 이상, 라라벨9 이상으로 업그레이드 하는 겁니다.
그러기 위해서는 아래처럼 계획이 잡히네요. 

  1. 현재 : CI 3 + PHP 7.0
  2. 1차 : CI3 + [PHP 7.4] 업그레이드
  3. 2차 : [PHP 7.4] + [라라벨 8] + PHP 7.4 업그레이드
    - 한 번에 업그레이드할 수 없을 듯하고,
    - CI와 라라벨 같이 사용할 수 있는 방안 모색
  4. 3차 : [라라벨 8] + PHP 7.4 업그레이드
  5. 4차 : 라라벨8 + [PHP 8.1 이상] 업그레이드
  6. 5차 : [라라벨9 이상] + [PHP 8.1 이상]

23년까지 2차~3차 완료하는 계획을 잡아 볼 예정입니다. 


 


참고자료

 

https://devcheat.tistory.com/6

위의 사이트에서 php8 언어별 벤치마크 한 자료 있습니다. 결과가 재미있네요. 
빨리 8.1로 업그레이드하고 싶습니다.