키생성기(keygen)

Last updated last month

XE는 단순하고 유추하기 쉬운 기존의 데이터베이스를 이용한 auto_increment를 벗어나, 유일성을 보장하면서 유추하기 어려운 키를 생성할 수 있는 기능을 제공합니다. 키의 생성은 UUID 방식으로 ramsey/uuid를 이용해 사용자가 간편하게 고유키를 얻을 수 있도록 해줍니다.

설정

키생성기의 설정은 config/xe.phpuid 항목에 있습니다.

'uid' => [
'version' => 4,
'namespace' => 'xe'
]

version은 사용할 UUID의 버전을 말합니다. 1, 3, 4, 5 네가지 값 중 하나를 입력할 수 있고, 기본은 4 버전을 사용합니다. namespace3, 5 버전에서 사용될 네임스페이스를 가리킵니다.

각 버전의 차이는 위키등에서 확인하실 수 있습니다.

사용

키의 생성은 generate 메서드를 통해 이루어 집니다.

$keygen = app('xe.keygen');
$id = $keygen->generate();

생성된 키는 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 와 같은 형식을 가집니다.

모델

XE에서는 Illuminate\Database\Eloquent\Model을 상속한 DynamicModel 모델을 이용하는 경우 키생성기를 통해 고유키를 제공합니다. 키생성기에서 제공하는 키를 사용하고자 한다면 해당 모델의 incrementnig을 비활성해야 합니다.

use Xpressengine\Database\Eloquent\DynamicModel;
class MyModel extends DynamicModel
{
public $incrementing = false;
...
}