_extensions = $this->_setAvalibleExtensions(); if(in_array(self::EXT_NONE, $this->getAvalibleExtensions())) { throw new Verk_Image_Exception('No available extensions.'); } // lets check if adapter is set. If not we'll get one later if(isset($options['adapter'])) { $this->setDefaultAdapter('Verk_Image_Adapter_' . $options['adapter']); } // get the adapter. If no adapter set we'll get the default one for the extension $adapter = $this->getDefaultAdapter(); } public function setDefaultAdapter($adapter) { if(is_string($adapter)) { $this->_adapter = new $adapter; } return $this; } public function getDefaultAdapter() { if(null === $this->_adapter) { $adapter = $this->getAdapterName($this->_extensions[0]); $this->setDefaultAdapter('Verk_Image_Adapter_' . $adapter); } return $this; } /* get adapter based on int */ public function getAdapterName($int) { switch ($int) { case self::EXT_GD: return 'Gd'; break; case self::EXT_IM: return 'Imagick'; break; } } /* Checks what extensions is loaded and sets them */ protected function _setAvalibleExtensions() { $extensions = array(); if(extension_loaded('gd')) { $extensions[] = self::EXT_GD; } if(extension_loaded('imagick')) { $extensions[] = self::EXT_IM; } // check if an extension is found. If not add EXT_NONE if(count($extensions) < 1) { $extensions[] = self::EXT_NONE; } return $extensions; } /* Returns the avalible extensions */ public function getAvalibleExtensions() { return $this->_extensions; } /* Sets the options to a protected variable */ protected function _setOptions($options = array()) {} /* Returns an array with the options for verk_image */ public function getOptions() { return $this->_options; } }