public static function generateNew(Kernel $kernel, array &$options = array()) { $builder = new UserClosure([], ['$kernel']); $builder[] = '$cache = new UniversalCache(array());'; if (extension_loaded('apcu') && isset($options['APC'])) { $builder[] = new Statement(new MethodCall('$cache', 'addBackend', [new NewObject('UniversalCache\\ApcuCache', [$kernel->getApplicationID()])])); } if (extension_loaded('memcached') && isset($options['Memcached'])) { if (isset($options['Memcached']['PersistentId'])) { $builder[] = '$memcached = ' . new NewObject('Memcached', [$options['Memcached']['PersistentId']]) . ';'; } else { $builder[] = '$memcached = new Memcached;'; } if (isset($options['Memcached']['Servers'])) { foreach ($options['Memcached']['Servers'] as $server) { $builder[] = new Statement(new MethodCall('$memcached', 'addServer', $server)); } } $builder[] = new Statement(new MethodCall('$cache', 'addBackend', ['$memcached'])); } if (isset($options['FileSystem'])) { $builder[] = new Statement(new MethodCall('$cache', 'addBackend', [new NewObject('UniversalCache\\FileSystemCache', [$kernel->getCacheDir()])])); } $builder[] = 'return $cache;'; $className = get_called_class(); return new NewObject($className, [$options, $builder]); }
public static function canonicalizeConfig(Kernel $kernel, array $options) { if (!isset($options['Default'])) { $options['Default'] = 'en'; } if (!isset($options['LocaleDir'])) { $options['LocaleDir'] = 'locale'; } if (!isset($options['Domain'])) { $options['Domain'] = $kernel->getApplicationID(); } if (!isset($options['Langs'])) { $options['Langs'] = ['en' => 'English']; } $options['LocaleDir'] = $kernel->rootDir . DIRECTORY_SEPARATOR . $options['LocaleDir']; return $options; }