public function __construct($config = array())
 {
     parent::__construct($config);
     if (!$this->_cache || $this->_cache === TRUE) {
         $this->_cache = CachePlugin::init();
     }
 }
 /**
  * Get Form from Cache!
  *
  * @param string $form
  * @param AbstractModel|array $values
  * @return AbstractForm
  */
 public static function get($form = '', $values = null)
 {
     if (empty($form)) {
         return null;
     }
     $cache = CachePlugin::init('Core', is_null($values) ? null : 7200);
     $name = 'form_' . $form;
     if (!is_null($values)) {
         $name .= '_' . md5(print_r($values, true));
     }
     if (isset(self::$_forms[$name])) {
         return self::$_forms[$name];
     } else {
         if (($object = $cache->load($name)) === false) {
             $class = ucwords(preg_replace('/(_|\\-)/', ' ', $form));
             $class = str_replace(' ', '', $class) . 'Form';
             $object = new $class($values);
             $cache->save($object, $name);
         }
     }
     self::$_forms[$name] = $object;
     return self::$_forms[$name];
 }