rkov / template-import-export
Template import/export library
0.1.0
2026-07-23 10:46 UTC
Requires
- php: ^8.2
- ext-mbstring: *
Requires (Dev)
- phpunit/phpunit: ^11.5
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is not auto-updated.
Last update: 2026-10-07 08:03:32 UTC
README
This is templator business logic package for import/export data.
Installation
To install this package you can use composer:
composer require rkov/template-import-export
Usage Import
First, you need to configure import:
1. Config
use Rkov\TemplateImportExport\Factories\ConfigFactory; use Rkov\TemplateImportExport\Aggregates\FieldList; use Rkov\TemplateImportExport\Fields\IdFiled; use Rkov\TemplateImportExport\Fields\NumberField; use Rkov\TemplateImportExport\Fields\StringField; class UserConfig extends ConfigFactory { public function fieldList(): FieldList { return new FieldList( IdFiled::make(), StringField::make('name', 'Name'), NumberField::make('age', 'Age'), ); } public function insertRow(array|object $row): string|int { $user = User::create([ 'name' => $row['name'], 'age' => $row['age'], ]); return $user->id; } public function updateRow(array|object $row): string|int { $user = User::find($row['id']); $user->update([ 'name' => $row['name'], 'age' => $row['age'], ]); return $user->id; } }
2. Parse data from source
After, you need to parse data from source (database or file):
class UserJsonData implements ParseDataInterface { public function __construct( private string $file ){} public function getRawData(): RawDataAggregate { return new RawData(function () { $data = file_get_contents($this->file); yeild from json_decode($data, true); }); } }
3. Run
Now, run import in your project like this:
use Rkov\TemplateImportExport\DataExchange; $config = new UserConfig(); $importService = DataExchange::make()->import($config); $userData = new UserJsonData('path/to/file.json'); $importData = $importService->import($userData); // the import start foreach($importData->ids as $keyRow => $id) { // do something with $id } // after import foreach($importData->errors as $keyRow => $errorMessages) { foreach($errorMessages as $errorMessage) { // do something with $errorMessage $message = (string) $errorMessage; $key = $errorMessage->getKey(); $title = $errorMessage->getTitle(); } }
License
Copyright (c) Rochev Yakov. Distributed under the MIT.