public function diModelsMetadata()
{
$adapterMapping = array('apc' => 'Phalcon\\Mvc\\Model\\MetaData\\Apc', 'files' => 'Phalcon\\Mvc\\Model\\MetaData\\Files', 'memory' => 'Phalcon\\Mvc\\Model\\MetaData\\Memory', 'xcache' => 'Phalcon\\Mvc\\Model\\MetaData\\Xcache', 'memcache' => 'Phalcon\\Mvc\\Model\\MetaData\\Memcache', 'redis' => 'Phalcon\\Mvc\\Model\\MetaData\\Redis', 'wincache' => 'Phalcon\\Mvc\\Model\\MetaData\\Wincache');
$config = $this->getDI()->getConfig();
if (!$config->modelsMetadata->enable) {
return new \Phalcon\Mvc\Model\MetaData\Memory();
}
$adapterKey = $config->modelsMetadata->adapter;
$adapterKey = false === strpos($adapterKey, '\\') ? strtolower($adapterKey) : $adapterKey;
//Allow full class name as adapter name
$adapterClass = empty($adapterMapping[$adapterKey]) ? $adapterKey : $adapterMapping[$adapterKey];
if (!class_exists($adapterClass)) {
throw new Exception\RuntimeException(sprintf('No metadata adapter found by %s', $adapterClass));
}
return new $adapterClass($config->modelsMetadata->options->toArray());
}