/** * @test */ public function getRegisteredStreamWrappersReturnsRegisteredStreamWrappers() { $mockStreamWrapper1ClassName = get_class($this->mockStreamWrapper); $mockStreamWrapper2 = $this->getMock(\TYPO3\Flow\Resource\Streams\StreamWrapperInterface::class); $mockStreamWrapper2ClassName = get_class($mockStreamWrapper2); \TYPO3\Flow\Resource\Streams\StreamWrapperAdapter::registerStreamWrapper('mockScheme1', $mockStreamWrapper1ClassName); \TYPO3\Flow\Resource\Streams\StreamWrapperAdapter::registerStreamWrapper('mockScheme2', $mockStreamWrapper2ClassName); $registeredStreamWrappers = \TYPO3\Flow\Resource\Streams\StreamWrapperAdapter::getRegisteredStreamWrappers(); $this->assertSame($mockStreamWrapper1ClassName, $registeredStreamWrappers['mockScheme1']); $this->assertSame($mockStreamWrapper2ClassName, $registeredStreamWrappers['mockScheme2']); }
/** * Registers a Stream Wrapper Adapter for the resource:// scheme. * * @return void */ protected function initializeStreamWrapper() { $streamWrapperClassNames = static::getStreamWrapperImplementationClassNames($this->objectManager); foreach ($streamWrapperClassNames as $streamWrapperClassName) { $scheme = $streamWrapperClassName::getScheme(); if (in_array($scheme, stream_get_wrappers())) { stream_wrapper_unregister($scheme); } stream_wrapper_register($scheme, \TYPO3\Flow\Resource\Streams\StreamWrapperAdapter::class); StreamWrapperAdapter::registerStreamWrapper($scheme, $streamWrapperClassName); } }
/** * Check for implementations of TYPO3\Flow\Resource\Streams\StreamWrapperInterface and * register them. * * @return void */ public function initialize() { $streamWrapperClassNames = static::getStreamWrapperImplementationClassNames($this->objectManager); foreach ($streamWrapperClassNames as $streamWrapperClassName) { $scheme = $streamWrapperClassName::getScheme(); if (in_array($scheme, stream_get_wrappers())) { stream_wrapper_unregister($scheme); } stream_wrapper_register($scheme, '\\TYPO3\\Flow\\Resource\\Streams\\StreamWrapperAdapter'); \TYPO3\Flow\Resource\Streams\StreamWrapperAdapter::registerStreamWrapper($scheme, $streamWrapperClassName); } // For now this URI is hardcoded, but might be manageable in the future // if additional persistent resources storages are supported. $this->persistentResourcesStorageBaseUri = FLOW_PATH_DATA . 'Persistent/Resources/'; \TYPO3\Flow\Utility\Files::createDirectoryRecursively($this->persistentResourcesStorageBaseUri); $this->importedResources = new \SplObjectStorage(); }