* Refactor readers to get a proper DI Similar to what was done with writers, readers also needed to be updated to match the new way of doing things. This commits promotes a better DI (factories, injection through constructors). * Escapers should not be singletons Instead, they should be proper object that can be injected where needed.
43 lines
1.1 KiB
PHP
43 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace Box\Spout\Reader\CSV\Manager;
|
|
|
|
use Box\Spout\Common\Helper\EncodingHelper;
|
|
use Box\Spout\Common\Manager\OptionsManagerAbstract;
|
|
use Box\Spout\Reader\Common\Entity\Options;
|
|
|
|
/**
|
|
* Class OptionsManager
|
|
* CSV Reader options manager
|
|
*
|
|
* @package Box\Spout\Reader\CSV\Manager
|
|
*/
|
|
class OptionsManager extends OptionsManagerAbstract
|
|
{
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
protected function getSupportedOptions()
|
|
{
|
|
return [
|
|
Options::SHOULD_FORMAT_DATES,
|
|
Options::SHOULD_PRESERVE_EMPTY_ROWS,
|
|
Options::FIELD_DELIMITER,
|
|
Options::FIELD_ENCLOSURE,
|
|
Options::ENCODING,
|
|
];
|
|
}
|
|
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
protected function setDefaultOptions()
|
|
{
|
|
$this->setOption(Options::SHOULD_FORMAT_DATES, false);
|
|
$this->setOption(Options::SHOULD_PRESERVE_EMPTY_ROWS, false);
|
|
$this->setOption(Options::FIELD_DELIMITER, ',');
|
|
$this->setOption(Options::FIELD_ENCLOSURE, '"');
|
|
$this->setOption(Options::ENCODING, EncodingHelper::ENCODING_UTF8);
|
|
}
|
|
}
|