Looking to hire Laravel developers? Try LaraJobs

laravel-csv-parser maintained by gitfullstacker

Description
A Laravel package for parsing CSV files
Author
Last update
2025/03/24 20:39 (dev-main)
License
Links
Downloads
74

Comments
comments powered by Disqus

Laravel CSV Parser 📄

Packagist Version License Laravel Support

A simple and efficient Laravel package for parsing CSV files using league/csv. Provides an easy-to-use API with Laravel Collections.


🚀 Features

✅ Simple CSV parsing into Laravel Collections
✅ Supports custom delimiters
✅ Auto-detects headers
✅ Lightweight and fast


📦 Installation

You can install the package via Composer:

composer require gitfullstacker/laravel-csv-parser

Laravel will automatically discover the service provider. No additional configuration is required.


⚙️ Usage

Parsing a CSV File

use GitFullStacker\CsvParser\Facades\CsvParser;

$csvData = CsvParser::parse(storage_path('data.csv'));

dd($csvData); // Returns Illuminate\Support\Collection of CSV rows

Using a Custom Delimiter

$csvData = CsvParser::parse(storage_path('semicolon-separated.csv'), ';');

Handling Errors

try {
    $csvData = CsvParser::parse(storage_path('missing.csv'));
} catch (\Exception $e) {
    echo "Error: " . $e->getMessage();
}

🏗 Configuration (Optional)

If you need to manually register the service provider, add the following in config/app.php:

'providers' => [
    GitFullStacker\CsvParser\CsvParserServiceProvider::class,
],
'aliases' => [
    'CsvParser' => GitFullStacker\CsvParser\Facades\CsvParser::class,
],

🔥 Testing

To run tests, install dependencies and execute PHPUnit:

composer install
vendor/bin/phpunit

🧰 Requirements

  • PHP 7.4 or higher
  • Laravel 8, 9, or 10
  • league/csv 9.x

🤝 Contributing

Contributions are welcome! 1. Fork the repository 2. Create a new branch (feature-branch) 3. Commit your changes 4. Push and submit a PR


📜 License

This package is open-sourced under the MIT License. See LICENSE for details.

📩 Contact & Support

For issues or feature requests, open an issue.

Follow me on GitHub: gitfullstacker 🚀