Example #1
0
 /**
  * Returns backend object by name
  *
  * @param string $backendName
  *
  * @return Backend
  *
  * @throws \InvalidArgumentException
  * @throws CKFinderException
  */
 public function getBackend($backendName)
 {
     if (isset($this->backends[$backendName])) {
         return $this->backends[$backendName];
     }
     $backendConfig = $this->config->getBackendNode($backendName);
     $adapterName = $backendConfig['adapter'];
     if (!isset($this->registeredAdapters[$adapterName])) {
         throw new \InvalidArgumentException(sprintf('Backends adapter "%s" not found. Please check configuration file.', $adapterName));
     }
     if (!is_callable($this->registeredAdapters[$adapterName])) {
         throw new \InvalidArgumentException(sprintf('Backend instantiation callback for adapter "%s" is not a callable.', $adapterName));
     }
     $backend = call_user_func($this->registeredAdapters[$adapterName], $backendConfig);
     if (!$backend instanceof Backend) {
         throw new CKFinderException(sprintf('The instantiation callback for adapter "%s" didn\'t return a valid Backend object.', $adapterName));
     }
     $this->backends[$backendName] = $backend;
     return $backend;
 }