Open source
Imports for Laravel
composer require roundly-consulting/imports-for-laravelPrehľad
Importy CSV a XLSX do vašich Eloquent modelov. Každý typ záznamu opíšete raz v triede importéra; vaši používatelia si stiahnu šablónu, nahrajú súbor, skontrolujú navrhnuté mapovanie stĺpcov a náhľad, v ktorom je overený každý riadok, zvolia, čo sa stane so záznamami, ktoré už existujú, a importujú na pozadí — s možnosťou import vrátiť. Kým používateľ import nepotvrdí, nič sa neuloží, a neplatné riadky sa neuložia nikdy. Licencia MIT, vlastná streamovacia čítačka a zapisovač CSV a XLSX — bez externej knižnice na tabuľky — postavené na Laravel job batches a balíkoch Roundly options, crypto, enums a package-toolkit.
Čo získate
Jeden importér pre každý typ záznamu
Riadok opíšete raz — typované polia, popisy v ľubovoľnom jazyku, aliasy, príklady a pravidlá, prirodzený kľúč pre duplicity a odkazy na iné záznamy v rámci vlastníka.
Šablóny, ktoré sa dajú vyplniť
CSV alebo XLSX v angličtine či slovenčine, s rozbaľovacími zoznamami povolených hodnôt, tipom pri každom stĺpci a vzorovými riadkami, ktoré sa pri importe preskočia.
Stĺpce sa priradia samy
Návrhy podľa hlavičiek, preložených popisov, aliasov a podobných zápisov a mapovania uložené pre každého vlastníka — ďalší súbor s rovnakými hlavičkami sa namapuje sám.
Náhľad skôr, než sa čokoľvek uloží
Každý riadok overený, chyby pomenované podľa riadka a bunky, počty platných, neplatných a duplicitných riadkov, rozdiely pri aktualizácii a súbor s chybami — hneď alebo vo fronte s priebehom.
Import na pozadí s možnosťou vrátiť ho
Preskočiť, aktualizovať alebo vytvoriť pri existujúcich záznamoch, idempotentné časti na Laravel job batches, zrušenie a pokračovanie a vrátenie, ktoré ponechá všetko neskôr zmenené.
Bezpečné aj pri neznámych súboroch
Vlastná streamovacia čítačka a zapisovač CSV a XLSX — bez externej knižnice na tabuľky — ochrana pred ZIP bombami a path traversal, CSV bez rizika vzorcov a prístup obmedzený na vlastníka.
Fasáda, DI alebo akcie
Jedna fasáda Imports, injektovateľný manažér alebo jednoúčelové akcie — a k tomu nahrávací fake, generátory tabuliek pre testy a voliteľné JSON API.
Dokumentácia
Použitie
Kde sa balík hodí — aplikácie, do ktorých používatelia prinášajú dáta z tabuliek či iných nástrojov, aktualizácie, dávky súborov a viac nájomcov.
Inštalácia
Inštalácia cez Composer, publikovanie migrácií imports a options, tabuľka job_batches, plánovanie sweep a prune, typy kľúčov a prvý importér.
Konfigurácia
Každý kľúč config/imports.php s premennou prostredia a predvolenou hodnotou — kľúče, úložisko, limity, čítanie, náhľad, import, vrátenie, front, API.
Importéry
Jedna trieda na typ záznamu rozširujúca Importer — metódy a predvolené hodnoty, prirodzené kľúče, callbacky create a update, rollback a registrácia.
Polia a hodnoty
Deväť typov polí a ich prevod, popisy, aliasy, príklady, pravidlá a normalizácia, odkazy na iné záznamy a každý kód chyby bunky.
Vlastníci a oprávnenia
Vlastník ako bezpečnostná hranica — pravidlá Ownership, kontrakt OwnerScope, recept pre teams-for-laravel, authorize() pri každom kroku a audit.
Fasáda Imports
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.
DI a akcie
Bez fasády: injektujte ImportsManager alebo zavolajte jednoúčelovú akciu — každá akcia pre aplikáciu so signatúrou execute() a cestou cez fasádu.
Čítanie súborov
Natívne streamovacie čítačky CSV a XLSX — rozpoznanie formátu podľa obsahu, kódovania, oddeľovače, podpora XLSX, limity, odmietnutia a Imports::read().
Šablóny a reporty chýb
Šablóny CSV a XLSX v angličtine alebo slovenčine s rozbaľovacími zoznamami a tipmi, sťahovanie, príkaz pre šablóny, reporty chýb a CSV bez rizika vzorcov.
Mapovanie stĺpcov
Návrhy mapovania podľa hlavičiek, popisov, aliasov a podobných zápisov, map() podľa hlavičky či stĺpca a uložené mapovania, ktoré sa použijú samy.
Overený náhľad
Relácie a stavy, každý riadok overený pred importom, počty, výsledky riadkov s chybami buniek, rozdiely aktualizácií, overenie vo fronte a režimy duplicít.
Spustenie importu a priebeh
Import ako jeden Laravel job batch idempotentných častí — priebeh, súhrn, výnimky v callbackoch, zrušenie a pokračovanie, zámok a evidencia záznamov.
Vrátenie importu
Vrátenie v časovom okne — vytvorené záznamy bez zmeny sa zmažú alebo odovzdajú vášmu háčiku, zmenené sa ponechajú v zozname, aktualizácie sa nevracajú.
Dávky súborov
Viac súborov alebo ZIP, jeden záznam na súbor — FileImporter, povolené prípony, kontrola duplicít cez SHA-256, ImportFile a ochrana pred ZIP bombami.
JSON API
Voliteľné JSON API — každá cesta s overeným vstupom a odpoveďou, resolver vlastníka, obmedzenie nahrávania, chyby a resources bez názvov tried.
Udalosti
Každá udalosť, ktorú balík spustí po potvrdení transakcie — nahratie, mapovanie, náhľad, štart, časti, dokončenie, zlyhanie, vrátenie, upratovanie.
Výnimky
Každá výnimka s pomenovanými konštruktormi a HTTP stavom — odmietnutia, mapovanie, stav, oprávnenia, okno na vrátenie, chyby definície a konfigurácie.
Príkazy Artisan
imports:sweep, prune, doctor, importers, template a install — čo robia, čo kontroluje doctor, plánovanie a ekvivalenty na fasáde.
Testovanie
Imports::fake() zaznamenáva a prepúšťa ďalej — každá dvojica asercií, zaznamenané operácie, withoutRunning(), generátory tabuliek, factories a workbench.
Požiadavky
PHP 8.4+ s rozšíreniami zip, xmlreader, xmlwriter a mbstring, Laravel 13, MySQL alebo PostgreSQL, front s job_batches a štyri balíky Roundly.
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 kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
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.