5.8.29가 나왔다. 변화된 내용 중 일부를 골라 소개한다.
Mailable
은 view
메서드로 뷰를 지정할 수 있다. 이메일 알림도 템플릿을 설정하는 기능이 있다. 하지만 이메일 알림에 상황별로 다른 템플릿을 적용하는 기능은 없었다. 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/
테마를 사용하게 된다고 한다.
기존에는 컬럼을 하나씩만 지정할 수 있었다. 그래서 여러가지 조건을 주려면 여러번 써줘야했다.
$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']);
작업 스케줄링 설정하는 옵션 중 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]);
내부 성능 개선이라 따로 알아두어야 할 건 없다. 다형성 관계 즉시 로드를 성능 때문에 사용하지 않고 있었다면 다시 한 번 검토해보자. 34,000개의 데이터를 조회하는데 1.8초 걸리던게 12밀리초로 단축되었다고 한다.
===
1일 1식 라라벨
2019년 7월 17일
메쉬 코리아 개발자. 바쁜 팀장님 대신 알려주는 신입 PHP 개발자 안내서를 쓰고, 클린 아키텍처 인 PHP를 번역했습니다. 처음부터 제대로 배우는 라라벨(Laravel Up & Running 2nd Edition)을 번역했습니다.