public function register(\CentralApps\Base\Application $application)
 {
     $key = $this->key;
     $container = $application->getContainer();
     $container[$this->key] = $container->share(function ($c) {
         return \Symfony\Component\HttpFoundation\Request::createFromGlobals();
     });
 }
 public function register(\CentralApps\Base\Application $application)
 {
     $container = $application->getContainer();
     $key = $this->key;
     $settings = $container->getSettingFromNestedKey(array($key));
     $container[$this->key . '_provider_container'] = $container->share(function ($c) use($key, $settings) {
         $provider_container = new \CentralApps\Authentication\Providers\Container();
         $user_factory = $c->getFromNestedKey(explode(',', $settings['dependencies']['user_factory']));
         $user_gateway = $c->getFromNestedKey(explode(',', $settings['dependencies']['user_gateway']));
         if (true == $settings['providers']['username_password']['enabled']) {
             $username_password_provider = new \CentralApps\Authentication\Providers\UsernamePasswordProvider($c['request'], $user_factory, $user_gateway);
             $username_password_provider->setUsernameField($settings['providers']['username_password']['username_field']);
             $username_password_provider->setPasswordField($settings['providers']['username_password']['password_field']);
             $username_password_provider->setRememberField($settings['providers']['username_password']['remember_password_field']);
             $username_password_provider->setRememberFieldYesValue($settings['providers']['username_password']['remember_password_yes_value']);
             $provider_container->insert($username_password_provider, 0);
         }
         if (true == $settings['providers']['session']['enabled']) {
             $session_provider = new \CentralApps\Authentication\Providers\SessionProvider($c['request'], $user_factory, $user_gateway);
             $session_provider->setSessionName($settings['providers']['session']['name']);
             $provider_container->insert($session_provider, 10);
         }
         if (true == $settings['providers']['cookie']['enabled']) {
             // TODO: remember user isn't working
             $cookie_provider = new \CentralApps\Authentication\Providers\CookieProvider($c['request'], $user_factory, $user_gateway);
             $cookie_provider->setCookieNames(explode(',', $settings['providers']['cookie']['names']));
             $provider_container->insert($cookie_provider, 20);
         }
         if (true == $settings['providers']['api']['enabled']) {
             $api_provider = new \CentralApps\Authentication\Providers\APIProvider($c['request'], $user_factory, $user_gateway);
             $provider_container->insert($api_provider, 0);
         }
         return $provider_container;
     });
     $container[$this->key . '_settings'] = $container->share(function ($c) use($key, $settings) {
         $user_factory = $c->getFromNestedKey(explode(',', $settings['dependencies']['user_factory']));
         $user_gateway = $c->getFromNestedKey(explode(',', $settings['dependencies']['user_gateway']));
         $authentication_container = array('username_field' => $settings['providers']['username_password']['username_field'], 'password_field' => $settings['providers']['username_password']['password_field'], 'remember_password_field' => $settings['providers']['username_password']['remember_password_field'], 'remember_password_yes_value' => $settings['providers']['username_password']['remember_password_yes_value'], 'user_factory' => $user_factory, 'user_gateway' => $user_gateway, 'session_name' => $settings['providers']['session']['name'], 'cookie_names' => explode(',', $settings['providers']['cookie']['names']), 'session_processor' => null, 'cookie_processor' => null);
         return new \CentralApps\Authentication\DependencyInjectionSettingsProvider($authentication_container);
     });
     $container[$this->key . '_processor'] = $container->share(function ($c) use($key, $settings) {
         return new \CentralApps\Authentication\Processor($c[$key . '_settings'], $c[$key . '_provider_container']);
     });
     $this->registerInvokableFunctions($application);
 }
Пример #3
0
 public function register(\CentralApps\Base\Application $application)
 {
     $container = $application->getContainer();
     $key = $this->key;
     $type = $this->type;
     $container[$this->key . '_' . $type] = $container->share(function ($c) use($key, $type) {
         $settings = $c->getSettingFromNestedKey(array('databases', $key, $type));
         try {
             $password = is_array($settings['password']) ? '' : $settings['password'];
             $class = isset($settings['development_mode']) && true == $settings['development_mode'] ? '\\CentralApps\\Pdo\\Pdo' : '\\Pdo';
             $db = new $class("{$type}:host={$settings['host']};port={$settings['port']};dbname={$settings['database']}", $settings['user'], $password, array(\PDO::ATTR_PERSISTENT => true, \PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'", \PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true));
             $db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
             return $db;
         } catch (\PDOException $e) {
             echo $e->getMessage();
             exit;
         }
     });
 }
 public function register(\CentralApps\Base\Application $application)
 {
     $key = $this->key;
     $container = $application->getContainer();
     $container[$this->key] = $container->share(function ($c) use($key, $application) {
         // routing settings
         $routing_settings = $c->getSettingFromNestedKey($nested_key = array($key));
         $cache = isset($routing_settings['cache']) ? $routing_settings['cache'] : null;
         $locator = new \Symfony\Component\Config\FileLocator(array($application->getApplicationRootFolder()));
         $loader = new \Symfony\Component\Routing\Loader\YamlFileLoader($locator);
         $loader->load('routes.yml');
         $request = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';
         $request_method = isset($_POST) && isset($_POST['_method']) ? $_POST['_method'] : (isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : '');
         $request_context = new \Symfony\Component\Routing\RequestContext($request, $request_method, isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '');
         $router = new \Symfony\Component\Routing\Router(new \Symfony\Component\Routing\Loader\YamlFileLoader($locator), 'routes.yml', array('cache_dir' => $cache), $request_context);
         return $router;
     });
     $container[$this->key . '.url_generator'] = $container->share(function ($container) use($key) {
         return new \Symfony\Component\Routing\Generator\UrlGenerator($container[$key]->getRouteCollection(), new \Symfony\Component\Routing\RequestContext('', isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : ''));
     });
     $this->registerRouteFunction($application);
 }
Пример #5
0
 public function register(\CentralApps\Base\Application $application)
 {
     $container = $application->getContainer();
     $key = $this->key;
     $container[$this->key] = $container->share(function ($c) use($key) {
         $settings = $c->getSettingFromNestedKey($nested_key = array($key));
         $cache_settings = $settings['cache'];
         $loader = new \Twig_Loader_Filesystem($settings['path']);
         $twig_config = array('cache' => isset($cache_settings['enabled']) && true == $cache_settings['enabled'] ? isset($cache_settings['path']) ? $cache_settings['path'] : null : null);
         if (1 == $settings['debug']) {
             $twig_config['debug'] = true;
         }
         $twig = new \Twig_Environment($loader, $twig_config);
         $twig->addExtension(new \Twig_Extension_Debug());
         return $twig;
     });
     $container['template_variables'] = $container->share(function ($c) {
         return new \CentralApps\Base\Views\TemplateVariables();
     });
     $application->registerInvokableFunction('render', function ($template, $tags) use($application, $key) {
         return $application->getContainer()[$key]->render($template, $tags);
     });
     $application->registerInvokableFunction('getTemplateEngineAdapter', function () use($application, $key) {
         return new \CentralApps\Base\ServiceProviders\Twig\TwigTemplateEngineAdapter($application->getContainer()[$key]);
     });
     $container['template_engine_adapter'] = $container->share(function ($c) use($application) {
         return $application->getTemplateEngineAdapter();
     });
     $application->registerInvokableFunction('getView', function ($view_name = null, $template_name = null, $variables = null) use($application) {
         if (is_null($view_name)) {
             $view_class = "\\CentralApps\\Base\\Views\\BasicView";
         } else {
             $view_class = "\\CentralApps\\Base\\Views\\" . $view_name;
         }
         $view = new $view_class();
     });
 }