Возможно ли это? Я использую многопользовательский пакет, который конфликтует с другими Laravel пакетами, такими как Scout. В идеале я хочу иметь возможность заменять / расширять черту Illuminate\Queue\SerializesModels
в ядре.
Очевидно, что другой способ сделать это - просто заменить эту черту на мою собственную в каждой работе, но она делает тогда в случае таких вещей, как Laravel Scout, я должен переписать классы скаутов, просто чтобы заменить эту черту, в моем собственном приложении, которое кажется неправильным.
Например, Laravel Scout имеет MakeSearchable
класс работы. Чтобы заменить черту в этой модели, я должен сделать собственную реализацию класса, идентичную пакету, за исключением изменения этой черты:
class MyMakeSearchable implements ShouldQueue
{
use TenantAware, Queueable, MySerializesModels;
/** @var Collection */
public $models;
public function __construct($models)
{
$this->models = $models;
}
public function handle()
{
if (count($this->models) === 0) {
return;
}
$this->models->first()->searchableUsing()->update($this->models);
}
}
Чтобы подключить этот класс задания, я затем Я также должен переопределить черту Scout Searchable
.
Было бы неплохо, если бы я мог просто сказать Laravel "Всякий раз, когда вы хотите использовать эту черту SerializesModels, используйте ее вместо этого"