PHP 기본은 비동기적 요소라고는 프로세스하나 포크 띄우는거 말고는 없지만
AMPHP 라던가 swoole 이라던가 대충 여러가지 있음
얘네들은 출시한지 10년차라서 쓰는곳도 좀있음
근데 각자 비동기를 구현한 방식이 다름.
AMPHP 는 노드 JS 처럼 싱글스레드 + 이벤트 루프 모델임
async , await 를 쓰고, 이벤트루프 라이브러리도 노드가 가져다쓴 libuv 이거 설치함
그러면 노드랑 같은데 왜 쓰냐? 코드 새로짜기는 싫고 php 코드 재활용하고 싶은 애들이 쓰는거
amphp 공식 예제.
swoole
중국인들이 인구트래픽 감당안되서 C++ 로 하나 만듦
open swoole - 중국인 못믿어서 영국인이 포크 떳음 ㅋㅋㅋ
그래서 다들 이거쓰는중
얘네는 코루틴 모델인데
지금 php 프레임워크들 swoole 랩핑한거 많아짐
코루틴 모델의 장점은 async ,await 처럼 하나가 async 키워드 달면 호출자도 달아야하는 함수 색 전염이 없음
그래서 프레임워크들이 swoole 많이 쓰는듯.
코루틴에서 도니까 전역상태 변경만 안일어나면되는데
swoole 에 맞춰 쓰기 귀찮은 사람들이 기존 코드 변경 최소화하려고 octane 만듦
(요청 끝나고 코루틴 내 모든 변수 초기화 옵션넣음)
그러면 저걸 왜쓰냐는데 DB 풀도 있고 프레임워크초기화는 안해도 되서 성능 이득이 여전히 있음.
swoole 기반으로 처음부터 짠 PHP 프레임워크도 나왔는데
성능은 고랭 쪽 프레임워크들이랑 비슷함.
끝.
reactphp 라는 것도있는데 amphp 처럼 이벤트루프씀 amphp 가 나은듯.
그리고 dung-php라는 것도 있는데 PHP를 쓰는 사람이 비동기로 화나게 만듬 막장으로 설계한 개판 코드로 화나게 만드는데 PHP의 코어 대부분에 붙어있는 가장 중요한 기능 요소임
이제 PHP 포기할 때 됐잖아 그만 놔줘. 산소 호흡기 달고 있는데 PHP 9.X 된다고 벌떡 일어나진 않으니까 묻어줘.
뭐쓰고 있어?
PHP