일단 부딪힌건 try catch 였음


PHP 는 걍 php 4 시절에도 예외를 객체로 던짐

라스무스 생각에 클래스는 c 의 구조체다 ~(사용자 정의타입) 이말임
그래서 객체 접근도 C 구조체 마냥 .  안쓰고 -> 이거 써놓음...



그건 그렇고
PHP 8 부터 gd 랑 스트림쪽 오류나면 ValuError 예외 던지게 바뀌어서 try catch 쓰거나 일단 죽는거로 하기로 하고...


두번째

Enum 인데 이넘은 뭐 안쓰면되니까 패스.



세번째

일단 네임스페이스를 쓰려고 보니까

PHP 는 클래스에만 기능 싹 몰아줘서  * 가지고 전부 가져오는것도 지원안함

그래서 함수만 쓰면 코드가 이딴식이됨 


// 클래스의 경우: 파일 한 줄로 끝 use App\Services\UserService; $service = new UserService(); // 내부의 모든 메서드 그냥 사용 가능 // 함수의 경우: 가져다 쓸 함수를 일일이 다 적어야 함 use function App\Services\createUser; use function App\Services\updateUser; use function App\Services\deleteUser; use function App\Services\getUserByEmail;... 그밖에 10 쓰려면 10개 다적어야..


일단 그렇고..


파일 쪼개서 include 하면 되는거 아니냐?

함수가 절대로 서로 참조하지 못하게 해야하고


서로 다른 include  파일 1  include 파일 2, require 파일3 
이렇게 있으면 쟤네 순서를 항상 잘지켜야됨 안그러면 뻑남. php 4 시절에 이랬데...ㄷ 
왜냐? 함수는 오토로딩이 안되니까...


그리고 얘네 상호참조 오류에 빠질가능성이 있어서 결국에는 모든걸 다 include 하게끔 코드를 변경해야될수도있음

(그누가 거대한 common.php 가지고있는이유)
php 4 빡친 너무너무 힘들어서 영국 아저씨가 파이썬가지고 장고만들었음

네번째. 프리로딩 불가

opcache 프리로딩이라고 클래스들 메모리에 쭉올려놓고 성능 올리는거 있음
뭐 얘도 일단 패스



다섯 번째.  또 뭐있을까

PHP 에 pipe 라고 함수형으로 들어온거 있고 잘 쓰기위해 PFA 가  8.6 에 통과되었는데

얘는 내부적으로 클로저 '객체'야 


뭐 아직 나온건 아니니까 패스


여섯번째


제너레이터: php 5.5 때 생김


이녀석은 대규모 반복문이나 file i/o 에서 메모리 아끼려고 하는 앤데

겉보기에는 함수로 생겼지만 제너레이터 객체야..


WeakMap 도 객체니까 못쓰는구나..



PHP  날짜다루는 함수들 있는데 얘네도 내부는 객체


그래서 함수를 통해서 만들어놔도  -> 써가지고 체이닝됨...