Server : Apache System : Linux host44.registrar-servers.com 4.18.0-513.18.1.lve.2.el8.x86_64 #1 SMP Sat Mar 30 15:36:11 UTC 2024 x86_64 User : vapecompany ( 2719) PHP Version : 7.4.33 Disable Function : NONE Directory : /home/vapecompany/demo.vapecompany.com.bd/vendor/laravel/framework/src/Illuminate/Queue/ |
Upload File : |
<?php namespace Illuminate\Queue; use Illuminate\Contracts\Database\ModelIdentifier; use Illuminate\Contracts\Queue\QueueableCollection; use Illuminate\Contracts\Queue\QueueableEntity; use Illuminate\Database\Eloquent\Collection as EloquentCollection; use Illuminate\Database\Eloquent\Relations\Concerns\AsPivot; use Illuminate\Database\Eloquent\Relations\Pivot; trait SerializesAndRestoresModelIdentifiers { /** * Get the property value prepared for serialization. * * @param mixed $value * @return mixed */ protected function getSerializedPropertyValue($value) { if ($value instanceof QueueableCollection) { return new ModelIdentifier( $value->getQueueableClass(), $value->getQueueableIds(), $value->getQueueableRelations(), $value->getQueueableConnection() ); } if ($value instanceof QueueableEntity) { return new ModelIdentifier( get_class($value), $value->getQueueableId(), $value->getQueueableRelations(), $value->getQueueableConnection() ); } return $value; } /** * Get the restored property value after deserialization. * * @param mixed $value * @return mixed */ protected function getRestoredPropertyValue($value) { if (! $value instanceof ModelIdentifier) { return $value; } return is_array($value->id) ? $this->restoreCollection($value) : $this->restoreModel($value); } /** * Restore a queueable collection instance. * * @param \Illuminate\Contracts\Database\ModelIdentifier $value * @return \Illuminate\Database\Eloquent\Collection */ protected function restoreCollection($value) { if (! $value->class || count($value->id) === 0) { return new EloquentCollection; } $collection = $this->getQueryForModelRestoration( (new $value->class)->setConnection($value->connection), $value->id )->useWritePdo()->get(); if (is_a($value->class, Pivot::class, true) || in_array(AsPivot::class, class_uses($value->class))) { return $collection; } $collection = $collection->keyBy->getKey(); $collectionClass = get_class($collection); return new $collectionClass( collect($value->id)->map(function ($id) use ($collection) { return $collection[$id] ?? null; })->filter() ); } /** * Restore the model from the model identifier instance. * * @param \Illuminate\Contracts\Database\ModelIdentifier $value * @return \Illuminate\Database\Eloquent\Model */ public function restoreModel($value) { return $this->getQueryForModelRestoration( (new $value->class)->setConnection($value->connection), $value->id )->useWritePdo()->firstOrFail()->load($value->relations ?? []); } /** * Get the query for model restoration. * * @param \Illuminate\Database\Eloquent\Model $model * @param array|int $ids * @return \Illuminate\Database\Eloquent\Builder */ protected function getQueryForModelRestoration($model, $ids) { return $model->newQueryForRestoration($ids); } }