|
@@ -11,56 +11,12 @@
|
|
|
|
|
|
namespace Sonata\AdminBundle\Export;
|
|
|
|
|
|
-use Exporter\Source\SourceIteratorInterface;
|
|
|
use Symfony\Component\HttpFoundation\StreamedResponse;
|
|
|
+use Sonata\CoreBundle\Exporter\Exporter as BaseExporter;
|
|
|
|
|
|
-use Exporter\Writer\XlsWriter;
|
|
|
-use Exporter\Writer\XmlWriter;
|
|
|
-use Exporter\Writer\JsonWriter;
|
|
|
-use Exporter\Writer\CsvWriter;
|
|
|
-
|
|
|
-class Exporter
|
|
|
+/**
|
|
|
+ * @deprecated
|
|
|
+ */
|
|
|
+class Exporter extends BaseExporter
|
|
|
{
|
|
|
- /**
|
|
|
- * @throws \RuntimeException
|
|
|
- *
|
|
|
- * @param string $format
|
|
|
- * @param string $filename
|
|
|
- * @param SourceIteratorInterface $source
|
|
|
- *
|
|
|
- * @return StreamedResponse
|
|
|
- */
|
|
|
- public function getResponse($format, $filename, SourceIteratorInterface $source)
|
|
|
- {
|
|
|
- switch ($format) {
|
|
|
- case 'xls':
|
|
|
- $writer = new XlsWriter('php://output');
|
|
|
- $contentType = 'application/vnd.ms-excel';
|
|
|
- break;
|
|
|
- case 'xml':
|
|
|
- $writer = new XmlWriter('php://output');
|
|
|
- $contentType = 'text/xml';
|
|
|
- break;
|
|
|
- case 'json':
|
|
|
- $writer = new JsonWriter('php://output');
|
|
|
- $contentType = 'application/json';
|
|
|
- break;
|
|
|
- case 'csv':
|
|
|
- $writer = new CsvWriter('php://output', ',', '"', "", true, true);
|
|
|
- $contentType = 'text/csv';
|
|
|
- break;
|
|
|
- default:
|
|
|
- throw new \RuntimeException('Invalid format');
|
|
|
- }
|
|
|
-
|
|
|
- $callback = function() use ($source, $writer) {
|
|
|
- $handler = \Exporter\Handler::create($source, $writer);
|
|
|
- $handler->export();
|
|
|
- };
|
|
|
-
|
|
|
- return new StreamedResponse($callback, 200, array(
|
|
|
- 'Content-Type' => $contentType,
|
|
|
- 'Content-Disposition' => sprintf('attachment; filename=%s', $filename)
|
|
|
- ));
|
|
|
- }
|
|
|
}
|