NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky

Open source

Imports for Laravel

Inštalácia
composer require roundly-consulting/imports-for-laravel
Vyžaduje: PHP ^8.4 · Laravel ^13.0

Prehľ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 kryptomien

Odoslaní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.