File manager - Edit - /var/www/payraty/helpdesk/vendor/matchish/laravel-scout-elasticsearch/src/Searchable/DefaultImportSource.php
Back
<?php namespace Matchish\ScoutElasticSearch\Searchable; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Collection as EloquentCollection; use Illuminate\Support\Collection; use Matchish\ScoutElasticSearch\Database\Scopes\PageScope; final class DefaultImportSource implements ImportSource { const DEFAULT_CHUNK_SIZE = 500; /** * @var string */ private $className; /** * @var array */ private $scopes; /** * DefaultImportSource constructor. * * @param string $className * @param array $scopes */ public function __construct(string $className, array $scopes = []) { $this->className = $className; $this->scopes = $scopes; } public function syncWithSearchUsingQueue(): ?string { return $this->model()->syncWithSearchUsingQueue(); } public function syncWithSearchUsing(): ?string { return $this->model()->syncWithSearchUsing(); } public function searchableAs(): string { return $this->model()->searchableAs(); } public function chunked(): Collection { $query = $this->newQuery(); $totalSearchables = $query->count(); if ($totalSearchables) { $chunkSize = (int) config('scout.chunk.searchable', self::DEFAULT_CHUNK_SIZE); $totalChunks = (int) ceil($totalSearchables / $chunkSize); return collect(range(1, $totalChunks))->map(function ($page) use ($chunkSize) { $chunkScope = new PageScope($page, $chunkSize); return new static($this->className, array_merge($this->scopes, [$chunkScope])); }); } else { return collect(); } } /** * @return mixed */ private function model() { return new $this->className; } private function newQuery(): Builder { $query = $this->className::makeAllSearchableUsing($this->model()->newQuery()); $softDelete = $this->className::usesSoftDelete() && config('scout.soft_delete', false); $query ->when($softDelete, function ($query) { return $query->withTrashed(); }) ->orderBy($this->model()->getQualifiedKeyName()); $scopes = $this->scopes; return collect($scopes)->reduce(function ($instance, $scope) { $instance->withGlobalScope(get_class($scope), $scope); return $instance; }, $query); } public function get(): EloquentCollection { /** @var EloquentCollection $models */ $models = $this->newQuery()->get(); return $models; } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.30 | Generation time: 0 |
proxy
|
phpinfo
|
Settings