Skip to content

Instantly share code, notes, and snippets.

@a-ast
Last active October 4, 2017 07:37
Show Gist options
  • Save a-ast/e1aaae92c089f5be8c157927296c9858 to your computer and use it in GitHub Desktop.
Save a-ast/e1aaae92c089f5be8c157927296c9858 to your computer and use it in GitHub Desktop.
Spryker DataImport: implement data step
<?php
namespace Pyz\Zed\DataImport\Business;
use Pyz\Zed\AkeneoConnector\Business\Model\Attribute\YourWriterStep;
use Spryker\Zed\DataImport\Business\Model\DataImporterInterface;
use Spryker\Zed\DataImport\Business\DataImportBusinessFactory as SprykerDataImportBusinessFactory;
use Spryker\Zed\DataImport\Business\Model\DataSet\DataSetStepBrokerInterface;
/**
* @method \Pyz\Zed\DataImport\DataImportConfig getConfig()
*/
class DataImportBusinessFactory extends SprykerDataImportBusinessFactory
{
protected function createNewDataStep(): YourWriterStep
{
return new YourWriterStep();
}
protected function getNewDataStepBroker(): DataSetStepBrokerInterface
{
$dataSetStepBroker = $this->createTransactionAwareDataSetStepBroker();
$dataSetStepBroker->addStep($this->createNewDataStep());
return $dataSetStepBroker;
}
protected function createNewImporter(): DataImporterInterface
{
$dataImporter = $this->getCsvDataImporterFromConfig($this->getConfig()->getDataImporterConfiguration());
$dataSetStepBroker = $this->getNewDataStepBroker();
$dataImporter->addDataSetStepBroker($dataSetStepBroker);
return $dataImporter;
}
}
public function getImporter(): DataImporterInterface
{
$dataImporterCollection = $this->createDataImporterCollection();
$dataImporterCollection->addDataImporter($this->createNewImporter());
return $dataImporterCollection;
}
namespace Pyz\Zed\AkeneoConnector\Business\Model;
use Spryker\Zed\DataImport\Business\Model\DataImportStep\DataImportStepInterface;
use Spryker\Zed\DataImport\Business\Model\DataSet\DataSetInterface;
class YourWriterStep implements DataImportStepInterface
{
public function execute(DataSetInterface $dataSet): void
{
// process $dataSet and persist data
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment