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; $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(); }); }
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); }
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); }