Реалізація імпорту даних CSV, Excel, XML
Імпорт даних із таблиць: продукти, клієнти, транзакції. Потребує валідації, виявлення дублікатів, обробки помилок, відкату транзакції при невдачі.
PHP: Laravel Excel Import
use Maatwebsite\Excel\Facades\Excel;
class ProductsImport implements ToModel, WithValidation
{
public function model(array $row)
{
return new Product([
'name' => $row['name'],
'sku' => $row['sku'],
'price' => (float) $row['price'],
]);
}
public function rules(): array
{
return [
'name' => 'required|string|max:255',
'sku' => 'required|unique:products|string',
'price' => 'required|numeric|min:0',
];
}
}
Route::post('/import', function (Request $request) {
Excel::import(new ProductsImport, $request->file('file'));
return response()->json(['status' => 'imported']);
});
Обробка помилок
class ProductsImport implements OnEachRow, SkipsOnError, SkipsOnFailure
{
public function onError(\Throwable $e)
{
Log::error('Import error', ['error' => $e->getMessage()]);
}
public function onFailure(\Throwable $e)
{
Log::error('Import row failed', ['error' => $e->getMessage()]);
}
}
Терміни реалізації
Базовий імпорт з валідацією: 1–2 дні. З виявленням дублікатів та відкатом: 2–3 дні.







