Exemplo n.º 1
1
 public function injectContainer()
 {
     $container = $this->slim->getContainer();
     // Register component on container
     // inject config
     $container["config_folder"] = $this->configFolder;
     $container["config"] = function (ContainerInterface $container) {
         $files = scandir($container["config_folder"]);
         $configs = [];
         foreach ($files as $item) {
             $path = $container["config_folder"] . "/" . $item;
             if (is_file($path)) {
                 $name = basename($path, ".php");
                 $configs[$name] = (include $path);
             }
         }
         return $configs;
     };
     // injection aura/session
     $container["session"] = function (ContainerInterface $container) {
         $session_factory = new SessionFactory();
         return $session_factory->newInstance($_COOKIE);
     };
     // injection twig-view template engine
     $container["view"] = function (ContainerInterface $container) {
         // get aura session add global to twig-view
         $session = $container["session"];
         $segment = $session->getSegment("login");
         // new instance twig-view
         $view = new \Slim\Views\Twig($container["config"]["twig"]["templates"], []);
         $view->getEnvironment()->addGlobal('login', $segment);
         // add extension slim
         $view->addExtension(new \Slim\Views\TwigExtension($container["router"], $container["request"]->getUri()));
         $view->addExtension(new \Twig_Extension_Debug());
         return $view;
     };
     // injection medoo database libary
     $container["medoo"] = function (ContainerInterface $container) {
         return new \medoo($container["config"]["medoo"]);
     };
     // ser xml resourcePath
     XMLService::setResourcePath($container->config["config"]["resource_path"] . "/resource/");
 }