Cheetah
AbstractDriver.php
Go to the documentation of this file.
1 <?php
2 
3 namespace Intervention\Image;
4 
5 abstract class AbstractDriver
6 {
12  public $decoder;
13 
19  public $encoder;
20 
29  abstract public function newImage($width, $height, $background);
30 
37  abstract public function parseColor($value);
38 
44  abstract protected function coreAvailable();
45 
51  public function cloneCore($core)
52  {
53  return clone $core;
54  }
55 
62  public function init($data)
63  {
64  return $this->decoder->init($data);
65  }
66 
75  public function encode($image, $format, $quality)
76  {
77  return $this->encoder->process($image, $format, $quality);
78  }
79 
88  public function executeCommand($image, $name, $arguments)
89  {
90  $commandName = $this->getCommandClassName($name);
91  $command = new $commandName($arguments);
92  $command->execute($image);
93 
94  return $command;
95  }
96 
103  private function getCommandClassName($name)
104  {
105  $drivername = $this->getDriverName();
106  $classnameLocal = sprintf('\Intervention\Image\%s\Commands\%sCommand', $drivername, ucfirst($name));
107  $classnameGlobal = sprintf('\Intervention\Image\Commands\%sCommand', ucfirst($name));
108 
109  if (class_exists($classnameLocal)) {
110  return $classnameLocal;
111  } elseif (class_exists($classnameGlobal)) {
112  return $classnameGlobal;
113  }
114 
115  throw new \Intervention\Image\Exception\NotSupportedException(
116  "Command ({$name}) is not available for driver ({$drivername})."
117  );
118  }
119 
125  public function getDriverName()
126  {
127  $reflect = new \ReflectionClass($this);
128  $namespace = $reflect->getNamespaceName();
129 
130  return substr(strrchr($namespace, "\\"), 1);
131  }
132 }
Intervention\Image\AbstractDriver\executeCommand
executeCommand($image, $name, $arguments)
Definition: AbstractDriver.php:88
Intervention\Image\AbstractDriver\coreAvailable
coreAvailable()
Intervention\Image\AbstractDriver\init
init($data)
Definition: AbstractDriver.php:62
php
Intervention\Image\AbstractDriver\newImage
newImage($width, $height, $background)
Intervention\Image\AbstractDriver\getDriverName
getDriverName()
Definition: AbstractDriver.php:125
Intervention\Image\AbstractDriver\cloneCore
cloneCore($core)
Definition: AbstractDriver.php:51
Intervention\Image\AbstractDriver\parseColor
parseColor($value)
Intervention\Image\AbstractDriver\encode
encode($image, $format, $quality)
Definition: AbstractDriver.php:75
Intervention\Image\AbstractDriver
Definition: AbstractDriver.php:6
Intervention\Image\AbstractDriver\$decoder
$decoder
Definition: AbstractDriver.php:12
Intervention\Image\AbstractDriver\$encoder
$encoder
Definition: AbstractDriver.php:19
Intervention\Image
Definition: AbstractColor.php:3