25 lines
745 B
PHP
25 lines
745 B
PHP
<?php
|
|
|
|
namespace Spatie\LaravelIgnition\ArgumentReducers;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Spatie\Backtrace\Arguments\ReducedArgument\ReducedArgument;
|
|
use Spatie\Backtrace\Arguments\ReducedArgument\ReducedArgumentContract;
|
|
use Spatie\Backtrace\Arguments\ReducedArgument\UnReducedArgument;
|
|
use Spatie\Backtrace\Arguments\Reducers\ArgumentReducer;
|
|
|
|
class ModelArgumentReducer implements ArgumentReducer
|
|
{
|
|
public function execute(mixed $argument): ReducedArgumentContract
|
|
{
|
|
if (! $argument instanceof Model) {
|
|
return UnReducedArgument::create();
|
|
}
|
|
|
|
return new ReducedArgument(
|
|
"{$argument->getKeyName()}:{$argument->getKey()}",
|
|
get_class($argument)
|
|
);
|
|
}
|
|
}
|