<?php
+/**
+ * Part of phancap
+ *
+ * PHP version 5
+ *
+ * @category Tools
+ * @package Adapter_Cutycapt
+ * @author Christian Weiske <cweiske@cweiske.de>
+ * @copyright 2014 Christian Weiske
+ * @license http://www.gnu.org/licenses/agpl.html GNU AGPL v3
+ * @link http://cweiske.de/phancap.htm
+ */
namespace phancap;
+/**
+ * Screenshot rendering using the "cutycapt" command line tool.
+ *
+ * @category Tools
+ * @package Adapter_Cutycapt
+ * @author Christian Weiske <cweiske@cweiske.de>
+ * @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 Adapter_Cutycapt
{
+ /**
+ * Lock file handle
+ * @var resourece
+ */
protected $lockHdl;
+
+ /**
+ * Lock file path
+ * @var string
+ */
protected $lockFile = null;
/**
+ * Check if all dependencies are available.
+ *
* @return mixed TRUE if all is fine, array with error messages otherwise
*/
public function isAvailable()
return true;
}
+ /**
+ * Render a website screenshot
+ *
+ * @param Image $img Image configuration
+ * @param Options $options Screenshot configuration
+ *
+ * @return void
+ * @throws \Exception When something fails
+ */
public function render(Image $img, Options $options)
{
$format = $options->values['sformat'];
$this->resize($tmpPath, $img, $options);
}
+ /**
+ * Get a free X server number.
+ *
+ * Each xvfb-run process needs its own free server number.
+ * Needed for multiple parallel requests.
+ *
+ * @return integer Server number
+ */
protected function getServerNumber()
{
//clean stale lock files
return $num;
}
+ /**
+ * Unlock lock file and clean up old lock files
+ *
+ * @return void
+ */
public function cleanup()
{
if ($this->lockFile !== null && $this->lockHdl) {
}
}
- protected function resize($tmpPath, $img, $options)
+ /**
+ * Convert an image to the given size.
+ *
+ * Target file is the path of $img.
+ *
+ * @param string $tmpPath Path of image to be scaled.
+ * @param Image $img Image configuration
+ * @param Options $options Screenshot configuration
+ *
+ * @return void
+ */
+ protected function resize($tmpPath, Image $img, Options $options)
{
if ($options->values['sformat'] == 'pdf') {
//nothing to resize.
unlink($tmpPath);
}
+ /**
+ * Set phancap configuration
+ *
+ * @param Config $config Phancap configuration
+ *
+ * @return void
+ */
public function setConfig(Config $config)
{
$this->config = $config;