/** * Add directories from configuration to Filesystem * * @param DirectoryList $directoryList * @return void */ public function configure(DirectoryList $directoryList) { foreach ($this->directories as $code => $directoryConfiguration) { if ($directoryList->isConfigured($code)) { $existingDirectoryConfiguration = $directoryList->getConfig($code); $directoryConfiguration = array_merge($directoryConfiguration, $existingDirectoryConfiguration); } $directoryList->setDirectory($code, $directoryConfiguration); } foreach ($this->protocols as $code => $protocolConfiguration) { $directoryList->addProtocol($code, $protocolConfiguration); } }
/** * Retrieve uri for given code * * @param string $code * @return string */ public function getUri($code) { $config = $this->directoryList->getConfig($code); return isset($config['uri']) ? $config['uri'] : ''; }
/** * Test for getting directory path from DirectoryList */ public function testGetDir() { $newRoot = __DIR__ . '/root'; $newMedia = __DIR__ . '/media'; $dir = new DirectoryList(__DIR__, array(AppFilesystem::ROOT_DIR => array('path' => $newRoot), AppFilesystem::MEDIA_DIR => array('path' => $newMedia), 'custom' => array('path' => 'test2'))); $this->assertEquals('test2', $dir->getDir('custom')); $this->assertEquals(str_replace('\\', '/', $newRoot), $dir->getConfig(AppFilesystem::ROOT_DIR)['path']); $this->assertEquals(str_replace('\\', '/', $newMedia), $dir->getConfig(AppFilesystem::MEDIA_DIR)['path']); }