PHP 가 까이는거중에 하나가
array_ 접두사인 배열함수들이다.
php 4 때부터 map, reduce 가 있었는데 둘은 인자순서가 달랐음
개발머시기들은 그게 귀찮음. 햇갈리니깐 그게 까이는 전부임.
라라벨은 php 배열들이랑 개발에 자주쓰는 그룹바이 함수까지 구현했는데
객체로 묶어서 플루언트 API 를 만들었음.
그게 라라벨 컬렉션임
https://laravel.kr/docs/9.x/helpers
그냥 정상적이고, 일관됨.
문자열 함수도 들쭉날쭉하고 그런데 심포니 프레임워크는 Str 클래스로 랩핑 해놨는데 라라벨은 그거 갖다씀
그니까 라라벨 쓰는애들은 php 내장함수가 어쩌고~~ 저쩌고 하는거 귀에 안들어옴
왜냐? 그거 안쓰고 저거 쓰니까...
문자열도 이럼
$length = str('어쩌라고요')->length();
echo $length; // 출력: 5
// php 기본함수
$length = strlen('어쩌라고요'); // ascii 만 취급해서 다른값나옴
$length = mb_string('어쩌라고요'); // 멀티바이트 취급하는거 (기본값 utf-8) 이거써야됨
심포니랑 라라벨 쓰는동안은 php 의 mb_strpos, strpos, stripos 머시깽이 그지같은 기본함수들 쓸일 없음.
PHP 의 제일 개ㅈ같은 부분 감춰놓으니까 PHP 구리다는말 관심도 없음.
PHP 기본 <------------------------------------------------------------> 라라벨/심포니
분장ㅇㅇ
in_array부터 기본 함수 쓰는건 똑같음 게이가 예제로 보여준 코드에서도 쓰고있네 결국은 근본이 똥덩어리인데 JS ES6+처럼 모던 함수를 추가해주지 않는 한 똥덩이리인건 안바뀜
하 in_array 뭐어쨌다고 그러냐 $values 도 가져올때 collect 로 했으면 $values->contains('key') 로 할수있어. 그리고 라라벨/심포니에서 데이터 다루는것들은 입력부터 다 컬렉션으로 랩핑되어있어서 일반배열 다룰일도 별로없음.
문자열 처리는 C를 보는 느낌이네
https://en.cppreference.com/w/c/string/multibyte.html
PHP는
잘 모르겠고 C는 역사적인 산물이긴 한데 러스트 같은 언어로 코드를 작성하다가 C를 보면 고통스럽긴 하더라
php 글 재밌다