Skip to content

Commit

Permalink
[FOLLOWUP] Rename configuration variables and methods, deprecate old …
Browse files Browse the repository at this point in the history
…methods, reference #140
  • Loading branch information
fsuter committed Sep 30, 2020
1 parent fde4d05 commit 7fa9be7
Show file tree
Hide file tree
Showing 23 changed files with 108 additions and 49 deletions.
2 changes: 1 addition & 1 deletion Classes/Controller/DataModuleController.php
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,7 @@ public function viewConfigurationAction($table, $index): void
$table,
$index
);
$connector = $configuration->getCtrlConfigurationProperty('connector');
$connector = $configuration->getGeneralConfigurationProperty('connector');
// Define which action to go back to for the close button (depends on whether the configuration is synchronizable or not)
if (empty($connector)) {
$returnAction = 'listNonSynchronizable';
Expand Down
89 changes: 72 additions & 17 deletions Classes/Domain/Model/Configuration.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@ class Configuration
protected $index;

/**
* @var array "ctrl" part of the External Import configuration
* @var array General part of the External Import configuration
*/
protected $ctrlConfiguration;
protected $generalConfiguration;

/**
* @var array External Import configuration for each column
Expand Down Expand Up @@ -121,28 +121,30 @@ public function setIndex($index): void
}

/**
* Returns the general external configuration
*
* @return array|null
*/
public function getCtrlConfiguration(): ?array
public function getGeneralConfiguration(): ?array
{
return $this->ctrlConfiguration;
return $this->generalConfiguration;
}

/**
* Sets the "ctrl" part of the configuration and performs extra processing
* Sets the general configuration and performs extra processing
* on some properties.
*
* @param array $ctrlConfiguration
* @param array $generalConfiguration
* @param array $defaultSteps List of default steps (if null will be guessed by the repository)
* @return void
*/
public function setCtrlConfiguration(array $ctrlConfiguration, $defaultSteps = null): void
public function setGeneralConfiguration(array $generalConfiguration, $defaultSteps = null): void
{
$this->ctrlConfiguration = $ctrlConfiguration;
$this->generalConfiguration = $generalConfiguration;
// Define the process default steps, depending on process type or the predefined value
// NOTE: normally default steps should always be defined
if ($defaultSteps === null) {
if (array_key_exists('connector', $ctrlConfiguration)) {
if (array_key_exists('connector', $generalConfiguration)) {
$steps = Importer::SYNCHRONYZE_DATA_STEPS;
} else {
$steps = Importer::IMPORT_DATA_STEPS;
Expand All @@ -151,22 +153,22 @@ public function setCtrlConfiguration(array $ctrlConfiguration, $defaultSteps = n
$steps = $defaultSteps;
}
// Perform extra processing for custom steps
if (array_key_exists('customSteps', $ctrlConfiguration)) {
foreach ($ctrlConfiguration['customSteps'] as $customStepConfiguration) {
if (array_key_exists('customSteps', $generalConfiguration)) {
foreach ($generalConfiguration['customSteps'] as $customStepConfiguration) {
$steps = $this->stepUtility->insertStep($steps, $customStepConfiguration);
}
}
$this->steps = $steps;

// Store the storage pid from the configuration
// It is stored in a separate variable as it might be overridden
$this->storagePid = $ctrlConfiguration['pid'];
$this->storagePid = $generalConfiguration['pid'];

// Perform extra processing for additional fields
if (array_key_exists('additionalFields', $ctrlConfiguration)) {
if (array_key_exists('additionalFields', $generalConfiguration)) {
$additionalFields = GeneralUtility::trimExplode(
',',
$ctrlConfiguration['additionalFields'],
$generalConfiguration['additionalFields'],
true
);
$this->setAdditionalFields($additionalFields);
Expand All @@ -182,14 +184,67 @@ public function setCtrlConfiguration(array $ctrlConfiguration, $defaultSteps = n
* @param $key
* @return mixed|null
*/
public function getCtrlConfigurationProperty($key)
public function getGeneralConfigurationProperty($key)
{
if (array_key_exists($key, $this->ctrlConfiguration)) {
return $this->ctrlConfiguration[$key];
if (array_key_exists($key, $this->generalConfiguration)) {
return $this->generalConfiguration[$key];
}
return null;
}

/**
* TODO: remove once backward-compatibility is dropped
*
* @return array|null
* @deprecated use \Cobweb\ExternalImport\Domain\Model\Configuration::getGeneralConfiguration() instead
*/
public function getCtrlConfiguration(): ?array
{
trigger_error(
'Using \Cobweb\ExternalImport\Domain\Model\Configuration::getCtrlConfiguration() is deprecated. Use \Cobweb\ExternalImport\Domain\Model\Configuration::getGeneralConfiguration() instead.',
E_USER_DEPRECATED
);
return $this->getGeneralConfiguration();
}

/**
* Sets the "ctrl" configuration and performs extra processing
* on some properties.
*
* TODO: remove once backward-compatibility is dropped
*
* @param array $ctrlConfiguration
* @param array $defaultSteps List of default steps (if null will be guessed by the repository)
* @return void
* @deprecated use \Cobweb\ExternalImport\Domain\Model\Configuration::setGeneralConfiguration() instead
*/
public function setCtrlConfiguration(array $ctrlConfiguration, $defaultSteps = null): void
{
trigger_error(
'Using \Cobweb\ExternalImport\Domain\Model\Configuration::setCtrlConfiguration() is deprecated. Use \Cobweb\ExternalImport\Domain\Model\Configuration::setGeneralConfiguration() instead.',
E_USER_DEPRECATED
);
$this->setGeneralConfiguration($ctrlConfiguration, $defaultSteps);
}

/**
* Returns a specific property from the "ctrl" configuration.
*
* TODO: remove once backward-compatibility is dropped
*
* @param $key
* @return mixed|null
* @deprecated use \Cobweb\ExternalImport\Domain\Model\Configuration::getGeneralConfigurationProperty() instead
*/
public function getCtrlConfigurationProperty($key)
{
trigger_error(
'Using \Cobweb\ExternalImport\Domain\Model\Configuration::getCtrlConfigurationProperty() is deprecated. Use \Cobweb\ExternalImport\Domain\Model\Configuration::getGeneralConfigurationProperty() instead.',
E_USER_DEPRECATED
);
return $this->getGeneralConfigurationProperty($key);
}

/**
* @return array|null
*/
Expand Down
2 changes: 1 addition & 1 deletion Classes/Domain/Repository/ConfigurationRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,7 @@ public function findConfigurationObject($table, $index, $defaultSteps = null): C
// Set the values in the Configuration object
$configuration->setTable($table);
$configuration->setIndex($index);
$configuration->setCtrlConfiguration($ctrlConfiguration, $defaultSteps);
$configuration->setGeneralConfiguration($ctrlConfiguration, $defaultSteps);
$configuration->setColumnConfiguration($columnsConfiguration);
return $configuration;
}
Expand Down
2 changes: 1 addition & 1 deletion Classes/Domain/Repository/UidRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ protected function retrieveExistingUids(): void
}

$table = $this->configuration->getTable();
$ctrlConfiguration = $this->configuration->getCtrlConfiguration();
$ctrlConfiguration = $this->configuration->getGeneralConfiguration();
$where = '1 = 1';
// TODO: use QueryBuilder to add constraints properly (verify that whereClause indeed works)
if ($ctrlConfiguration['enforcePid']) {
Expand Down
2 changes: 1 addition & 1 deletion Classes/Handler/XmlHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public function handleData($rawData, Importer $importer): array
$data = [];
$counter = 0;
$configuration = $importer->getExternalConfiguration();
$ctrlConfiguration = $configuration->getCtrlConfiguration();
$ctrlConfiguration = $configuration->getGeneralConfiguration();
$columnConfiguration = $configuration->getColumnConfiguration();

// Load the XML into a DOM object
Expand Down
2 changes: 1 addition & 1 deletion Classes/Step/ClearCacheStep.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ class ClearCacheStep extends AbstractStep
*/
public function run(): void
{
$configuration = $this->configuration->getCtrlConfiguration();
$configuration = $this->configuration->getGeneralConfiguration();
if (empty($configuration['clearCache'])) {
$this->importer->setPreviewData(
[
Expand Down
2 changes: 1 addition & 1 deletion Classes/Step/ConnectorCallbackStep.php
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public function run(): void
$errorStatus = true;
}
$this->configuration->getConnector()->postProcessOperations(
$this->configuration->getCtrlConfigurationProperty('parameters'),
$this->configuration->getGeneralConfigurationProperty('parameters'),
$errorStatus
);
}
Expand Down
2 changes: 1 addition & 1 deletion Classes/Step/HandleDataStep.php
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ public function injectXmlHander(XmlHandler $handler): void
*/
public function run(): void
{
$ctrlConfiguration = $this->configuration->getCtrlConfiguration();
$ctrlConfiguration = $this->configuration->getGeneralConfiguration();
$originalData = $this->getData()->getRawData();
// Check for custom data handlers
if (!empty($ctrlConfiguration['dataHandler'])) {
Expand Down
2 changes: 1 addition & 1 deletion Classes/Step/ReadDataStep.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ class ReadDataStep extends AbstractStep
*/
public function run(): void
{
$ctrlConfiguration = $this->configuration->getCtrlConfiguration();
$ctrlConfiguration = $this->configuration->getGeneralConfiguration();
// Check if there are any services of the given type
$services = ExtensionManagementUtility::findService(
'connector',
Expand Down
4 changes: 2 additions & 2 deletions Classes/Step/StoreDataStep.php
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ public function run(): void
$existingUids = $existingUids ?? [];
$currentPids = $currentPids ?? [];

$ctrlConfiguration = $this->getConfiguration()->getCtrlConfiguration();
$ctrlConfiguration = $this->getConfiguration()->getGeneralConfiguration();
$columnConfiguration = $this->getConfiguration()->getColumnConfiguration();
$table = $this->importer->getExternalConfiguration()->getTable();
// Extract list of excluded fields
Expand Down Expand Up @@ -104,7 +104,7 @@ public function run(): void
$countConfiguredAdditionalFields = $this->getConfiguration()->getCountAdditionalFields();
$isUpdateAllowed = !GeneralUtility::inList($ctrlConfiguration['disabledOperations'], 'update');
$isInsertAllowed = !GeneralUtility::inList($ctrlConfiguration['disabledOperations'], 'insert');
$updateSlugs = (bool)$this->getConfiguration()->getCtrlConfigurationProperty('updateSlugs');
$updateSlugs = (bool)$this->getConfiguration()->getGeneralConfigurationProperty('updateSlugs');
foreach ($records as $theRecord) {
$localAdditionalFields = [];
$externalUid = $theRecord[$ctrlConfiguration['referenceUid']];
Expand Down
2 changes: 1 addition & 1 deletion Classes/Step/ValidateConfigurationStep.php
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ public function injectColumnValidator(\Cobweb\ExternalImport\Validator\ColumnCon
*/
public function run(): void
{
$ctrlConfiguration = $this->configuration->getCtrlConfiguration();
$ctrlConfiguration = $this->configuration->getGeneralConfiguration();
// If there's no "ctrl" configuration, issue error
if (count($ctrlConfiguration) === 0) {
$this->importer->addMessage(
Expand Down
2 changes: 1 addition & 1 deletion Classes/Step/ValidateConnectorStep.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class ValidateConnectorStep extends AbstractStep
*/
public function run(): void
{
$ctrlConfiguration = $this->configuration->getCtrlConfiguration();
$ctrlConfiguration = $this->configuration->getGeneralConfiguration();
if (empty($ctrlConfiguration['connector'])) {
$this->importer->addMessage(
LocalizationUtility::translate(
Expand Down
2 changes: 1 addition & 1 deletion Classes/Step/ValidateDataStep.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ class ValidateDataStep extends AbstractStep
*/
public function run(): void
{
$ctrlConfiguration = $this->configuration->getCtrlConfiguration();
$ctrlConfiguration = $this->configuration->getGeneralConfiguration();
$records = $this->getData()->getRecords();

// Check if number of records is larger than or equal to the minimum required number of records
Expand Down
2 changes: 1 addition & 1 deletion Classes/Task/AutomatedSyncTask.php
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ public function getAdditionalInformation()
LocalizationUtility::translate('LLL:EXT:external_import/Resources/Private/Language/ExternalImport.xlf:tableIndexAndPriority'),
$this->table,
$this->index,
$configuration->getCtrlConfigurationProperty('priority')
$configuration->getGeneralConfigurationProperty('priority')
);
}
return $info;
Expand Down
2 changes: 1 addition & 1 deletion Classes/Validator/ColumnConfigurationValidator.php
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ public function isValid(Configuration $configuration, $column): bool
$columnConfiguration = $configuration->getConfigurationForColumn($column);
// Validate properties used to choose the import value
$this->validateDataSettingProperties(
$configuration->getCtrlConfiguration(),
$configuration->getGeneralConfiguration(),
$columnConfiguration
);
// Check for deprecated transformation properties
Expand Down
2 changes: 1 addition & 1 deletion Classes/Validator/ControlConfigurationValidator.php
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ public function injectStepUtility(StepUtility $stepUtility): void
public function isValid(Configuration $configuration): bool
{
$this->table = $configuration->getTable();
$ctrlConfiguration = $configuration->getCtrlConfiguration();
$ctrlConfiguration = $configuration->getGeneralConfiguration();

// Validate all properties on which conditions apply
$this->validateDataProperty($ctrlConfiguration['data']);
Expand Down
2 changes: 1 addition & 1 deletion Classes/ViewHelpers/ProcessedParametersViewHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ public static function renderStatic(array $arguments, \Closure $renderChildrenCl
foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['external_import']['processParameters'] as $className) {
$preProcessor = GeneralUtility::makeInstance($className);
$processedParameters = $preProcessor->processParameters(
$configuration->getCtrlConfigurationProperty('parameters'),
$configuration->getGeneralConfigurationProperty('parameters'),
$configuration
);
}
Expand Down
8 changes: 6 additions & 2 deletions Documentation/Developer/Api/Index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -98,8 +98,12 @@ table
index
The index of the configuration being used.

ctrlConfiguration
The "ctrl" part of the External Import TCA configuration.
generalConfiguration
The general part of the External Import TCA configuration.

.. note::

This is still availabe as `ctrlConfiguration` but support will be dropped in the future.

columnConfiguration
The columns configuration part of the External Import TCA configuration.
Expand Down
14 changes: 7 additions & 7 deletions Tests/Functional/Domain/Model/ConfigurationTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -91,20 +91,20 @@ public function getCountAdditionalFieldsInitiallyReturnsZero(): void
/**
* @test
*/
public function getCtrlConfigurationInitiallyReturnsNull(): void
public function getGenerallConfigurationInitiallyReturnsNull(): void
{
self::assertNull(
$this->subject->getCtrlConfiguration()
$this->subject->getGeneralConfiguration()
);
}

/**
* @test
*/
public function getCtrlConfigurationPropertyInitiallyReturnsNull(): void
public function getGenerallConfigurationPropertyInitiallyReturnsNull(): void
{
self::assertNull(
$this->subject->getCtrlConfigurationProperty('foo')
$this->subject->getGeneralConfigurationProperty('foo')
);
}

Expand Down Expand Up @@ -171,12 +171,12 @@ public function ctrlConfigurationProvider(): array
* @param array $additionalFields
* @dataProvider ctrlConfigurationProvider
*/
public function setCtrlConfigurationSetsCtrlConfigurationAndMore($configuration, $pid, $additionalFields): void
public function setGeneralConfigurationSetsGeneralConfigurationAndMore($configuration, $pid, $additionalFields): void
{
$this->subject->setCtrlConfiguration($configuration);
$this->subject->setGeneralConfiguration($configuration);
self::assertSame(
$configuration,
$this->subject->getCtrlConfiguration()
$this->subject->getGeneralConfiguration()
);
self::assertEquals(
$pid,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -163,12 +163,12 @@ public function findConfigurationObjectReturnsExpectedConfiguration($table, $ind
);
self::assertSame(
$expectedCtrlValue,
$configuration->getCtrlConfigurationProperty('nodetype')
$configuration->getGeneralConfigurationProperty('nodetype')
);
self::assertSame(
$expectedColumnConfiguration,
$configuration->getConfigurationForColumn(
$configuration->getCtrlConfigurationProperty('referenceUid')
$configuration->getGeneralConfigurationProperty('referenceUid')
)
);
}
Expand Down
2 changes: 1 addition & 1 deletion Tests/Functional/Domain/Repository/UidRepositoryTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ public function getExistingUidsTriggersFetchingOfUidsAndPids($configuration, $li
$this->importDataSet(__DIR__ . '/../../Fixtures/UidRepository.xml');
$configurationObject = $this->objectManager->get(Configuration::class);
$configurationObject->setTable('tt_content');
$configurationObject->setCtrlConfiguration($configuration);
$configurationObject->setGeneralConfiguration($configuration);
if ($configuration['enforcePid']) {
$configurationObject->setStoragePid(1);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ public function validConfigurationProvider(): array
public function isValidReturnsTrueForValidConfiguration($controlConfiguration, $columnConfiguration): void
{
$configuration = $this->objectManager->get(Configuration::class);
$configuration->setCtrlConfiguration($controlConfiguration);
$configuration->setGeneralConfiguration($controlConfiguration);
$configuration->setColumnConfiguration($columnConfiguration);
self::assertTrue(
$this->subject->isValid(
Expand Down Expand Up @@ -234,7 +234,7 @@ public function invalidConfigurationProvider(): array
public function isValidRaisesMessageForInvalidConfiguration($controlConfiguration, $columnConfiguration, $severity): void
{
$configuration = $this->objectManager->get(Configuration::class);
$configuration->setCtrlConfiguration($controlConfiguration);
$configuration->setGeneralConfiguration($controlConfiguration);
$configuration->setColumnConfiguration($columnConfiguration);
$this->subject->isValid(
$configuration,
Expand Down

0 comments on commit 7fa9be7

Please sign in to comment.