라라벨 5.8.29 릴리즈 free

2019-07-17

5.8.29가 나왔다. 변화된 내용 중 부를 골 소개한다.


이메 알림에 테마 설정 기능 추가


Mailableview메서드로 뷰를 지정할 수 있다. 이메 알림도 템플릿을 설정하는 기능이 있다. 하지만 이메 알림에 상황별로 다른 템플릿을 적용하는 기능은 없었다. 5.8.29 부터는 다음과 같이 theme 메서드로 이메 알림에 테마를 지정할 수 있다.


public function toMail($notifiable)
{
$url = url('/invoice/'.$this->invoice->id);

return (new MailMessage)
->theme('notification')
->greeting('Hello!')
->line('One of your invoices has been paid!')
->action('View Invoice', $url)
->line('Thank you for using our application!');
}

위와 같이 하면 resources/views/vendor/mail/html/themes/notification.css 테마를 사용하게 된다고 한다.


whereNull과 whereNotNull의 인자로 배열을 넘길 수 있음


기존에는 컬럼을 하나씩만 지정할 수 있었다. 그래서 여러가지 조건을 주려면 여러번 써줘야했다.


$query->whereNull('id')->whereNull('expires_at');
$query->whereNotNull('id')->whereNotNull('expires_at');

5.8.29 부터는 배열로 한 번에 끝낼 수 있다.


$query->whereNull(['id', 'expires_at']);
$query->whereNotNull(['id', 'expires_at']);

Console\Scheduling\ManagesFrequencies::hourlyAt()에 숫자 배열을 넘길 수 있음


작업 스케줄링 설정하는 옵션 중 hourlyAt() 메서드로 매시간 x분에 실행하도록 설정하는 방법이 있다. 하지만 한 번에 값을 하나만 받기 때문에 여러 시점을 한꺼번에 설정할 수 없었다.


hourlyAt()은 체이닝이 불가능해서 아래와 같이 쓰면 마지막 45만 실행된다.


$schedule->command('my:command')->hourlyAt(15)->hourlyAt(30)->hourlyAt(45)

그래서 아래처럼 반복적으로 적어줬어야 했다.


$schedule->command('my:command')->hourlyAt(15);
$schedule->command('my:command')->hourlyAt(30);
$schedule->command('my:command')->hourlyAt(45);

5.8.29는 숫자 배열로 넘겨줄 수 있게되서 다음과 같이 한 줄에 처리할 수 있게 됐다.


$schedule->command('my:command')->hourlyAt([15, 30, 45]);

다형성 관계 즉시 로드(Eager Loading) 성능 개선


내부 성능 개선이 따로 알아두어야 할 건 없다. 다형성 관계 즉시 로드를 성능 때문에 사용하지 않고 있었다면 다시 한 번 검토해보자. 34,000개의 데이터를 조회하는데 1.8초 걸리던게 12밀리초로 단축되었다고 한다.


===


1 1
2019년 7월 17



유료 구독자 전용 레터입니다.

한 달 1만원으로 매일 라라벨 관련 메일 받아보시고 과거 메일도 열람하세요. 일반 구독으로 공개글만 받아보실 수도 있습니다.

구독하기 버튼을 눌러주시면 구독과 동시에 xly에도 가입됩니다.

이현석

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