라라벨 5.8.30이 출시됐습니다. 추가된 기능은 다음과 같습니다.
OPTION 리퀘스트를 테스트할 수 있도록 추가된 기능입니다. HTTP 테스트 작성시 아래와 같이 OPTION 리퀘스트를 할 수 있습니다.
$this->option('/example');
$this->optionJson('/api/example');
기존 마이그레이션 작성시 컬럼 타입에 morphs()
와 nullableMorphs()
가 있었습니다. 이 두 메서드는 타입과 아이디 컬럼을 만드는데, 라라벨은 아이디를 BIGINT로 가정하고 있기 때문에 아이디 컬럼도 BIGINT(20)로 생성합니다. 하지만 아이디를 BIGINT가 아닌 UUID를 쓰는 경우도 있습니다. 이때 UUID는 CHAR(36)이기 때문에 BIGINT(20)로는 처리할 수 없습니다. 그래서 UUID를 쓰는 경우 morphs()
나 nullableMorphs()
를 쓰는 대신 직접 컬럼을 생성하고 인덱스를 걸어야 했습니다. 5.8.30 부터는 UUID를 쓰는 경우 uuidMorphs()
, nullableMorphs()
로 편리하게 작성할 수 있게 되었습니다.
WEBP 포맷을 사용하는 웹사이트가 늘어나고 있고, 구글이 강력히 밀고 있다고 하네요. 구글 WebP 이미지 포맷 아세요? 구글 크롬에서 WebP를 PNG로 변경해 다운로드 받기라는 글에 WEBP 포맷 관련 내용이 잘 정리되어 있네요.
어제 글의 주인공이었던 제이슨 맥크레리가 PR을 보낸 기능이네요. 라라벨은 유효성 검증에 실패하면 기존 입력값을 세션에 담아 되돌려줍니다. 이 상황에 해당하는 메서드를 추가한 듯 하네요. 아래 두 예제를 보면 쉽게 이해 되실거라 생각합니다.
이전에는 _old_input
키에 해당 값이 있는지 확인했어야 했습니다.
$response->assertSessionHas('_old_input' , [
'connection_id' => $connection->id,
'repository' => $repository,
'source_branch' => $branch,
]);
새로 추가된 메서드를 쓰면 아래와 같이 됩니다.
$response->assertSessionHasInput ([
'connection_id' => $connection->id,
'repository' => $repository,
'source_branch' => $branch,
]);
제안자가 자신의 회사는 커스텀 드라이버를 쓰는데 라라벨이 phpredis
와 predis
만 지원해서 커스텀 레디스 드라이버를 쓸 수 있도록 기능을 추가했다고 하네요.
서비스 프로바이더에서 extend()
메소드로 확장하고, database.php
설정 파일을 변경해서 커스텀 레디스 드라이버를 쓸 수 있습니다.
우선 서비스 프로바이더에서 확장합니다.
public function boot()
{
$this->app->make('redis')->extend ('my_very_specific_connnector' , function () {
return new MyVerySpecificConnector()
});
}
database.php
설정 파일을 수정합니다.
// ...
'redis' => [
'client' => 'my_very_specific_connnector',
// ...
],
그간 Postgres는 마이그레이션을 작성할 때 collation을 설정하는 기능이 없었다고 하네요. 이제 아래와 같이 collation을 설정할 수 있습니다.
Schema::create('users', function (Blueprint $table) {
$table->string('name')->collation ('nb_NO.utf8');
});
메쉬 코리아 개발자. 바쁜 팀장님 대신 알려주는 신입 PHP 개발자 안내서를 쓰고, 클린 아키텍처 인 PHP를 번역했습니다. 처음부터 제대로 배우는 라라벨(Laravel Up & Running 2nd Edition)을 번역했습니다.