mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-23 18:03:17 +00:00
Add new CSVProvider
This commit is contained in:
@@ -16,6 +16,7 @@
|
|||||||
"gedmo/doctrine-extensions" : "~2.3.0",
|
"gedmo/doctrine-extensions" : "~2.3.0",
|
||||||
"alchemy/google-plus-api-client" : "~0.6.2",
|
"alchemy/google-plus-api-client" : "~0.6.2",
|
||||||
"alchemy/geonames-api-consumer" : "~0.1.0",
|
"alchemy/geonames-api-consumer" : "~0.1.0",
|
||||||
|
"goodby/csv" : "~1.0",
|
||||||
"guzzle/guzzle" : "~3.0",
|
"guzzle/guzzle" : "~3.0",
|
||||||
"imagine/imagine" : "0.6.x-dev@dev",
|
"imagine/imagine" : "0.6.x-dev@dev",
|
||||||
"jms/serializer" : "~0.10",
|
"jms/serializer" : "~0.10",
|
||||||
|
|||||||
59
composer.lock
generated
59
composer.lock
generated
@@ -3,7 +3,7 @@
|
|||||||
"This file locks the dependencies of your project to a known state",
|
"This file locks the dependencies of your project to a known state",
|
||||||
"Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file"
|
"Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file"
|
||||||
],
|
],
|
||||||
"hash": "6d21ea16cd4f85707ff5c89c7a5777ac",
|
"hash": "2b68364c4ebb09b6f5c3902e0afdcc1a",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "alchemy-fr/tcpdf-clone",
|
"name": "alchemy-fr/tcpdf-clone",
|
||||||
@@ -1062,6 +1062,63 @@
|
|||||||
],
|
],
|
||||||
"time": "2013-08-18 07:18:44"
|
"time": "2013-08-18 07:18:44"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "goodby/csv",
|
||||||
|
"version": "1.1.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/goodby/csv.git",
|
||||||
|
"reference": "da672802985d196cae767da29b11618a676496b0"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/goodby/csv/zipball/da672802985d196cae767da29b11618a676496b0",
|
||||||
|
"reference": "da672802985d196cae767da29b11618a676496b0",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-mbstring": "*",
|
||||||
|
"php": ">=5.3.2"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"mikey179/vfsstream": ">=1.1.0",
|
||||||
|
"mockery/mockery": ">=0.7.2",
|
||||||
|
"phpunit/phpunit": "3.7.*",
|
||||||
|
"suin/php-expose": ">=1.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-0": {
|
||||||
|
"Goodby\\CSV": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "suin",
|
||||||
|
"email": "suinyeze@gmail.com",
|
||||||
|
"homepage": "https://www.facebook.com/suinyeze",
|
||||||
|
"role": "Developer, Renaming Specialist"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "reoring",
|
||||||
|
"email": "mori.reo@gmail.com",
|
||||||
|
"homepage": "https://www.facebook.com/reoring",
|
||||||
|
"role": "Developer"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "CSV import/export library",
|
||||||
|
"homepage": "https://github.com/goodby/csv",
|
||||||
|
"keywords": [
|
||||||
|
"csv",
|
||||||
|
"export",
|
||||||
|
"import"
|
||||||
|
],
|
||||||
|
"time": "2013-11-22 19:10:34"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "guzzle/guzzle",
|
"name": "guzzle/guzzle",
|
||||||
"version": "v3.7.4",
|
"version": "v3.7.4",
|
||||||
|
|||||||
@@ -83,6 +83,7 @@ use Alchemy\Phrasea\Core\Provider\BorderManagerServiceProvider;
|
|||||||
use Alchemy\Phrasea\Core\Provider\CacheServiceProvider;
|
use Alchemy\Phrasea\Core\Provider\CacheServiceProvider;
|
||||||
use Alchemy\Phrasea\Core\Provider\ConfigurationServiceProvider;
|
use Alchemy\Phrasea\Core\Provider\ConfigurationServiceProvider;
|
||||||
use Alchemy\Phrasea\Core\Provider\ConfigurationTesterServiceProvider;
|
use Alchemy\Phrasea\Core\Provider\ConfigurationTesterServiceProvider;
|
||||||
|
use Alchemy\Phrasea\Core\Provider\CSVServiceProvider;
|
||||||
use Alchemy\Phrasea\Core\Provider\FileServeServiceProvider;
|
use Alchemy\Phrasea\Core\Provider\FileServeServiceProvider;
|
||||||
use Alchemy\Phrasea\Core\Provider\FtpServiceProvider;
|
use Alchemy\Phrasea\Core\Provider\FtpServiceProvider;
|
||||||
use Alchemy\Geonames\GeonamesServiceProvider;
|
use Alchemy\Geonames\GeonamesServiceProvider;
|
||||||
@@ -193,6 +194,7 @@ class Application extends SilexApplication
|
|||||||
$this->register(new BrowserServiceProvider());
|
$this->register(new BrowserServiceProvider());
|
||||||
$this->register(new ConfigurationServiceProvider());
|
$this->register(new ConfigurationServiceProvider());
|
||||||
$this->register(new ConfigurationTesterServiceProvider);
|
$this->register(new ConfigurationTesterServiceProvider);
|
||||||
|
$this->register(new CSVServiceProvider());
|
||||||
$this->register(new RegistrationServiceProvider());
|
$this->register(new RegistrationServiceProvider());
|
||||||
$this->register(new CacheServiceProvider());
|
$this->register(new CacheServiceProvider());
|
||||||
$this->register(new ImagineServiceProvider());
|
$this->register(new ImagineServiceProvider());
|
||||||
|
|||||||
77
lib/Alchemy/Phrasea/Core/Provider/CSVServiceProvider.php
Normal file
77
lib/Alchemy/Phrasea/Core/Provider/CSVServiceProvider.php
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of Phraseanet
|
||||||
|
*
|
||||||
|
* (c) 2005-2014 Alchemy
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Alchemy\Phrasea\Core\Provider;
|
||||||
|
|
||||||
|
use Silex\Application;
|
||||||
|
use Silex\ServiceProviderInterface;
|
||||||
|
use Goodby\CSV\Export\Standard\Exporter;
|
||||||
|
use Goodby\CSV\Export\Standard\ExporterConfig;
|
||||||
|
use Goodby\CSV\Import\Standard\Lexer;
|
||||||
|
use Goodby\CSV\Import\Standard\Interpreter;
|
||||||
|
use Goodby\CSV\Import\Standard\LexerConfig;
|
||||||
|
use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||||
|
|
||||||
|
class CSVServiceProvider implements ServiceProviderInterface
|
||||||
|
{
|
||||||
|
public function register(Application $app)
|
||||||
|
{
|
||||||
|
$app['csv.exporter.config'] = $app->share(function () {
|
||||||
|
$config = new ExporterConfig();
|
||||||
|
return $config
|
||||||
|
->setDelimiter(",")
|
||||||
|
->setEnclosure('"')
|
||||||
|
->setEscape("\\")
|
||||||
|
->setToCharset('UTF-8')
|
||||||
|
->setFromCharset('UTF-8');
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
$app['csv.exporter'] = $app->share(function ($app) {
|
||||||
|
return new Exporter($app['csv.exporter.config']);
|
||||||
|
});
|
||||||
|
|
||||||
|
$app['csv.lexer.config'] = $app->share(function ($app) {
|
||||||
|
return new LexerConfig();
|
||||||
|
});
|
||||||
|
|
||||||
|
$app['csv.lexer'] = $app->share(function ($app) {
|
||||||
|
return new Lexer($app['csv.lexer.config']);
|
||||||
|
});
|
||||||
|
|
||||||
|
$app['csv.interpreter'] = $app->share(function ($app) {
|
||||||
|
return new Interpreter();
|
||||||
|
});
|
||||||
|
|
||||||
|
$app['csv.response'] = $app->protect(function ($callback) use ($app) {
|
||||||
|
// set headers to fix ie issues
|
||||||
|
$response = new StreamedResponse($callback, 200, array(
|
||||||
|
'Expires' => 'Mon, 26 Jul 1997 05:00:00 GMT',
|
||||||
|
'Last-Modified' => gmdate('D, d M Y H:i:s'). ' GMT',
|
||||||
|
'Cache-Control' => 'no-store, no-cache, must-revalidate',
|
||||||
|
'Cache-Control' => 'post-check=0, pre-check=0',
|
||||||
|
'Pragma' => 'no-cache',
|
||||||
|
'Content-Type' => 'text/csv',
|
||||||
|
'Cache-Control' => 'max-age=3600, must-revalidate',
|
||||||
|
'Content-Disposition' => 'max-age=3600, must-revalidate',
|
||||||
|
));
|
||||||
|
|
||||||
|
$response->headers->set('Content-Disposition', $response->headers->makeDisposition(
|
||||||
|
ResponseHeaderBag::DISPOSITION_ATTACHMENT,
|
||||||
|
'export.csv'
|
||||||
|
));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public function boot(Application $app)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user