Available APIs

This chapter describes the various APIs and data models existing in this extension and which might be of use to developers.

Import API

As mentioned earlier, External Import can be used from within another piece of code, just passing it data and benefiting from its mapping, transformation and storing features.

It is very simple to use this feature. You just need to assemble data in a format that External Import can understand (XML structure or PHP array) and call the appropriate method. All you need is an instance of class \Cobweb\ExternalImport\Importer and a single call.

Warning

Since version 4.0.0, the \Cobweb\ExternalImport\Importer class must be instantiated using Extbase’s \TYPO3\CMS\Extbase\Object\ObjectManager due to its usage of dependency injection.

$objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\Object\ObjectManager::class);
$importer = $objectManager->get(\Cobweb\ExternalImport\Importer::class);
$importer->import($table, $index, $rawData);

The call parameters are as follows:

Name Type Description
$table string Name of the table to store the data into.
$index integer Index of the relevant external configuration.
$rawData mixed The data to store, either as XML or PHP array.

Data Model

The data that goes through the import process is encapsulated in the \Cobweb\ExternalImport\Domain\Model\Data class. This class contains two member variables:

rawData
The data as it is read from the external source or as it is passed to the import API. Given the current capacities of External Import, this may be either a string representing a XML structure or a PHP array.
records
The data as structured by External Import, step after step.

There are getters and setters for each of these.

Configuration Model

Whenever an import is run, the corresponding TCA configuration is loaded into an instance of the \Cobweb\ExternalImport\Domain\Model\Configuration class. The main member variables are:

table
The name of the table for which data is being imported.
index
The index of the configuration being used.
ctrlConfiguration
The “ctrl” part of the External Import TCA configuration.
columnConfiguration
The columns configuration part of the External Import TCA configuration.
additionalFields
Array containing the list of additional fields. This should be considered a runtime cache for an often requested property.
countAdditionalFields
Number of additional fields. This is also a runtime cache.
steps
List of steps the process will go through. When the External Import configuration is loaded, the list of steps is established, based on the type of import (synchronized or via the API) and any custom steps. This ensures that custom steps are handled in a single place.
connector
The Configuration object also contains a reference to the Connector service used to read the external data, if any.

There are getters and setters for each of these.

The Importer class

Beyond the import() method mentioned above the \Cobweb\ExternalImport\Importer class also makes a number of internal elements available via getters:

getExtensionConfiguration
Get an array with the unserialized extension configuration.
getExternalConfiguration
Get the current instance of the Configuration model.

and a few more which are not as significant and can be explored by anyone interested straight in the source code.

For reporting, the \Cobweb\ExternalImport\Importer class also provides the addMessage() method which takes as arguments a message and a severity (using the constants of the \TYPO3\CMS\Core\Messaging\AbstractMessage class).