X-Git-Url: https://git.cweiske.de/phancap.git/blobdiff_plain/d7074b4fa5043358df3aed0e3cc421aeb060517f..df5d413091c6481259fbadda6afa5895c17d9988:/src/phancap/Repository.php diff --git a/src/phancap/Repository.php b/src/phancap/Repository.php index 157a062..9e7ad32 100644 --- a/src/phancap/Repository.php +++ b/src/phancap/Repository.php @@ -1,13 +1,41 @@ + * @copyright 2014 Christian Weiske + * @license http://www.gnu.org/licenses/agpl.html GNU AGPL v3 + * @link http://cweiske.de/phancap.htm + */ namespace phancap; +/** + * Repository of existing screenshots + * + * @category Tools + * @package Repository + * @author Christian Weiske + * @copyright 2014 Christian Weiske + * @license http://www.gnu.org/licenses/agpl.html GNU AGPL v3 + * @version Release: @package_version@ + * @link http://cweiske.de/phancap.htm + */ class Repository { - public function setConfig(Config $config) - { - $this->config = $config; - } - + /** + * Return image object for the given rendering options. + * Loads it from cache if possible. + * If cache is expired or image does not yet exist, + * it will be rendered. + * + * @param Options $options Image rendering options + * + * @return Image Image object + */ public function getImage(Options $options) { $name = $this->getFilename($options); @@ -19,6 +47,13 @@ class Repository return $img; } + /** + * Get the cache image filename for the given rendering options + * + * @param Options $options Image rendering options + * + * @return string relative file name for the image + */ public function getFilename(Options $options) { $optValues = $options->values; @@ -35,6 +70,9 @@ class Repository /** * Check if the image is available locally. * + * @param Image $img Image object to render (contains name) + * @param Options $options Image rendering options + * * @return boolean True if we have it and it's within the cache lifetime, * false if the cache expired or the screenshot does not * exist. @@ -53,10 +91,38 @@ class Repository return true; } + /** + * Render a website screenshot + * + * @param Image $img Image object to render (contains name) + * @param Options $options Image rendering options + * + * @return void + * @throws \Exception When something goes wrong + */ protected function render(Image $img, Options $options) { $adapter = new Adapter_Cutycapt(); - $adapter->render($img, $options); + $adapter->setConfig($this->config); + try { + $adapter->render($img, $options); + $adapter->cleanup(); + } catch (\Exception $e) { + $adapter->cleanup(); + throw $e; + } + } + + /** + * Set phancap configuration + * + * @param Config $config Phancap configuration + * + * @return void + */ + public function setConfig(Config $config) + { + $this->config = $config; } } ?>