---
title: "Fasáda Imports — Imports for Laravel | Roundly"
description: "Prehľad fasády Imports — for($owner), importers(), template(), read(), handle relácie a dávky, uložené mapovania, sweep a prune — so všetkými metódami."
url: https://roundly-consulting.com/sk/open-source/navody/imports-for-laravel/fasada
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Imports for Laravel](https://roundly-consulting.com/sk/open-source/navody/imports-for-laravel.md)

# Fasáda Imports

Všetko ide cez jednu fasádu RoundlyConsulting\\Imports\\Facades\\Imports, ktorá je nadstavbou nad singletonom ImportsManager. Je zaregistrovaná aj ako globálny alias Imports:

```php
use RoundlyConsulting\Imports\Enums\{SessionStatus, TemplateFormat};
use RoundlyConsulting\Imports\Facades\Imports;

// Importers and templates
Imports::importers()->available($user, $team);
Imports::register(AssetsImporter::class);
Imports::importer('assets')->descriptor('sk');
Imports::template('assets', TemplateFormat::Xlsx, locale: 'sk')->download();

// Everything for one owner — the entry point HTTP code uses
$imports = Imports::for($team)->by($user);
$session = $imports->upload('assets', $request->file('file'));
$files = $imports->uploadFiles('documents', $request->file('files'));
$imports->sessions('assets', SessionStatus::Previewed)->paginate();
$imports->session($id)->counts();
$imports->batch($id)->summary();
$imports->mappings('assets')->all();
$imports->running('assets');

// Trusted paths, the reader and housekeeping
Imports::session($model); Imports::batch($id);
Imports::read($request->file('file'));
Imports::sweep(); Imports::prune();
```

Celý proces od začiatku do konca:

```php
$session = Imports::for($team)->by($user)->upload('assets', $request->file('file'));   // checked + stored
$session->suggestMapping();                       // MappingSuggestion (applied already when complete)
$session->map(['Inventory no' => 'asset_tag', 'Name' => 'name'])   // optional: by header text or column number
    ->saveMapping('ERP export');                  // optional: reused for identical headers
$session->mode(DuplicateMode::Update)->preview(); // ≤ 500 rows: now; more: queued (poll isPreviewed())
$session->counts();                               // ImportCounts
$session->rows(RowFilter::invalid())->paginate(50);
$batch = $session->commit();                      // a Laravel job batch
$batch->progress();
$batch->summary();
$batch->rollback();                               // within imports.undo.window
```

## Metódy manažéra

| Metóda | Vracia | Čo robí |
| --- | --- | --- |
| `for(Model $owner)` | `OwnerImports` | Vstupný bod v rámci vlastníka — nahrávanie, relácie, dávky, uložené mapovania. HTTP kód používa len tento. |
| `importers()` | `Accessors\Importers` | all(), find(), has(), describe(), available() — zisťovanie pre UI. |
| `register(string ...$classes)` | `void` | Registrácia za behu popri imports.importers. |
| `importer(string $key)` | `ImporterHandle` | descriptor(), template(), modes() — pri neznámom kľúči UnknownImporterException. |
| `template(string $importer, ?TemplateFormat $format = null, ?string $locale = null)` | `Template` | Šablóna CSV alebo XLSX; formát predvolene podľa imports.templates.default\_format. |
| `session(ImportSession\|int\|string $session)` | `SessionHandle` | Dôveryhodná cesta bez kontroly vlastníka — ak chýba, ImportNotFoundException. |
| `batch(ImportBatch\|int\|string $batch)` | `BatchHandle` | To isté pre dávku. |
| `read(ImportSource\|UploadedFile\|string $file, string\|int\|null $sheet = null, ?string $delimiter = null, int $headerRow = 1)` | `SpreadsheetFile` | Samostatná čítačka — bez relácie, nič sa neukladá. |
| `prune() · sweep()` | `PruneReport · SweepReport` | To, čo spúšťajú imports:prune a imports:sweep. |
| `Imports::fake()` | `ImportsFake` | Len na fasáde — nahrávací fake (pozrite Testovanie). |

container() a perform() sú na manažéri verejné, ale interné — perform() je lievik, cez ktorý každý handle spúšťa svoju akciu, a háčik, cez ktorý zaznamenáva fake. Z kódu aplikácie ich nevolajte.

## Imports::for($owner)

| Metóda | Vracia | Čo robí |
| --- | --- | --- |
| `by(Authenticatable\|Model\|null $actor)` | `OwnerImports` | Kópia konajúca ako $actor — LogicException, ak nejde o Eloquent model. |
| `upload(string $importer, ImportSource\|UploadedFile\|string $file, string\|int\|null $sheet = null, ?string $delimiter = null, int $headerRow = 1, ?string $locale = null)` | `SessionHandle` | Skontroluje, uloží a otvorí reláciu. authorize(Upload) beží skôr, než sa súbor prečíta. |
| `uploadFiles(string $importer, iterable<UploadedFile>\|UploadedFile $files, ?string $locale = null)` | `SessionHandle` | Dávka súborov: viac súborov alebo archívov ZIP. |
| `sessions(?string $importer = null, SessionStatus ...$status)` | `Builder<ImportSession>` | Najnovšie prvé — jeden importér (odmietne sa, ak ho aktér nesmie vidieť) alebo všetky, ktoré aktér smie vidieť. |
| `session(int\|string $id) · batch(int\|string $id)` | `SessionHandle · BatchHandle` | Id iného vlastníka je ImportNotFoundException (404). |
| `mappings(string $importer)` | `SavedMappingsHandle` | all(), find(), save(), delete(). |
| `running(string $importer)` | `?SessionHandle` | Relácia, ktorá sa práve importuje alebo vracia. |

$sheet je názov (presne, potom bez ohľadu na veľkosť písmen) alebo poradie od 1 medzi viditeľnými hárkami; $headerRow sa číta od 1; $locale je jazyk relácie — popisy, správy a desatinný oddeľovač.

## Handle relácie

Metódy, ktoré niečo menia, vracajú handle, takže sa dajú reťaziť. Čítanie sa pýta na authorize(View) raz za handle; zápisy na vlastnú operáciu. Zmena zdroja, mapovania a režimu, náhľad aj zahodenie sa odmietnu výnimkou ImportStateException, keď reláciu drží import:

| Metóda | Vracia | Čo robí |
| --- | --- | --- |
| `by($actor) · model() · id()` | `SessionHandle · ImportSession · int\|string` | Kópia konajúca ako $actor; jednoduché prístupové metódy. |
| `status()` | `SessionStatus` | Znovu načítané z databázy — View. |
| `isValidating() · isPreviewed() · isCommitted()` | `bool` | Committed = importuje sa alebo akýkoľvek neskorší stav — View. |
| `sheets() · headers()` | `list<SheetInfo> · list<string>` | Prázdna hlavička sa číta ako Column C — View. |
| `useSheet($sheet) · useDelimiter($delimiter) · useHeaderRow($row)` | `self` | Zmení spôsob čítania uloženého súboru; náhľad sa zahodí — Upload. |
| `suggestMapping()` | `MappingSuggestion` | View. |
| `map(array\|ColumnMapping $mapping) · saveMapping(string $name)` | `self` | Upload. |
| `mode(DuplicateMode $mode)` | `self` | Upload. |
| `preview(?bool $queue = null)` | `self` | null: priamo do preview.sync\_threshold, inak vo fronte; true / false to vynúti — Upload. |
| `counts() · previewData() · progress()` | `ImportCounts · ImportPreview · Progress` | progress() má fázu preview, alebo fázu dávky počas importu — View. |
| `rows(?RowFilter $filter = null)` | `RowQuery` | paginate(), cursor(), count() — View. |
| `errorReport(TemplateFormat $format = TemplateFormat::Xlsx, ?string $locale = null)` | `Template` | Chybné riadky a stĺpec Errors — View. |
| `commit()` | `BatchHandle` | Commit. |
| `cancel()` | `self` | Zruší bežiacu dávku, ak existuje — Commit. |
| `discard()` | `self` | Zmaže súbor a výsledky riadkov — Upload. |
| `batch()` | `?BatchHandle` | View. |

## Handle dávky

| Metóda | Vracia | Čo robí |
| --- | --- | --- |
| `by($actor) · model() · id()` | `BatchHandle · ImportBatch · int\|string` | Kópia konajúca ako $actor; jednoduché prístupové metódy. |
| `session()` | `SessionHandle` | View. |
| `status()` | `BatchStatus` | Znovu načítané — View. |
| `isRunning() · isFinished() · isRolledBack()` | `bool` | pending/running · completed/failed/cancelled · vrátené — View. |
| `progress()` | `Progress` | Fáza commit (časti) alebo rollback (vytvorené záznamy) — View. |
| `summary()` | `ImportSummary` | View. |
| `records(?RecordAction $action = null)` | `Builder<ImportedRecord>` | Riadky evidencie zoradené podľa čísla riadka — View. |
| `cancel() · resume()` | `self` | Commit. |
| `rollback()` | `self` | Rollback. |
| `canRollback()` | `bool` | Completed/failed/cancelled, zatiaľ bez vrátenia alebo so zlyhaným, pred undo\_until — View. |
| `rollbackReport()` | `?RollbackReport` | Keď sa vrátenie dokončilo alebo zlyhalo — View. |

## Importéry, šablóny a uložené mapovania

- Imports::importers() — all() (každá ImportDefinition), find($key), has($key), describe($key, ?$locale), available(?$user, $owner, ?$locale).
- Imports::importer($key) — descriptor(?$locale), template(?$format, ?$locale), modes() (prázdne pri importéri súborov).
- Template — vlastnosti format a filename; download(?$filename), store($disk, $path), toTemporaryFile(?$target), contents().
- Imports::for($owner)->mappings($importer) — all(), find($name), save($name, $columns), delete($name).
- RowQuery ($session->rows($filter)) — paginate($perPage = 50, ?$page), cursor(), count().

## Hodnotové objekty, DTO a enumy

- Definície (Definition\\): Field, NaturalKey, Ownership, ChangeDetection, FileRules, FileDuplicates, Limits, FieldChange. Argumenty callbackov (Rows\\): ImportRow, ImportContext, ImportFile. Čítanie (Reading\\): SpreadsheetFile, Cell, ReadOptions.
- DTO (final readonly): ImportSource, UploadData, UploadFilesData, SaveMappingData, ColumnMapping, MappedColumn, MappingSuggestion, SuggestedColumn, SavedMapping, SheetInfo, ImportCounts, ImportPreview, RowFilter, RowResult, CellError, RecordReference, Progress, ImportSummary, RollbackReport, ImportedRecordView, ImportAudit, FileReference, ImporterDescriptor, FieldDescriptor, OptionDescriptor, PruneReport, SweepReport, DoctorFinding.
- Modely (vymeniteľné cez imports.models.\*): ImportSession, ImportBatch, ImportRowResult, ImportedRecord. ImportSession a ImportBatch majú handle() a countOf(string $key) — jeden uložený počet (valid, creates, created, …), 0, ak chýba; statické ImportSession::count() je počet riadkov z Eloquentu.
- Enumy majú reťazcové hodnoty, používajú pomocníkov z enums-for-laravel (label(), labels(), options(), values(), fromLabel(), is(), …) a ich popisy sú preložené do angličtiny a slovenčiny:

| Enum | Hodnoty |
| --- | --- |
| `SessionStatus` | uploaded, needs\_mapping, mapped, validating, previewed, preview\_failed, committing, completed, failed, cancelled, rolling\_back, rolled\_back, rollback\_failed, discarded, expired — plus ::beforeCommit(), ::undoable(), isBeforeCommit() |
| `BatchStatus` | pending, running, completed, failed, cancelled |
| `RollbackStatus` | rolling\_back, rolled\_back, rollback\_failed |
| `RowStatus · RowOutcome` | valid, invalid, duplicate\_in\_file, matched, failed · create, update, skip |
| `RecordAction` | created, linked, updated |
| `RollbackOutcome` | deleted, handled, kept, kept\_changed, missing, failed |
| `DuplicateMode` | skip, update, create\_new |
| `ImportOperation` | view, upload, commit, rollback |
| `ImportKind` | rows, files |
| `FieldType` | text, integer, decimal, boolean, date, datetime, email, choice, reference |
| `SourceFormat · TemplateFormat` | csv, xlsx |
| `CellType` | text, number, boolean, date, error |
| `MappingSource` | saved, name, label, alias, fuzzy, manual, suggested |
| `DelimiterSource` | sniffed, hint (sep=), override |
| `RejectionReason` | 27 hodnôt — pozrite Čítanie súborov |

## Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

[Ďalšie spôsoby podpory vrátane kryptomien](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/imports-for-laravel.md)
