100호. 라라벨 6.7.0 새 기능 free

2019-12-23

즐거운 주말 보내셨나요? 저는 주말 내내 키보드에 손을 못댔더니 손이 근질근질하네요. ㅎㅎ 오늘은 라라벨 6.7.0 새 기능을 정리해서 가져왔습니다.


정규화된 타임스탬프 컬럼명 조회 기능 추가


HasTimestamps 트레이트에 getQualifiedCreatedAtColumn()getQualifiedUpdatedAtColumn() 매서드가 추가되었습니다. 다음과 같이 정규화된 타임스탬프 컬럼명을 반환합니다.



예외 핸들러에 exceptionContext 매서드 추가


로그를 남길 때 예외 관련 데이터를 추가할 수 있도록 매서드를 추가했다고 합니다. 이전까지는 report 매서드 전체를 수정했어야 했다고 하네요.


아래와 같이 예외 핸들러에 exceptionContext 매서드를 구현해서 사용할 수 있습니다.


throw (new CustomException())->setCustomProperty('foo');

// App/Exceptions/Handler.php
protected function exceptionContext(Exception $e)
{
if ($e instanceof CustomException) {
return ['custom_context' => $e->getCustomProperty()];
}
}

postmark transport 예외 추가


postmark가 200을 회신하지 않으면 조용하게 실패했는데, 이제는 예외를 던지도록 바뀜.


엘로퀀트 HasRelationships 트레이트에 withoutRelations 매서드 추가


관계 데이터가 필요없는데 계속 들고 있으면 시스템에 부담만 되죠. 큐 잡에서 시리얼라이즈를 하기 때문에 관계 데이터가 있으면 시리얼라이즈된 문자열이 굉장히 커질 수 있기 때문에 문제가 됐다고 합니다. withoutRelations()는 인스턴스를 복제하되 관계를 제거해서 반환합니다.


protected $podcast;

public function __construct(Podcast $podcast)
{
$this->podcast = $podcast->withoutRelations();
}

페이지 처리된 API 리소스에 쿼리 파라미터 유지할 수 있게 됨


다음과 같이 preserveQueryParameters()를 이용해서 페이지 처리된 API 리소스에 쿼리 파라미터를 유지할 수 있게 되었습니다. 이전까지는 스태틱하게 설정했어야 했던것 같아요.


return MyResourceCollection::make($repository->paginate())
->preserveQueryParameters();

마치며


어느새 100호가 되었네요. 뭔라도 이벤트를 준비했어야 했는데! 바삐 살다보니 어영부영 지나가는게 좀 아쉽습니다. ㅠ


1일 1식 라라벨 100호

2019년 12월 23일


이현석

메쉬 코리아 개발자. 바쁜 팀장님 대신 알려주는 신입 PHP 개발자 안내서를 쓰고, 클린 아키텍처 인 PHP를 번역했습니다. 2020년에 출간될 Laravel Up & Running 2nd Edition을 번역하고 있습니다.