Aller au contenu principal
Version: 5.x

đź§© CSV Export/Import

Introduction​

Le module bowphp/csv permet d'exporter ou d'importer facilement des modèles (type Eloquent) au format CSV en s'appuyant sur league/csv.

Installation​

composer require bowphp/csv

Exporter un modèle en CSV​

Ajoutez le trait Bow\Csv\Csv à votre modèle :

app/Models/User.php
use Bow\Csv\Csv;
use Bow\Database\Barry\Model;

class User extends Model
{
use Csv;
}

Export basique​

$user = new User();
$csv = $user->toCsv(); // Retourne une chaîne CSV

Export avec des colonnes spécifiques​

$user = new User();
$user->setCsvHeaders(['id', 'name']);

$csv = $user->toCsv(); // N'inclura que id et name

Export vers un fichier​

$user = new User();
$user->toCsv('users.csv'); // Télécharge users.csv

Importer un CSV dans un modèle​

use Bow\Csv\CsvService;

$service = new CsvService();
$service->import(new User(), '/chemin/vers/fichier.csv', ['id', 'name', 'email']);

Importer directement via le modèle (importCsv)​

$user = new User();
$user->setCsvHeaders(['id', 'name', 'email']);

// Importe chaque ligne du fichier CSV dans le modèle User
$user->importCsv('/chemin/vers/fichier.csv');

Helpers globaux​

Deux fonctions sont exposées si vous préférez un appel fonctionnel :

app_export_model_to_csv(new User(), null, ['id', 'name']);
app_import_csv_to_model(new User(), '/chemin/vers/fichier.csv', ['id', 'name', 'email']);

Bonnes pratiques​

  • DĂ©finissez les headers via setCsvHeaders() pour contrĂ´ler l'ordre et la liste des colonnes.
  • VĂ©rifiez/validez les donnĂ©es entrantes avant import() (formats, valeurs attendues).
  • Les modèles doivent exposer toArray() de manière cohĂ©rente pour que les lignes soient correctement sĂ©rialisĂ©es.

Il manque quelque chose ?

Si vous rencontrez des problèmes avec la documentation ou si vous avez des suggestions pour améliorer la documentation ou le projet en général, veuillez déposer une issue pour nous, ou envoyer un tweet mentionnant le compte Twitter @bowframework ou sur directement sur le github.