2015-08-18 00:00:26 +00:00
< ? php
/*
* This file is part of the Symfony package .
*
* ( c ) Fabien Potencier < fabien @ symfony . com >
*
* For the full copyright and license information , please view the LICENSE
* file that was distributed with this source code .
*/
namespace Symfony\Component\Translation\Dumper ;
use Symfony\Component\Translation\MessageCatalogue ;
/**
* CsvFileDumper generates a csv formatted string representation of a message catalogue .
*
* @ author Stealth35
*/
class CsvFileDumper extends FileDumper
{
private $delimiter = ';' ;
private $enclosure = '"' ;
/**
* { @ inheritdoc }
*/
public function format ( MessageCatalogue $messages , $domain = 'messages' )
2016-04-20 16:56:34 +00:00
{
@ trigger_error ( 'The ' . __METHOD__ . ' method is deprecated since version 2.8 and will be removed in 3.0. Use the formatCatalogue() method instead.' , E_USER_DEPRECATED );
return $this -> formatCatalogue ( $messages , $domain );
}
/**
* { @ inheritdoc }
*/
public function formatCatalogue ( MessageCatalogue $messages , $domain , array $options = array ())
2015-08-18 00:00:26 +00:00
{
$handle = fopen ( 'php://memory' , 'rb+' );
foreach ( $messages -> all ( $domain ) as $source => $target ) {
fputcsv ( $handle , array ( $source , $target ), $this -> delimiter , $this -> enclosure );
}
rewind ( $handle );
$output = stream_get_contents ( $handle );
fclose ( $handle );
return $output ;
}
/**
* Sets the delimiter and escape character for CSV .
*
* @ param string $delimiter delimiter character
* @ param string $enclosure enclosure character
*/
public function setCsvControl ( $delimiter = ';' , $enclosure = '"' )
{
$this -> delimiter = $delimiter ;
$this -> enclosure = $enclosure ;
}
/**
* { @ inheritdoc }
*/
protected function getExtension ()
{
return 'csv' ;
}
}