Introduce an options manager for all writers (#423)
This will improve the management of options and simplify some methods' signatures. This commit will also help moving the code to a better state regarding Dependency Injection.
This commit is contained in:
1 parent
f9d8ad8be3
commit
a366d0d0af
22 files changed
+447
-113
No files matched your search
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
namespace Box\Spout\Writer\ODS\Manager;
|
||||
|
||||
use Box\Spout\Writer\Common\Options;
|
||||
use Box\Spout\Writer\Style\StyleBuilder;
|
||||
|
||||
/**
|
||||
* Class OptionsManager
|
||||
* ODS Writer options manager
|
||||
*
|
||||
* @package Box\Spout\Writer\ODS\Manager
|
||||
*/
|
||||
class OptionsManager extends \Box\Spout\Writer\Common\Manager\OptionsManager
|
||||
{
|
||||
/** @var StyleBuilder Style builder */
|
||||
protected $styleBuilder;
|
||||
|
||||
/**
|
||||
* OptionsManager constructor.
|
||||
* @param StyleBuilder $styleBuilder
|
||||
*/
|
||||
public function __construct(StyleBuilder $styleBuilder)
|
||||
{
|
||||
$this->styleBuilder = $styleBuilder;
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
protected function getSupportedOptions()
|
||||
{
|
||||
return [
|
||||
Options::TEMP_FOLDER,
|
||||
Options::DEFAULT_ROW_STYLE,
|
||||
Options::SHOULD_CREATE_NEW_SHEETS_AUTOMATICALLY,
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
protected function setDefaultOptions()
|
||||
{
|
||||
$this->setOption(Options::TEMP_FOLDER, sys_get_temp_dir());
|
||||
$this->setOption(Options::DEFAULT_ROW_STYLE, $this->styleBuilder->build());
|
||||
$this->setOption(Options::SHOULD_CREATE_NEW_SHEETS_AUTOMATICALLY, true);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user