PATH:
home
/
lab2454c
/
vaultchip.com
/
vendor
/
maatwebsite
/
excel
/
src
<?php namespace Maatwebsite\Excel; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\PendingDispatch; use Illuminate\Support\Collection; use Maatwebsite\Excel\Concerns\ShouldQueueWithoutChain; use Maatwebsite\Excel\Concerns\WithChunkReading; use Maatwebsite\Excel\Concerns\WithEvents; use Maatwebsite\Excel\Concerns\WithLimit; use Maatwebsite\Excel\Concerns\WithProgressBar; use Maatwebsite\Excel\Events\BeforeImport; use Maatwebsite\Excel\Files\TemporaryFile; use Maatwebsite\Excel\Imports\HeadingRowExtractor; use Maatwebsite\Excel\Jobs\AfterImportJob; use Maatwebsite\Excel\Jobs\QueueImport; use Maatwebsite\Excel\Jobs\ReadChunk; use Throwable; class ChunkReader { /** * @param WithChunkReading $import * @param Reader $reader * @param TemporaryFile $temporaryFile * * @return \Illuminate\Foundation\Bus\PendingDispatch|null */ public function read(WithChunkReading $import, Reader $reader, TemporaryFile $temporaryFile) { if ($import instanceof WithEvents && isset($import->registerEvents()[BeforeImport::class])) { $reader->beforeImport($import); } $chunkSize = $import->chunkSize(); $totalRows = $reader->getTotalRows(); $worksheets = $reader->getWorksheets($import); $queue = property_exists($import, 'queue') ? $import->queue : null; $delayCleanup = property_exists($import, 'delayCleanup') ? $import->delayCleanup : 600; if ($import instanceof WithProgressBar) { $import->getConsoleOutput()->progressStart(array_sum($totalRows)); } $jobs = new Collection(); foreach ($worksheets as $name => $sheetImport) { $startRow = HeadingRowExtractor::determineStartRow($sheetImport); if ($sheetImport instanceof WithLimit) { $limit = $sheetImport->limit(); if ($limit <= $totalRows[$name]) { $totalRows[$name] = $sheetImport->limit(); } } for ($currentRow = $startRow; $currentRow <= $totalRows[$name]; $currentRow += $chunkSize) { $jobs->push(new ReadChunk( $import, $reader->getPhpSpreadsheetReader(), $temporaryFile, $name, $sheetImport, $currentRow, $chunkSize )); } } $afterImportJob = new AfterImportJob($import, $reader); if ($import instanceof ShouldQueueWithoutChain) { $jobs->push($afterImportJob->delay($delayCleanup)); return $jobs->each(function ($job) use ($queue) { dispatch($job->onQueue($queue)); }); } $jobs->push($afterImportJob); if ($import instanceof ShouldQueue) { return new PendingDispatch( (new QueueImport($import))->chain($jobs->toArray()) ); } $jobs->each(function ($job) { try { dispatch_now($job); } catch (Throwable $e) { if (method_exists($job, 'failed')) { $job->failed($e); } throw $e; } }); if ($import instanceof WithProgressBar) { $import->getConsoleOutput()->progressFinish(); } unset($jobs); return null; } }
[+]
Exceptions
[-] Reader.php
[edit]
[+]
Jobs
[-] DefaultValueBinder.php
[edit]
[+]
Cache
[+]
Factories
[-] Sheet.php
[edit]
[+]
Files
[+]
..
[-] HeadingRowImport.php
[edit]
[-] RegistersCustomConcerns.php
[edit]
[-] Exporter.php
[edit]
[-] DelegatedMacroable.php
[edit]
[+]
Filters
[-] Row.php
[edit]
[-] Importer.php
[edit]
[+]
Events
[+]
Validators
[-] SettingsProvider.php
[edit]
[+]
Transactions
[-] Writer.php
[edit]
[+]
Helpers
[-] MappedReader.php
[edit]
[-] ChunkReader.php
[edit]
[-] HasEventBus.php
[edit]
[-] ExcelServiceProvider.php
[edit]
[+]
Facades
[+]
Console
[+]
Imports
[-] Excel.php
[edit]
[-] QueuedWriter.php
[edit]
[+]
Concerns
[+]
Mixins
[+]
Fakes
[-] Cell.php
[edit]