/** * Teardown */ public function setup() { $providers = Core::getRegisteredFlexFormProviders(); if (TRUE === in_array('FluidTYPO3\\Flux\\Service\\FluxService', $providers)) { Core::unregisterConfigurationProvider('FluidTYPO3\\Flux\\Service\\FluxService'); } }
/** * @test */ public function canUnregisterNotCurrentlyRegisteredProviders() { $fakeClass = 'MyFakeClass'; Core::unregisterConfigurationProvider($fakeClass); core::registerConfigurationProvider($fakeClass); $this->assertNotContains($fakeClass, Core::getRegisteredFlexFormProviders()); }
/** * Resolves a ConfigurationProvider which can provide a working FlexForm * configuration based on the given parameters. * * @param string $table * @param string $fieldName * @param array $row * @param string $extensionKey * @throws \RuntimeException * @return ProviderInterface[] */ public function resolveConfigurationProviders($table, $fieldName, array $row = NULL, $extensionKey = NULL) { $row = FALSE === is_array($row) ? array() : $row; $providers = Core::getRegisteredFlexFormProviders(); $typoScriptConfigurationProviders = $this->loadTypoScriptConfigurationProviderInstances(); $providers = array_merge($providers, $typoScriptConfigurationProviders); $prioritizedProviders = array(); foreach ($providers as $providerClassNameOrInstance) { if (TRUE === is_object($providerClassNameOrInstance)) { $provider =& $providerClassNameOrInstance; } else { $provider = $this->objectManager->get($providerClassNameOrInstance); } if (FALSE === in_array('FluidTYPO3\\Flux\\Provider\\ProviderInterface', class_implements($providerClassNameOrInstance))) { throw new \RuntimeException(is_object($providerClassNameOrInstance) ? get_class($providerClassNameOrInstance) : $providerClassNameOrInstance . ' must implement ProviderInterfaces from Flux/Provider', 1327173536); } if (TRUE === $provider->trigger($row, $table, $fieldName, $extensionKey)) { $priority = $provider->getPriority($row); if (FALSE === is_array($prioritizedProviders[$priority])) { $prioritizedProviders[$priority] = array(); } $prioritizedProviders[$priority][] = $provider; } } ksort($prioritizedProviders); $providersToReturn = array(); foreach ($prioritizedProviders as $providerSet) { foreach ($providerSet as $provider) { array_push($providersToReturn, $provider); } } return $providersToReturn; }
/** * @return array */ protected function loadCoreRegisteredProviders() { return Core::getRegisteredFlexFormProviders(); }