soluti / data-exporter-bundle

一个提供将数据导出到常见格式的通用接口的包

dev-master 2017-01-24 09:12 UTC

This package is not auto-updated.

Last update: 2021-10-11 00:07:23 UTC


README

一个提供将数据导出到常见格式的通用接口的包。

目前它只支持CSV。将来可能会添加更多适配器。

安装

A) 下载并安装

要安装SolutiDataExporterBundle,请运行以下命令

$ php composer.phar require soluti/data-exporter-bundle

B) 启用包

在内核中启用所需的包

<?php
// app/AppKernel.php

public function registerBundles()
{
    ...
    new Soluti\DataExporterBundle\SolutiDataExporterBundle(),
    ...
}

使用方法

1. 定义您的数据映射器

namespace AppBundle\Export;

use AppBundle\Model\Client;
use Soluti\DataExporterBundle\Mapper\MapperInterface;

class UserMapper implements MapperInterface
{
    public function getFileName()
    {
        return 'users' . '_' . date('Y-m-d_H-i');
    }

    /**
     * @param User $user
     * @return array
     */
    public function map($user)
    {
        return [
            'id' => $user->getId(),
            'firstName' => $user->getFirstName(),
            'lastName' => $user->getLastName(),
            'email' => $user->getEmail(),
        ];
    }
}

2. 在控制器中创建响应

    public function exportAction()
    {
        $usersIterator = []; // Some iterable result

        $exporter = $this->get('soluti.data_exporter.adapter.csv');

        return $exporter->export($usersIterator, new UserMapper());
    }