1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
<?php
namespace BEdita\Core\Filesystem;
use Cake\Core\App;
use Cake\Core\ObjectRegistry;
class ThumbnailRegistry extends ObjectRegistry
{
protected function _resolveClassName($class)
{
if (is_object($class)) {
return $class;
}
return App::className($class, 'Filesystem/Thumbnail', 'Generator');
}
protected function _throwMissingClassError($class, $plugin)
{
throw new \BadMethodCallException(sprintf('Thumbnail generator %s is not available.', $class));
}
protected function _create($class, $alias, $config)
{
$instance = null;
if (is_object($class)) {
$instance = $class;
}
unset($config['className']);
if (!isset($instance)) {
$instance = new $class($config);
}
if (!($instance instanceof ThumbnailGenerator)) {
throw new \RuntimeException(
sprintf('Thumbnail generators must use %s as a base class.', ThumbnailGenerator::class)
);
}
if (!$instance->initialize($config)) {
throw new \RuntimeException(
sprintf('Thumbnail generator %s is not properly configured.', get_class($instance))
);
}
return $instance;
}
}