php 타입 주석 및 추상 메소드 선언

Updated on

/** @var RawBase $modelClass */
$modelClass = $model->getModelClass();
abstract class RawBase extends Model
{
    protected $fillable = [
        'timestamp',
        'data',
        'state',
    ];

    abstract public function getModelClass(): string;

    abstract public function getInterval(): int;

    protected function casts(): array
    {
        return [
            'timestamp' => 'datetime',
            'data' => 'json',
        ];
    }
}

같은 모델 데이터를 여러 테이블에서 사용하게 되는 경우 이렇게 처리했음.