본문 바로가기

laravel

Laravel Responder 주의 : 영어 해석이 어색한 부분이 굉장히 많음.. 이상하다 싶으면 원문 읽길 바랍니다. Laravel Responder는 API 응답을 구성하기 위한 패키지다. transformers를 사용해서 데이터를 transform할 수 있고, 성공과 에러 응답을 생성하고 직렬화할 수 있다. 예외 처리를 하고 응답 테스트를 지원할 수 있다. Intro 라라벨은 JSON으로 변환하기 위해 컨트롤러 메서드로부터 모델들을 바로 반환하게 한다. 이건 API를 구성하기 위해 빠른 방법이지만 DB column들이 드러나게 된다. Fractal은 transformers로 이 문제를 해결했다. 하지만 프레임워크와 통합하는 것은 좀 번거로울 수 있다. public function index() { // 사용자 모델들을 다 조회..
laravel with() vs load() with() : 호출될 때 한번에 연관된 모델들을 가져온다. eager loading. 2개의 쿼리만 날린다. N+1 쿼리 문제를 해결해준다. N+1 쿼리 문제? 1:N인 관계에서 1인 모델을 조회한 뒤 연관된 N개의 모델을 가져오려면 1+N개의 쿼리가 DB에 요청되는 문제.
Laravel env() vs PHP getenv() env()는 환경 변수의 값 또는 기본 값을 반환한다. $env = env('APP_ENV'); // Returns 'production' if APP_ENV is not set... $env = env('APP_ENV', 'production'); in .env file APP_ENV = 'test' getenv()는 환경 변수의 값을 가져올 때 사용한다. 값이 존재하면 반환하고 환경 변수 이름이 없는 경우는 false를 반환한다. 환경 변수 이름이 지정되어 있지 않으면 모든 환경 변수들은 연관 배열로 반환된다. 대소문자 구분이 없다. 결론 laravel의 env()는 getenv()를 발전시킨 헬퍼이기 때문에 laravel에선 env()를 활용해 환경 변수에 접근하면 좋을 것 같다. default 값..
Laravel optional helper 라라벨 회사에서 애플 로그인 작업을 하다가 애플 서버 응답이 에러면 처리해야 하는 부분이 있었다. PR을 날리고 코드 리뷰를 받는데 개발자분께서 optional을 쓰라고 하셨다. -> (object operator)로 A라는 객체의 값에 접근하려고 할 때 A가 사실 객체가 아닌 경우(non object)라면 error가 나게 된다. 아래 예시에서 $exception->getResponse()->getBody()->getContent()를 통해서 특정 값에 도달 해 json_decode를 하고 error key에 접근을 시도한다. $errorDescription = json_decode(optional(optional($exception->getResponse())->getBody())->getContents()..