public static function getObjectClass($type) { static $cache = array(); if (isset($cache[$type])) { return $cache[$type]; } switch ($type) { case 'list': _deprecated_argument(__METHOD__, '5.0', 'Use select instead.'); $type = 'select'; break; case 'image_list': _deprecated_argument(__METHOD__, '5.0', 'Use image_select instead.'); $type = 'image_select'; break; case 'array': _deprecated_argument(__METHOD__, '5.0', 'Use collection instead.'); $type = 'collection'; break; } $_type = Func::stringPascalCase($type); if (!(class_exists($class = '\\' . \Drone\Theme::getInstance()->class . '\\Options\\Option\\' . $_type) || class_exists($class = __CLASS__ . '\\' . $_type) || class_exists($class = $_type))) { throw new \Exception("Option {$type} type doesn't exists."); } $cache[$type] = $class; return $class; }