Пример #1
0
 /**
  *
  * @param Resources $context
  * @return self
  */
 public static function generate(Resources $context)
 {
     $request = $context->getRequest();
     $config = $context->config('session');
     // Sets the cookie path (aka session namespace)
     $site = $config->value('site');
     $path = rtrim($request->getRoot(), '/') . '/';
     // Creates the save handler
     $key = trim($config->value('save_handler'));
     $pre = substr($key, 0, 1);
     if ($pre == '#') {
         $resource = trim(substr($key, 1));
         $handler = $context->get($resource);
     } elseif ($key) {
         if ($pre == '~') {
             $key = static::getDefaultNamespace() . '\\' . trim(substr($key, 1));
         }
         $handler = $context->create($key);
     } else {
         $handler = null;
     }
     if ($handler instanceof DbSaveHandler) {
         $handler->setSite($site)->setPath($path);
     }
     // Create the manager and registers the save handler
     $manager = new static();
     if ($handler) {
         $manager->registerSaveHandler($handler);
     }
     return $manager;
 }