Beispiel #1
0
 /**
  * Create a new Irto\OAuth2Proxy\Server instance with $config
  * 
  * @param array $config
  * 
  * @return Irto\OAuth2Proxy\Server
  */
 public static function create(array $config)
 {
     $server = new static();
     isset($config['verbose']) && $server->setVerbose($config['verbose']);
     $server->singleton('config', function ($server) use($config) {
         return new Collection($config);
     });
     $server->bind('Irto\\OAuth2Proxy\\Server', function ($server) {
         return $server;
     });
     // Create main loop React\EventLoop based
     $server->singleton('React\\EventLoop\\LoopInterface', function ($server) {
         return React\EventLoop\Factory::create();
     });
     // DNS resolve, used for create async requests
     $server->singleton('React\\Dns\\Resolver\\Resolver', function ($server) {
         $dnsResolverFactory = new React\Dns\Resolver\Factory();
         return $dnsResolverFactory->createCached('8.8.8.8', $server['React\\EventLoop\\LoopInterface']);
         //Google DNS
     });
     // HTTP Client
     $server->singleton('React\\HttpClient\\Client', function ($server) {
         $factory = new React\HttpClient\Factory();
         return $factory->create($server['React\\EventLoop\\LoopInterface'], $server['React\\Dns\\Resolver\\Resolver']);
     });
     // Request handler to React\Http
     $server->singleton('React\\Socket\\Server', function ($server) {
         $socket = new React\Socket\Server($server['React\\EventLoop\\LoopInterface']);
         $socket->listen($server->get('port'));
         return $socket;
     });
     // HTTP server for handle requests
     $server->singleton('React\\Http\\Server', function ($server) {
         return new React\Http\Server($server['React\\Socket\\Server']);
     });
     // HTTP server for handle requests
     $server->singleton('SessionHandlerInterface', function ($server) {
         return $server->make('Irto\\OAuth2Proxy\\Session\\AsyncRedisSessionHandler', ['lifetime' => array_get($server['config']->all(), 'session.lifetime')]);
     });
     $server->bind('Illuminate\\Session\\Store', 'Irto\\OAuth2Proxy\\Session\\Store');
     $server->boot();
     return $server;
 }
Beispiel #2
0
 /**
  * Copies the directory to a new location
  * 
  * @param string $to
  * @return boolean
  */
 public function copy($to)
 {
     // Make destination directory
     $copy = new static($to);
     if (!$copy->make()) {
         return false;
     }
     // Loop through all subfiles and folders
     foreach ($this->content() as $item) {
         if (is_a($item, 'Folder')) {
             $dest = $to . DS . $item->name();
         } else {
             $dest = $to . DS . $item->filename();
         }
         if (!$item->copy($dest)) {
             return false;
         }
     }
     return $copy;
 }
Beispiel #3
0
 public function insert($path)
 {
     $view = new static($path);
     return $view->make($this->args);
 }
Beispiel #4
0
 public static function model($model, $groupName, $fields = null, $callback = null)
 {
     $instance = new static($model);
     $instance->groupName = $groupName;
     $instance->fields = $fields;
     if (is_callable($callback)) {
         call_user_func_array($callback, [$instance]);
     }
     return $instance->make();
 }