/** * @return Payone_Protocol_Filter_Interface[] */ protected function buildFiltersDefault() { $filterMaskValue = new Payone_Protocol_Filter_MaskValue(); $filterMaskValue->setConfigPercent(50); // @todo hs: This default value should be defined somewhere else, configuration?. $filters = array(0 => $filterMaskValue); return $filters; }
/** * @param array $protocolConfig * @param string $factoryKey * @return Payone_Protocol_Service_Protocol_Abstract */ protected function buildServiceProtocol(array $protocolConfig, $factoryKey) { $serviceProtocol = $this->getFactory($factoryKey)->buildServiceProtocolRequest(); $serviceApplyFilters = $this->getFactory(self::KEY_PROTOCOL)->buildServiceApplyFilters(); // Load filters by config: if (array_key_exists('filter', $protocolConfig)) { foreach ($protocolConfig['filter'] as $key => $options) { if ($options['enabled'] === TRUE || $options['enabled'] === 1) { // @todo hs: un-elegant, kann man das hier ohne switch machen? switch ($key) { case Payone_Protocol_Filter_MaskValue::FILTER_KEY: $filterMaskValue = new Payone_Protocol_Filter_MaskValue(); $filterMaskValue->setConfig('percent', $options['percent']); $serviceApplyFilters->addFilter($filterMaskValue); break; case Payone_Protocol_Filter_MaskAllValue::FILTER_KEY: $filterMaskAllValue = new Payone_Protocol_Filter_MaskAllValue(); $serviceApplyFilters->addFilter($filterMaskAllValue); break; } } } } $serviceProtocol->setServiceApplyFilters($serviceApplyFilters); if (array_key_exists('loggers', $protocolConfig)) { $loggerConfig = $protocolConfig['loggers']; if (is_array($loggerConfig) and count($loggerConfig) > 0) { foreach ($loggerConfig as $className => $options) { if (class_exists($className)) { /** @var $logger Payone_Protocol_Logger_Interface * */ $logger = new $className(); if (method_exists($logger, 'setConfig')) { $logger->setConfig($options); } $serviceProtocol->addLogger($logger); } } } } // @todo hs: repository section, for now as a separate array, could this be combined with the loggers? if (array_key_exists('repositories', $protocolConfig)) { $respositoryConfig = $protocolConfig['repositories']; if (is_array($respositoryConfig) and count($respositoryConfig) > 0) { foreach ($respositoryConfig as $className => $options) { if (class_exists($className)) { // @todo hs: what do we do with Payone_Api_Persistence_Interface? /** @var $repository Payone_TransactionStatus_Persistence_Interface * */ $repository = new $className(); if (method_exists($repository, 'setConfig')) { $repository->setConfig($options); } $serviceProtocol->addRepository($repository); } } } } return $serviceProtocol; }