Migration von 3.4 auf 4.0

1. Einleitung

In diesem Artikel erfahren Sie, wie Sie eine bestehende Anwendung auf APF-Version 4.0 aktualisieren können.

Version 4.0 ist in den meisten Teilen kompatibel mit der Vorgänger-Version. Kapitel 2 beschreibt die notwendigen manuellen Anpassungen.

Mit dem Erscheinen dieses Release wird die Weiterentwicklung der Version 3.4 eingestellt. Security- und Bug-Fixes werden bis Mitte 2019 verfügbar sein.

2. Manuelle Schritte

Dieses Kapitel beschreibt alle manuell im Code Ihrer Applikation notwendigen Anpassungen um auf die Version 4 des APF zu aktualisieren.

Bitte beachten Sie, dass auf Grund der Vielzahl der API-Änderungen (u.a. Einführung von starker Typisierung von Methoden-Argumenten, Entfernung &-Operator) keine automatisierte Migration angeboten werden kann! Hilfreiche Hinweise zur manuellen Migration finden Sie in den nachfolgenden Kapiteln.

2.1. Umbenennung von Klassen und Methoden

Im Rahmen von Issue #323 wurden mehrere Klassen und Methoden umbenannt um eine konsistente Namensgebung zu erreichen.

Bitte passen Sie folgende Klassen- und Methoden-Benennung in Ihrer Applikation an:

APF 3.X APF 4.0
Document::getParentObject() Document::getParent()
Document::setParentObject() Document::setParent()
Frontcontroller FrontController (großes C!)
AbstractFrontcontrollerAction AbstractFrontControllerAction (großes C!)
FrontcontrollerInput FrontControllerActionParameters (großes C!)
AbstractFrontControllerAction::getInput() AbstractFrontControllerAction::getParameters()
Bitte beachten Sie, dass insbesondere die Schreibweise der Klasse FrontController in Ihrer Applikation angepasst wird. Ohne Anpassung generiert Ihre Applikation u.U. nicht nachvollziehbare Fehler wie beispielsweise nicht oder fehlerhaft initialisierte Klassen.

2.2. Anpassung von Methoden-Signaturen

Im Rahmen von Issue #323 wurden in PHP 7 eingeführte Sprach-Konstrukte wie explizite Typisierung von Methoden-Parametern eingeführt. Hieraus ergeben sich zahlreiche API-Änderungen.

Bitte passen Sie die relevanten Code-Stellen in Ihrem Projekt an (falls zutreffend).

Die folgende Liste zeigt die erfolgten Anpassungen:

APF 3.X APF 4.0
APF\core\benchmark\BenchmarkTimer
public function start($name = null) public function start(string $name)
public function stop($name) public function stop(string $name)
APF\core\benchmark\DefaultProcess
public function __construct($name, $level) public function __construct(string $name, int $level)
APF\core\benchmark\DefaultStopWatch
public function start($name = null) public function start(string $name)
public function stop($name) public function stop(string $name)
APF\core\configuration\provider\BaseConfiguration
public function getSection($name) public function getSection(string $name)
public function hasSection($name) public function hasSection(string $name)
public function getValue($name, $defaultValue = null) public function getValue(string $name, string $defaultValue = null)
public function hasValue($name) public function hasValue(string $name)
public function setSection($name, Configuration $section) public function setSection(string $name, Configuration $section)
public function setValue($name, $value) public function setValue(string $name, string $value)
public function removeSection($name) public function removeSection(string $name)
public function removeValue($name) public function removeValue(string $name)
protected function getPathParts($name) protected function getPathParts(string $name)
APF\core\configuration\provider\BaseConfigurationProvider
public function setOmitContext($omitContext) public function setOmitContext(bool $omitContext)
public function setActivateEnvironmentFallback($activateEnvironmentFallback) public function setActivateEnvironmentFallback(bool $activateEnvironmentFallback)
public function setOmitEnvironment($omitEnvironment) public function setOmitEnvironment(bool $omitEnvironment)
public function setOmitConfigSubFolder($omitConfigSubFolder) public function setOmitConfigSubFolder(bool $omitConfigSubFolder)
public function setExtension($extension) public function setExtension(string $extension)
public function setFolderPermission($folderPermission) public function setFolderPermission(int $folderPermission)
protected function getFilePath($namespace, $context, $language, $environment, $name) protected function getFilePath(string $namespace, string $context = null, string $language = null, string $environment = null, string $name)
protected function createFilePath($fileName) protected function createFilePath(string $fileName)
APF\core\configuration\provider\apc\ApcConfigurationProvider
public function __construct($persistenceProviderExtension) public function __construct(string $persistenceProviderExtension)
public function setExpireTime($expireTime) public function setExpireTime(int $expireTime)
protected function remapConfigurationName($name) protected function remapConfigurationName(string $name)
protected function getStoreIdentifier($namespace, $context, $language, $environment, $name) protected function getStoreIdentifier(string $namespace, string $context = null, string $language = null, string $environment = null, string $name)
public function loadConfiguration($namespace, $context, $language, $environment, $name) public function loadConfiguration(string $namespace, string $context = null, string $language = null, string $environment = null, string $name)
public function saveConfiguration($namespace, $context, $language, $environment, $name, Configuration $config) public function saveConfiguration(string $namespace, string $context = null, string $language = null, string $environment = null, string $name, Configuration $config)
public function setExtension($extension) public function setExtension(string $extension)
public function deleteConfiguration($namespace, $context, $language, $environment, $name) public function deleteConfiguration(string $namespace, string $context = null, string $language = null, string $environment = null, string $name)
protected function fetch($key) protected function fetch(string $key)
protected function store($key, $config) protected function store(string $key, $config)
APF\core\configuration\provider\db\DbConfigurationProvider
public function __construct($connectionName) public function __construct(string $connectionName)
public function loadConfiguration($namespace, $context, $language, $environment, $name) public function loadConfiguration(string $namespace, string $context = null, string $language = null, string $environment = null, string $name)
public function saveConfiguration($namespace, $context, $language, $environment, $name, Configuration $config) public function saveConfiguration(string $namespace, string $context = null, string $language = null, string $environment = null, string $name, Configuration $config)
public function deleteConfiguration($namespace, $context, $language, $environment, $name) public function deleteConfiguration(string $namespace, string $context = null, string $language = null, string $environment = null, string $name)
APF\core\configuration\provider\ini\IniConfigurationProvider
public function loadConfiguration($namespace, $context, $language, $environment, $name) public function loadConfiguration(string $namespace, string $context = null, string $language = null, string $environment = null, string $name)
public function saveConfiguration($namespace, $context, $language, $environment, $name, Configuration $config) public function saveConfiguration(string $namespace, string $context = null, string $language = null, string $environment = null, string $name, Configuration $config)
public function deleteConfiguration($namespace, $context, $language, $environment, $name) public function deleteConfiguration(string $namespace, string $context = null, string $language = null, string $environment = null, string $name)
APF\core\configuration\provider\json\JsonConfigurationProvider
public function loadConfiguration($namespace, $context, $language, $environment, $name) public function loadConfiguration(string $namespace, string $context = null, string $language = null, string $environment = null, string $name)
public function saveConfiguration($namespace, $context, $language, $environment, $name, Configuration $config) public function saveConfiguration(string $namespace, string $context = null, string $language = null, string $environment = null, string $name, Configuration $config)
public function deleteConfiguration($namespace, $context, $language, $environment, $name) public function deleteConfiguration(string $namespace, string $context = null, string $language = null, string $environment = null, string $name)
APF\core\configuration\provider\mem\MemcachedConfigurationProvider
public function __construct($persistenceProviderExtension, \Memcache $memcachedService) public function __construct(string $persistenceProviderExtension, \Memcache $memcachedService)
public function setExpireTime($expireTime) public function setExpireTime(int $expireTime)
public function loadConfiguration($namespace, $context, $language, $environment, $name) public function loadConfiguration(string $namespace, string $context = null, string $language = null, string $environment = null, string $name)
public function saveConfiguration($namespace, $context, $language, $environment, $name, Configuration $config) public function saveConfiguration(string $namespace, string $context = null, string $language = null, string $environment = null, string $name, Configuration $config)
public function setExtension($extension) public function setExtension(string $extension)
public function deleteConfiguration($namespace, $context, $language, $environment, $name) public function deleteConfiguration(string $namespace, string $context = null, string $language = null, string $environment = null, string $name)
APF\core\configuration\provider\php\PhpConfigurationProvider
public function loadConfiguration($namespace, $context, $language, $environment, $name) public function loadConfiguration(string $namespace, string $context = null, string $language = null, string $environment = null, string $name)
public function saveConfiguration($namespace, $context, $language, $environment, $name, Configuration $config) public function saveConfiguration(string $namespace, string $context = null, string $language = null, string $environment = null, string $name, Configuration $config)
public function deleteConfiguration($namespace, $context, $language, $environment, $name) public function deleteConfiguration(string $namespace, string $context = null, string $language = null, string $environment = null, string $name)
APF\core\configuration\provider\xml\XmlConfigurationProvider
public function loadConfiguration($namespace, $context, $language, $environment, $name) public function loadConfiguration(string $namespace, string $context = null, string $language = null, string $environment = null, string $name)
public function saveConfiguration($namespace, $context, $language, $environment, $name, Configuration $config) public function saveConfiguration(string $namespace, string $context = null, string $language = null, string $environment = null, string $name, Configuration $config)
public function deleteConfiguration($namespace, $context, $language, $environment, $name) public function deleteConfiguration(string $namespace, string $context = null, string $language = null, string $environment = null, string $name)
APF\core\database\AbstractDatabaseHandler
public function setHost($host) public function setHost(string $host)
public function setPort($port) public function setPort(string $port)
public function setDatabaseName($name) public function setDatabaseName(string $name)
public function setUser($user) public function setUser(string $user)
public function setPass($pass) public function setPass(string $pass)
public function setSocket($socket) public function setSocket(string $socket)
public function setCharset($charset) public function setCharset(string $charset)
public function setCollation($collation) public function setCollation(string $collation)
public function setDebug($debug) public function setDebug(string $debug)
public function setLogTarget($logTarget) public function setLogTarget(string $logTarget)
public function init($initParam) public function init(array $initParam)
protected function getPreparedStatement($namespace, $name, array $params = []) protected function getPreparedStatement(string $namespace, string $name, array $params = [])
APF\core\database\ConnectionManager
public function &getConnection($connectionKey, $instanceId = 'default') public function getConnection($connectionKey, $instanceId = 'default')
APF\core\database\MySQLiHandler
public function executeStatement($namespace, $statementFile, array $params = [], $logStatement = false) public function executeStatement(string $namespace, string $statementFile, array $params = [], bool $logStatement = false)
public function escapeValue($value) public function escapeValue(string $value)
public function executeTextStatement($statement, $logStatement = false) public function executeTextStatement(string $statement, bool $logStatement = false)
APF\core\database\PDOHandler
public function init($initParam) public function init(array $initParam)
public function executeStatement($namespace, $statementFile, array $params = [], $logStatement = false) public function executeStatement(string $namespace, string $statementFile, array $params = [], bool $logStatement = false)
public function executeTextStatement($statement, $logStatement = false) public function executeTextStatement(string $statement, bool $logStatement = false)
public function escapeValue($value) public function escapeValue(string $value)
APF\core\database\SQLiteHandler
public function executeTextStatement($statement, $logStatement = false) public function executeTextStatement(string $statement, bool $logStatement = false)
public function executeStatement($namespace, $statementName, array $params = [], $logStatement = false) public function executeStatement(string $namespace, string $statementName, array $params = [], bool $logStatement = false)
public function escapeValue($value) public function escapeValue(string $value)
APF\core\database\config\StatementConfigurationProvider
public function loadConfiguration($namespace, $context, $language, $environment, $name) public function loadConfiguration(string $namespace, string $context = null, string $language = null, string $environment = null, string $name)
public function saveConfiguration($namespace, $context, $language, $environment, $name, Configuration $config) public function saveConfiguration(string $namespace, string $context = null, string $language = null, string $environment = null, string $name, Configuration $config)
public function deleteConfiguration($namespace, $context, $language, $environment, $name) public function deleteConfiguration(string $namespace, string $context = null, string $language = null, string $environment = null, string $name)
APF\core\exceptionhandler\CLIExceptionHandler
public function handleException($exception) public function handleException(Throwable $exception)
APF\core\exceptionhandler\DefaultExceptionHandler
public function handleException($exception) public function handleException(Throwable $exception)
APF\core\exceptionhandler\ProductionExceptionHandler
public function handleException($exception) public function handleException(Throwable $exception)
APF\core\expression\ArrayAccessEvaluationExpression
protected function check($expression, $previousResult) protected function check(string $expression, $previousResult)
APF\core\expression\EvaluationExpressionBase
public function __construct($expression, $previousResult) public function __construct(string $expression, $previousResult)
APF\core\expression\MethodEvaluationExpression
protected function check($expression, $previousResult) protected function check(string $expression, $previousResult)
APF\core\expression\ModelEvaluationExpression
protected function check($expression, $previousResult) protected function check(string $expression, $previousResult)
APF\core\filter\AbstractFilterChain
public function &appendFilter(ChainedContentFilter $filter) public function appendFilter(ChainedContentFilter $filter)
public function &prependFilter(ChainedContentFilter $filter) public function prependFilter(ChainedContentFilter $filter)
public function &removeFilter($class) public function removeFilter($class)
APF\core\frontcontroller\AbstractFrontControllerAction
public function setActionName($name) public function setActionName(string $name)
public function setActionNamespace($namespace) public function setActionNamespace(string $namespace)
public function setType($type) public function setType(string $type)
public function setKeepInUrl($keepInUrl) public function setKeepInUrl(bool $keepInUrl)
public function setFrontController(Frontcontroller &$frontController) public function setFrontController(FrontController $frontController)
APF\core\frontcontroller\FrontController
public function start($namespace, $template) public function start(string $namespace, string $template)
protected function runActions($type = Action::TYPE_PRE_PAGE_CREATE) protected function runActions(string $type = Action::TYPE_PRE_PAGE_CREATE)
public function &getActionByName($actionName) public function getActionByName(string $actionName)
public function addAction($namespace, $name, array $params = [], $urlToken = null) public function addAction(string $namespace, string $name, array $params = [], string $urlToken = null)
protected function getActionNamespaceByURLString($namespaceUrlRepresentation) protected function getActionNamespaceByURLString(string $namespaceUrlRepresentation)
protected function generateParamsFromInputConfig($config) protected function generateParamsFromInputConfig(string $config = null)
public function registerActionUrlMappings($namespace, $name) public function registerActionUrlMappings(string $namespace, string $name)
public function getActionUrlMapping($tokenOrNamespace, $name = null) public function getActionUrlMapping(string $tokenOrNamespace, string $name = null)
APF\core\frontcontroller\FrontControllerActionParameters
public function setAction(Action &$action) public function setAction(Action $action)
public function setParameter($name, $value) public function setParameter(string $name, string $value)
public function getParameter($name, $default = null) public function getParameter(string $name, string $default = null)
APF\core\http\Cookie
public function __construct($name, $expireTime = null, $domain = null, $path = null, $secure = null, $httpOnly = null) public function __construct(string $name, int $expireTime = null, string $domain = null, string $path = null, bool $secure = false, bool $httpOnly = false)
public function setValue($value) public function setValue(string $value)
public function getValue($default = null) public function getValue(string $default = null)
public function setDomain($domain) public function setDomain(string $domain)
public function setExpireTime($expireTime) public function setExpireTime(int $expireTime)
public function setHttpOnly($httpOnly) public function setHttpOnly(bool $httpOnly)
public function setPath($path) public function setPath(string $path)
public function setSecure($secure) public function setSecure(bool $secure)
APF\core\http\HeaderImpl
public function __construct($name, $value) public function __construct(string $name, string $value)
APF\core\http\RequestImpl
public function hasParameter($name) public function hasParameter(string $name)
public function getParameter($name, $default = null) public function getParameter(string $name, $default = null)
protected function getGenericParameter($name, $default, $type) protected function getGenericParameter(string $name, $default, $type)
public function hasGetParameter($name) public function hasGetParameter(string $name)
public function getGetParameter($name, $default = null) public function getGetParameter(string $name, $default = null)
public function hasPostParameter($name) public function hasPostParameter(string $name)
public function getPostParameter($name, $default = null) public function getPostParameter(string $name, $default = null)
public function getSession($name) public function getSession(string $name)
protected function getGenericParameters($type) protected function getGenericParameters(string $type)
public function setParameter($name, $value) public function setParameter(string $name, $value)
public function setGetParameter($name, $value) public function setGetParameter(string $name, $value)
public function setPostParameter($name, $value) public function setPostParameter(string $name, $value)
public function deleteParameter($name) public function deleteParameter(string $name)
public function deleteGetParameter($name) public function deleteGetParameter(string $name)
public function deletePostParameter($name) public function deletePostParameter(string $name)
public function getUrl($absolute = false) public function getUrl(bool $absolute = false)
public function getReferrerUrl($absolute = false) public function getReferrerUrl(bool $absolute = false)
public function getCookie($name) public function getCookie(string $name)
public function hasCookie($name) public function hasCookie(string $name)
public function getHeader($name) public function getHeader(string $name)
APF\core\http\ResponseImpl
public function setVersion($version) public function setVersion(string $version)
public function setStatusCode($code) public function setStatusCode(int $code)
public function setReasonPhrase($phrase) public function setReasonPhrase(string $phrase)
public function setBody($body, $append = false) public function setBody(string $body, bool $append = false)
public function send($exit = true) public function send(bool $exit = true)
public function forward($url, $exitAfterForward = true) public function forward(string $url, bool $exitAfterForward = true)
public function redirect($url, $permanent = false, $exitAfterForward = true) public function redirect(string $url, bool $permanent = false, bool $exitAfterForward = true)
public function sendNotFound($exitAfterForward = true) public function sendNotFound(bool $exitAfterForward = true)
public function sendServerError($exitAfterForward = true) public function sendServerError(bool $exitAfterForward = true)
APF\core\http\Session
public function __construct($namespace) public function __construct(string $namespace)
public function load($attribute, $default = null) public function load(string $attribute, $default = null)
public function save($attribute, $value) public function save(string $attribute, $value)
public function delete($attribute) public function delete(string $attribute)
APF\core\loader\StandardClassLoader
public function __construct($vendorName, $rootPath, $configRootPath = null) public function __construct(string $vendorName, string $rootPath, string $configRootPath = null)
public function load($class) public function load(string $class)
public function setVendorName($name) public function setVendorName(string $name)
public function setRootPath($rootPath) public function setRootPath(string $rootPath)
APF\core\logging\entry\GraphiteLogEntry
public function __construct($target, $metric, $unit, $value, $severity) public function __construct(string $target, string $metric, string $unit, string $value, string $severity)
APF\core\logging\entry\SimpleLogEntry
public function __construct($target, $message, $severity) public function __construct(string $target, string $message, string $severity)
APF\core\logging\writer\DatabaseLogWriter
public function __construct($connectionName, $logTable) public function __construct(string $connectionName, string $logTable)
public function setConnectionName($connectionName) public function setConnectionName(string $connectionName)
public function setLogTable($logTable) public function setLogTable(string $logTable)
public function setTarget($target) public function setTarget(string $target)
APF\core\logging\writer\FileLogWriter
public function __construct($logDir) public function __construct(string $logDir)
public function setLogDir($logDir) public function setLogDir(string $logDir)
public function setHostPrefix($hostPrefix) public function setHostPrefix(string $hostPrefix)
public function setLogFolderPermissions($logFolderPermissions) public function setLogFolderPermissions(string $logFolderPermissions)
protected function getLogFileName($fileName) protected function getLogFileName(string $fileName)
public function setTarget($target) public function setTarget(string $target)
APF\core\logging\writer\GraphiteLogWriter
public function __construct($host, $port, $batchWrites = true) public function __construct(string $host, int $port, bool $batchWrites = true)
public function setEntrySeparator($entrySeparator) public function setEntrySeparator(string $entrySeparator)
public function setBatchWrites($batchWrites) public function setBatchWrites(bool $batchWrites)
public function setTarget($target) public function setTarget(string $target)
APF\core\logging\writer\StdOutLogWriter
public function setTarget($target) public function setTarget(string $target)
APF\core\pagecontroller\APFObject
public function setServiceType($serviceType) public function setServiceType(string $serviceType)
protected function &getDIServiceObject($namespace, $name) protected function getDIServiceObject(string $namespace, string $name)
public function setContext($context) public function setContext(string $context = null)
public function setLanguage($lang) public function setLanguage(string $lang = null)
protected function &getServiceObject($class, array $arguments = [], $type = APFService::SERVICE_TYPE_SINGLETON, $instanceId = null) protected function getServiceObject(string $class, array $arguments = [], string $type = APFService::SERVICE_TYPE_SINGLETON, string $instanceId = null)
protected function getConfiguration($namespace, $name) protected function getConfiguration(string $namespace, string $name)
protected function saveConfiguration($namespace, $name, Configuration $config) protected function saveConfiguration(string $namespace, string $name, Configuration $config)
protected function deleteConfiguration($namespace, $name) protected function deleteConfiguration(string $namespace, string $name)
APF\core\pagecontroller\BaseDocumentController
protected function setPlaceHolder($name, $value, $append = false) protected function setPlaceHolder(string $name, string $value, bool $append = false)
public function setDocument(DomNode &$document) public function setDocument(DomNode $document)
protected function setPlaceHolders(array $placeHolderValues, $append = false) protected function setPlaceHolders(array $placeHolderValues, bool $append = false)
protected function &getForm($formName) protected function getForm(string $formName)
protected function &getTemplate($name) protected function getTemplate(string $name)
protected function &getLabel($name) protected function getLabel(string $name)
protected function placeHolderExists($name) protected function placeHolderExists(string $name)
protected function templatePlaceHolderExists(TemplateTag &$template, $name) protected function templatePlaceHolderExists(TemplateTag $template, string $name)
protected function &getIterator($name) protected function getIterator(string $name)
protected function &setData($name, $data) protected function setData(string $name, $data)
protected function getData($name, $default = null) protected function getData(string $name, $default = null)
protected function &getNodeById($id) protected function getNodeById(string $id)
APF\core\pagecontroller\DefaultTemplateTagClearApproach
public function clear(TemplateTag &$node) public function clear(TemplateTag $node)
APF\core\pagecontroller\Document
public function hasAttribute($name) public function hasAttribute(string $name)
public function getRequiredAttribute($name) public function getRequiredAttribute(string $name)
public function getAttribute($name, $default = null) public function getAttribute(string $name, string $default = null)
public function &setAttribute($name, $value) public function setAttribute(string $name, string $value = null)
public function &setAttributes(array $attributes = []) public function setAttributes(array $attributes = [])
public function &deleteAttribute($name) public function deleteAttribute(string $name)
public function &addAttribute($name, $value, $glue = '') public function addAttribute(string $name, string $value, string $glue = '')
public function &getChildNodeIfExists($attributeName, $value, $tagLibClass) public function getChildNodeIfExists(string $attributeName, string $value, string $tagLibClass)
public function &getChildNode($attributeName, $value, $tagLibClass) public function getChildNode(string $attributeName, string $value, string $tagLibClass)
public function &getChildNodes($attributeName, $value, $tagLibClass) public function getChildNodes(string $attributeName, string $value, string $tagLibClass)
public function &setPlaceHolders(array $placeHolderValues, $append = false) public function setPlaceHolders(array $placeHolderValues, bool $append = false)
public function &setPlaceHolder($name, $value, $append = false) public function setPlaceHolder(string $name, string $value, bool $append = false)
public function getPlaceHolder($name, $default = null) public function getPlaceHolder(string $name, string $default = null)
public function getData($name, $default = null) public function getData(string $name, $default = null)
public function &setData($name, $data) public function setData(string $name, $data)
public function loadDesign($namespace, $design) public function loadDesign(string $namespace, string $design)
protected function loadContentFromFile($namespace, $name) protected function loadContentFromFile(string $namespace, string $name)
protected function getTemplateFilePath($namespace, $name) protected function getTemplateFilePath(string $namespace, string $name)
public function setContent($content) public function setContent(string $content)
public function setObjectId($objectId) public function setObjectId(string $objectId)
protected function getTagLibClass($prefix, $name) protected function getTagLibClass(string $prefix, string $name)
public function &getNodeByIdIfExists($id) public function getNodeByIdIfExists(string $id)
public function &getNodeById($id) public function getNodeById(string $id)
APF\core\pagecontroller\LanguageLabelTag
protected function replace($label) protected function replace(string $label)
APF\core\pagecontroller\Page
public function loadDesign($namespace, $design) public function loadDesign(string $namespace, string $design)
APF\core\pagecontroller\TemplateTag
public function &getLabel($name) public function getLabel(string $name)
public function &getForm($name) public function getForm(string $name)
public function &getTemplate($name) public function getTemplate(string $name)
APF\extensions\arraypager\biz\ArrayPagerManagerFabric
public function &getArrayPagerManager($config) public function getArrayPagerManager($config)
APF\extensions\htmlheader\biz\ConditionalDynamicCssNode
public function __construct($namespace, $filename, $condition, $url = null, $fcaction = true, $media = null) public function __construct($namespace, $filename, $condition, $url = null, $fcAction = true, $media = null)
APF\extensions\htmlheader\biz\DynamicCssNode
public function __construct($url, $namespace, $filename, $fcaction = true, $media = null) public function __construct($url, $namespace, $filename, $fcAction = true, $media = null)
APF\extensions\htmlheader\biz\DynamicJsNode
public function __construct($url, $namespace, $filename, $fcaction = null) public function __construct($url, $namespace, $filename, $fcAction = null)
APF\extensions\htmlheader\biz\HtmlNode
public function setPriority($priority) public function setPriority(int $priority)
public function setAppendToBody($value) public function setAppendToBody(bool $value)
APF\extensions\news\biz\News
public function __construct($objectName = null) public function __construct(string $objectName = null)
APF\extensions\news\biz\NewsBase
public function __construct($objectName = null) public function __construct(string $objectName = null)
public function getProperty($name) public function getProperty(string $name)
public function setProperty($name, $value) public function setProperty(string $name, $value)
public function setProperties($properties = []) public function setProperties(array $properties = [])
public function deleteProperty($name) public function deleteProperty(string $name)
public function setObjectId($id) public function setObjectId(int $id)
APF\extensions\postbox\biz\Message
public function __construct($objectName = null) public function __construct(string $objectName = null)
APF\extensions\postbox\biz\MessageBase
public function __construct($objectName = null) public function __construct(string $objectName = null)
public function getProperty($name) public function getProperty(string $name)
public function setProperty($name, $value) public function setProperty(string $name, $value)
public function setProperties($properties = []) public function setProperties(array $properties = [])
public function deleteProperty($name) public function deleteProperty(string $name)
public function setObjectId($id) public function setObjectId(int $id)
APF\extensions\postbox\biz\MessageChannel
public function __construct($objectName = null) public function __construct(string $objectName = null)
APF\extensions\postbox\biz\MessageChannelBase
public function __construct($objectName = null) public function __construct(string $objectName = null)
public function getProperty($name) public function getProperty(string $name)
public function setProperty($name, $value) public function setProperty(string $name, $value)
public function setProperties($properties = []) public function setProperties(array $properties = [])
public function deleteProperty($name) public function deleteProperty(string $name)
public function setObjectId($id) public function setObjectId(int $id)
APF\extensions\postbox\biz\PostboxFolder
public function __construct($objectName = null) public function __construct(string $objectName = null)
APF\extensions\postbox\biz\PostboxFolderBase
public function __construct($objectName = null) public function __construct(string $objectName = null)
public function getProperty($name) public function getProperty(string $name)
public function setProperty($name, $value) public function setProperty(string $name, $value)
public function setProperties($properties = []) public function setProperties(array $properties = [])
public function deleteProperty($name) public function deleteProperty(string $name)
public function setObjectId($id) public function setObjectId(int $id)
APF\extensions\postbox\biz\RecipientList
public function __construct($objectName = null) public function __construct(string $objectName = null)
APF\extensions\postbox\biz\RecipientListBase
public function __construct($objectName = null) public function __construct(string $objectName = null)
public function getProperty($name) public function getProperty(string $name)
public function setProperty($name, $value) public function setProperty(string $name, $value)
public function setProperties($properties = []) public function setProperties(array $properties = [])
public function deleteProperty($name) public function deleteProperty(string $name)
public function setObjectId($id) public function setObjectId(int $id)
APF\modules\comments\data\ArticleCommentMapper
public function loadArticleCommentByID($commentId) public function loadArticleCommentByID(string $commentId)
APF\modules\contact\data\ContactMapper
public function loadRecipientById($id) public function loadRecipientById(string $id)
APF\modules\genericormapper\data\GenericDomainObject
public function __construct($objectName = null) public function __construct(string $objectName = null)
public function getProperty($name) public function getProperty(string $name)
public function setObjectId($id) public function setObjectId(int $id)
public function setProperty($name, $value) public function setProperty(string $name, $value)
public function setDataComponent(GenericORRelationMapper &$orm) public function setDataComponent(GenericORRelationMapper $orm)
public function loadRelatedObject($relationName, GenericCriterionObject $criterion = null) public function loadRelatedObject(string $relationName, GenericCriterionObject $criterion = null)
public function loadRelatedObjects($relationName, GenericCriterionObject $criterion = null) public function loadRelatedObjects(string $relationName, GenericCriterionObject $criterion = null)
public function createAssociation($relationName, GenericORMapperDataObject $targetObject) public function createAssociation(string $relationName, GenericORMapperDataObject $targetObject)
public function deleteAssociation($relationName, GenericORMapperDataObject $targetObject) public function deleteAssociation(string $relationName, GenericORMapperDataObject $targetObject)
public function deleteAssociations($relationName) public function deleteAssociations(string $relationName)
public function addRelatedObject($relationName, GenericORMapperDataObject &$object) public function addRelatedObject(string $relationName, GenericORMapperDataObject &$object)
public function setProperties($properties = []) public function setProperties(array $properties = [])
public function deleteProperty($name) public function deleteProperty(string $name)
APF\modules\genericormapper\data\tools\GenericORMapperDomainObjectGenerator
public function __construct($objectName = null) public function __construct(string $objectName = null)
public function getProperty($name) public function getProperty(string $name)
public function setProperty($name, $value) public function setProperty(string $name, $value)
public function setProperties($properties = []) public function setProperties(array $properties = [])
public function deleteProperty($name) public function deleteProperty(string $name)
public function setObjectId($id) public function setObjectId(int $id)
public function __construct($objectName = null) public function __construct(string $objectName = null)
APF\modules\usermanagement\biz\UmgtManager
public function setORMapper(GenericORRelationMapper &$orm) public function setORMapper(GenericORRelationMapper $orm)
APF\modules\usermanagement\biz\model\UmgtApplication
public function __construct($objectName = null) public function __construct(string $objectName = null)
APF\modules\usermanagement\biz\model\UmgtApplicationBase
public function __construct($objectName = null) public function __construct(string $objectName = null)
public function getProperty($name) public function getProperty(string $name)
public function setProperty($name, $value) public function setProperty(string $name, $value)
public function setProperties($properties = []) public function setProperties(array $properties = [])
public function deleteProperty($name) public function deleteProperty(string $name)
public function setObjectId($id) public function setObjectId(int $id)
APF\modules\usermanagement\biz\model\UmgtAuthToken
public function __construct($objectName = null) public function __construct(string $objectName = null)
APF\modules\usermanagement\biz\model\UmgtAuthTokenBase
public function __construct($objectName = null) public function __construct(string $objectName = null)
public function getProperty($name) public function getProperty(string $name)
public function setProperty($name, $value) public function setProperty(string $name, $value)
public function setProperties($properties = []) public function setProperties(array $properties = [])
public function deleteProperty($name) public function deleteProperty(string $name)
public function setObjectId($id) public function setObjectId(int $id)
APF\modules\usermanagement\biz\model\UmgtGroup
public function __construct($objectName = null) public function __construct(string $objectName = null)
APF\modules\usermanagement\biz\model\UmgtGroupBase
public function __construct($objectName = null) public function __construct(string $objectName = null)
public function getProperty($name) public function getProperty(string $name)
public function setProperty($name, $value) public function setProperty(string $name, $value)
public function setProperties($properties = []) public function setProperties(array $properties = [])
public function deleteProperty($name) public function deleteProperty(string $name)
public function setObjectId($id) public function setObjectId(int $id)
APF\modules\usermanagement\biz\model\UmgtPermission
public function __construct($objectName = null) public function __construct(string $objectName = null)
APF\modules\usermanagement\biz\model\UmgtPermissionBase
public function __construct($objectName = null) public function __construct(string $objectName = null)
public function getProperty($name) public function getProperty(string $name)
public function setProperty($name, $value) public function setProperty(string $name, $value)
public function setProperties($properties = []) public function setProperties(array $properties = [])
public function deleteProperty($name) public function deleteProperty(string $name)
public function setObjectId($id) public function setObjectId(int $id)
APF\modules\usermanagement\biz\model\UmgtRole
public function __construct($objectName = null) public function __construct(string $objectName = null)
APF\modules\usermanagement\biz\model\UmgtRoleBase
public function __construct($objectName = null) public function __construct(string $objectName = null)
public function getProperty($name) public function getProperty(string $name)
public function setProperty($name, $value) public function setProperty(string $name, $value)
public function setProperties($properties = []) public function setProperties(array $properties = [])
public function deleteProperty($name) public function deleteProperty(string $name)
public function setObjectId($id) public function setObjectId(int $id)
APF\modules\usermanagement\biz\model\UmgtUser
public function __construct($objectName = null) public function __construct(string $objectName = null)
APF\modules\usermanagement\biz\model\UmgtUserBase
public function __construct($objectName = null) public function __construct(string $objectName = null)
public function getProperty($name) public function getProperty(string $name)
public function setProperty($name, $value) public function setProperty(string $name, $value)
public function setProperties($properties = []) public function setProperties(array $properties = [])
public function deleteProperty($name) public function deleteProperty(string $name)
public function setObjectId($id) public function setObjectId(int $id)
APF\modules\usermanagement\biz\model\UmgtVisibilityDefinition
public function __construct($objectName = null) public function __construct(string $objectName = null)
APF\modules\usermanagement\biz\model\UmgtVisibilityDefinitionBase
public function __construct($objectName = null) public function __construct(string $objectName = null)
public function getProperty($name) public function getProperty(string $name)
public function setProperty($name, $value) public function setProperty(string $name, $value)
public function setProperties($properties = []) public function setProperties(array $properties = [])
public function deleteProperty($name) public function deleteProperty(string $name)
public function setObjectId($id) public function setObjectId(int $id)
APF\modules\usermanagement\biz\model\UmgtVisibilityDefinitionType
public function __construct($objectName = null) public function __construct(string $objectName = null)
APF\modules\usermanagement\biz\model\UmgtVisibilityDefinitionTypeBase
public function __construct($objectName = null) public function __construct(string $objectName = null)
public function getProperty($name) public function getProperty(string $name)
public function setProperty($name, $value) public function setProperty(string $name, $value)
public function setProperties($properties = []) public function setProperties(array $properties = [])
public function deleteProperty($name) public function deleteProperty(string $name)
public function setObjectId($id) public function setObjectId(int $id)
APF\modules\usermanagement\pres\condition\UmgtGroupCondition
public function matches($conditionKey, UmgtUser $user = null) public function matches(string $conditionKey, UmgtUser $user = null)
APF\modules\usermanagement\pres\condition\UmgtLoggedInCondition
public function matches($conditionKey, UmgtUser $user = null) public function matches(string $conditionKey, UmgtUser $user = null)
APF\modules\usermanagement\pres\condition\UmgtLoggedOutCondition
public function matches($conditionKey, UmgtUser $user = null) public function matches(string $conditionKey, UmgtUser $user = null)
APF\modules\usermanagement\pres\condition\UmgtNotPermissionCondition
public function matches($conditionKey, UmgtUser $user = null) public function matches(string $conditionKey, UmgtUser $user = null)
APF\modules\usermanagement\pres\condition\UmgtNotRoleCondition
public function matches($conditionKey, UmgtUser $user = null) public function matches(string $conditionKey, UmgtUser $user = null)
APF\modules\usermanagement\pres\condition\UmgtPermissionCondition
public function matches($conditionKey, UmgtUser $user = null) public function matches(string $conditionKey, UmgtUser $user = null)
APF\modules\usermanagement\pres\condition\UmgtRoleCondition
public function matches($conditionKey, UmgtUser $user = null) public function matches(string $conditionKey, UmgtUser $user = null)
APF\modules\usermanagement\pres\condition\UserDependentContentConditionSet
public function &addCondition(UserDependentContentCondition $condition) public function addCondition(UserDependentContentCondition $condition)
APF\modules\usermanagement\pres\documentcontroller\UmgtBaseController
protected function generateLink($linkParams, $baseURL = null) protected function generateLink(array $linkParams = [], $baseURL = null)
protected function &getIcon(TemplateTag $template) protected function getIcon(TemplateTag $template)
APF\modules\usermanagement\pres\documentcontroller\login\LoginController
public function createAutoLogin($user) public function createAutoLogin(UmgtUser $user)
APF\tests\suites\core\frontcontroller\FakeIniProvider
public function loadConfiguration($namespace, $context, $language, $environment, $name) public function loadConfiguration(string $namespace, string $context = null, string $language = null, string $environment = null, string $name)
APF\tests\suites\core\logging\RecordingLogWriter
public function setTarget($target) public function setTarget(string $target)
APF\tests\suites\tools\form\taglib\ButtonTagTest
protected function &getForm($method) protected function getForm($method)
APF\tests\suites\tools\form\taglib\CheckBoxTagTest
protected function &getFormWithCheckBox($name, $value, $checked) protected function getFormWithCheckBox($name, $value, $checked)
APF\tests\suites\tools\form\taglib\ImageButtonTagTest
protected function &getForm($method) protected function getForm($method)
APF\tests\suites\tools\link\MultipleMappedActionsTestableLinkScheme
public function addAction(AbstractFrontcontrollerAction $action) public function addAction(AbstractFrontControllerAction $action)
APF\tools\cache\CacheManagerFabric
public function &getCacheManager($configSection) public function getCacheManager($configSection)
APF\tools\cache\key\AdvancedCacheKey
public function __construct($cacheKey, $cacheSubKey, $ttl = null) public function __construct(string $cacheKey = null, string $cacheSubKey = null, $ttl = null)
APF\tools\cache\key\SimpleCacheKey
public function __construct($cacheKey, $ttl = null) public function __construct(string $cacheKey = null, $ttl = null)
APF\tools\form\mixin\AddSelectBoxEntry
protected function &addEntry(DomNode $tag) protected function addEntry(DomNode $tag)
APF\tools\form\mixin\FormControlFinder
public function &getFormElementByID($id) public function getFormElementByID(string $id)
public function &getMarker($markerName) public function getMarker(string $markerName)
public function &getFormElementByName($name) public function getFormElementByName(string $name)
public function &getLabel($name) public function getLabel(string $name)
public function &getFormElementsByName($name) public function getFormElementsByName(string $name)
public function &getFormElementsByTagName($tagName) public function getFormElementsByTagName(string $tagName)
APF\tools\form\provider\csrf\EncryptedSIDHashProvider
public function generateHash($salt) public function generateHash(string $salt)
APF\tools\form\taglib\AbstractFormControl
public function &setValue($value) public function setValue($value)
public function &addAttributeToWhiteList($name) public function addAttributeToWhiteList(string $name)
public function &addAttributesToWhiteList(array $names) public function addAttributesToWhiteList(array $names)
public function &appendCssClass($class) public function appendCssClass(string $class)
APF\tools\form\taglib\DateSelectorTag
public function &setValue($value) public function setValue($value)
APF\tools\form\taglib\DynamicFormElementMarkerTag
public function &addContentBefore($content) public function addContentBefore(string $content)
public function &addContentAfter($content) public function addContentAfter(string $content)
APF\tools\form\taglib\Html5DateFieldTag
public function &setValue($value) public function setValue($value)
APF\tools\form\taglib\Html5DateTimeLocalFieldTag
public function &setValue($value) public function setValue($value)
APF\tools\form\taglib\Html5MonthFieldTag
public function &setValue($value) public function setValue($value)
APF\tools\form\taglib\Html5TimeFieldTag
public function &setValue($value) public function setValue($value)
APF\tools\form\taglib\Html5WeekFieldTag
public function &setValue($value) public function setValue($value)
APF\tools\form\taglib\HtmlFormTag
public function &addFormElement($elementType, array $elementAttributes = []) public function addFormElement($elementType, array $elementAttributes = [])
protected function &createFormElement(DomNode &$parent, $elementType, array $elementAttributes = []) protected function createFormElement(DomNode $parent, $elementType, array $elementAttributes = [])
public function &addFormElementBeforeMarker($markerName, $elementType, array $elementAttributes = []) public function addFormElementBeforeMarker($markerName, $elementType, array $elementAttributes = [])
public function &addFormElementAfterMarker($markerName, $elementType, array $elementAttributes = []) public function addFormElementAfterMarker($markerName, $elementType, array $elementAttributes = [])
public function addAttributeToWhitelist($name) public function addAttributeToWhitelist(string $name)
public function fillModel(&$model, array $mapping = []) public function fillModel($model, array $mapping = [])
APF\tools\form\taglib\SelectBoxTag
protected function &getOrCreateGroup($groupLabel) protected function getOrCreateGroup($groupLabel)
public function &getGroup($label) public function getGroup($label)
public function &setValue($value) public function setValue($value)
APF\tools\form\taglib\TextAreaTag
public function &setValue($value) public function setValue($value)
APF\tools\form\taglib\TimeSelectorTag
public function &setValue($value) public function setValue($value)
APF\tools\html\taglib\GetIterator
public function getIterator($name) public function getIterator(string $name)
APF\tools\html\taglib\HtmlIteratorTag
public function fillDataContainer($data) public function fillDataContainer(array $data = [])
APF\tools\link\BasicLinkScheme
protected function getActionUrlRepresentation(AbstractFrontcontrollerAction $action, $urlRewriting) protected function getActionUrlRepresentation(AbstractFrontControllerAction $action, $urlRewriting)
APF\tools\link\DefaultLinkScheme
public function formatActionLink(Url $url, $namespace, $name, array $params = []) public function formatActionLink(Url $url, string $namespace, string $name, array $params = [])
APF\tools\link\RewriteLinkScheme
public function formatActionLink(Url $url, $namespace, $name, array $params = []) public function formatActionLink(Url $url, string $namespace, string $name, array $params = [])
APF\tools\link\Url
public function __construct($scheme, $host, $port, $path, array $query = [], $anchor = null) public function __construct(string $scheme = null, string $host = null, int $port = null, string $path = null, array $query = [], string $anchor = null)
public function &setScheme($scheme) public function setScheme(string $scheme = null)
public function &setHost($host) public function setHost(string $host = null)
public function &setPort($port) public function setPort(int $port = null)
public function &setPath($path) public function setPath(string $path = null)
public function &setQuery(array $query) public function setQuery(array $query = null)
public function &setAnchor($anchor) public function setAnchor(string $anchor = null)
public function getQueryParameter($name, $default = null) public function getQueryParameter(string $name, $default = null)
public function &mergeQuery(array $query) public function mergeQuery(array $query)
public function &setQueryParameter($name, $value) public function setQueryParameter(string $name, $value)
APF\tools\mail\MailAddress
public function __construct($name, $email) public function __construct(string $name = null, string $email = null)
APF\tools\mail\Message
public function __construct(MailAddress $sender, $subject, $content) public function __construct(MailAddress $sender, string $subject, string $content)
APF\tools\mail\MessageBuilder
public function createMessage($section, $subject, $content) public function createMessage(string $section, string $subject, string $content)
APF\tools\soap\ExtendedSoapClientService
public function executeRequest($action, $request, $oneWay = null) public function executeRequest(string $action, string $request, bool $oneWay = null)
public function setLocation($location) public function setLocation(string $location)
public function setWsdlUrl($wsdlUrl) public function setWsdlUrl(string $wsdlUrl)
public function setHttpAuthUsername($username) public function setHttpAuthUsername(string $username)
public function setHttpAuthPassword($password) public function setHttpAuthPassword(string $password)
public function setEncoding($encoding) public function setEncoding(string $encoding)
public function setCookie($name, $value) public function setCookie(string $name, string $value)
public function setProxyHost($host) public function setProxyHost(string $host)
public function setProxyPort($port) public function setProxyPort(string $port)
public function setProxyUsername($username) public function setProxyUsername(string $username)
public function setProxyPassword($password) public function setProxyPassword(string $password)
public function setUserAgent($userAgent) public function setUserAgent(string $userAgent)
APF\tools\soap\WsdlObjectMapping
public function __construct($wsdlType = null, $phpClassName = null) public function __construct(string $wsdlType = null, string $phpClassName = null)
public function setPhpClassName($phpClassName) public function setPhpClassName(string $phpClassName)
public function setWsdlType($wsdlType) public function setWsdlType(string $wsdlType)
APF\tools\string\StringEncryptor
public function getPasswordHash($password, $section = 'Standard') public function getPasswordHash(string $password, string $section = 'Standard')
APF\tools\validation\EMailValidator
public function __construct($rule = self::RULE_SIMPLE) public function __construct(string $rule = self::RULE_SIMPLE)
APF\tools\validation\NumberScopeValidator
public function __construct($minValue = null, $maxValue = null, $onlyIntegersAccepted = false, $includeLowerEnd = false, $includeUpperEnd = false) public function __construct(int $minValue = null, int $maxValue = null, bool $onlyIntegersAccepted = false, bool $includeLowerEnd = false, bool $includeUpperEnd = false)
APF\tools\validation\PhoneNumberValidator
public function __construct($rule = self::STANDARD) public function __construct(string $rule = self::STANDARD)
APF\tools\validation\TextLengthValidator
public function __construct($minLength, $maxLength, $mode = self::MODE_LAX) public function __construct(int $minLength, int $maxLength, $mode = self::MODE_LAX)

2.3. Generischer O/R Mapper mit eigenen Domänen-Objekten

Sofern Sie den Generischer O/R-Mapper mit eigenen Domänen-Objekten nutzen, generieren Sie bitte die Domänen-Objekte wie im Kapitel Objekt-Generierung beschrieben nochmals neu.

Dies ist insbesondere auch notwendig, wenn Sie vom Issue #337 betroffen sind.

2.4 Migration von mcyrpt nach OpenSSL

Bis einschließlich der Version 3.4 setzt das APF zur Verschlüsselung von Benutzer-Attributen im Modul Benutzer-Verwaltung auf das PHP-Modul mcrypt. Dieses ist ab PHP 7.2 nicht mehr verfügbar und von der bisher eingesetzten Verschlüsselungs-Methode (3DES/CBC) wird aus Sicherheitsgründen abgeraten.

Aus den genannten Gründen nutzt das APF 4 daher nun das PHP-Modul OpenSSL und die Verschlüsselungs-Methode AES 128Bit/CBC. Leider ist eine automatisierte Migration nicht möglich. Für das Update von APF 3.X auf die Version 4 ist daher eine manuelle, zweistufige Daten-Migration notwendig.

Zur Vorbereitung der Migration entschlüsseln Sie bitte alle Benutzer-Attribute und schreiben diese zurück in die Datenbank. Dies lässt sich mit folgendem Skript erledigen:

PHP-Code
use APF\core\service\DIServiceManager; use APF\modules\usermanagement\biz\model\UmgtUser; use APF\modules\usermanagement\biz\provider\UserFieldEncryptionProvider; use APF\modules\usermanagement\biz\UmgtManager; $context = '...'; $language = '...'; // Define fields to decrypt values during loading UserFieldEncryptionProvider::$encryptedFieldNames = [...]; /* @var $umgt UmgtManager */ $umgt = DIServiceManager::getServiceObject( 'APF\modules\usermanagement\biz', 'UmgtManager', $context, $language ); // Load all users and (implicitly) decrypt values. /* @var $users UmgtUser[] */ $users = $umgt->getORMapper()->loadObjectList('User'); // Save all users w/ unencrypted values UserFieldEncryptionProvider::$encryptedFieldNames = null; foreach ($users as $user) { $umgt->getORMapper()->saveObject($user); }

Im Anschluss an das Update auf Version 4 können Sie die entsprechenden Attribute mit folgendem Skript wieder verschlüsseln:

PHP-Code
use APF\core\service\DIServiceManager; use APF\modules\usermanagement\biz\model\UmgtUser; use APF\modules\usermanagement\biz\provider\UserFieldEncryptionProvider; use APF\modules\usermanagement\biz\UmgtManager; $context = '...'; $language = '...'; // Load all fields w/o decryption UserFieldEncryptionProvider::$encryptedFieldNames = null; /* @var $umgt UmgtManager */ $umgt = DIServiceManager::getServiceObject( 'APF\modules\usermanagement\biz', 'UmgtManager', $context, $language ); // Load all users /* @var $users UmgtUser[] */ $users = $umgt->getORMapper()->loadObjectList('User'); // Save all users w/ encrypted values UserFieldEncryptionProvider::$encryptedFieldNames = [...]; foreach ($users as $user) { $umgt->getORMapper()->saveObject($user); }

Die Liste der zu ver- und entschlüsselnden Attribute passen Sie bitte der Konfiguration Ihrer Applikation an.

Kommentare

Möchten Sie den Artikel eine Anmerkung hinzufügen, oder haben Sie ergänzende Hinweise? Dann können Sie diese hier einfügen. Die bereits verfassten Anmerkungen und Kommentare finden Sie in der untenstehenden Liste.
Für diesen Artikel liegen aktuell keine Kommentare vor.

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen finden Sie in den Datenschutzrichtlinien.