Exemple #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/");
 }
<?php

// Fetch DI Container
$container = $app->getContainer();
// Register Twig View helper
$container['view'] = function ($c) {
    $view = new \Slim\Views\Twig(__DIR__ . '/../templates/', ['debug' => true]);
    // Instantiate and add Slim specific extension
    $view->addExtension(new Slim\Views\TwigExtension($c['router'], $c['request']->getUri()));
    $view->addExtension(new Twig_Extension_Debug());
    $view->addExtension(new App\Utilities\TwigExtension($c['flash']));
    $view->getEnvironment()->addGlobal('menu', require __DIR__ . '/menu.php');
    $view->getEnvironment()->addGlobal('messages', $c->flash->getMessages());
    $view->getEnvironment()->addGlobal('identity', $c->get('authenticator')->getIdentity());
    $view->getEnvironment()->addGlobal('base_url', $c->base_url);
    return $view;
};
// flash message
$container['flash'] = function () {
    return new \Slim\Flash\Messages();
};
//Add Global variables in twig
//$twig_environment = $container['view']->getEnvironment();
$container['errorHandler'] = function ($c) use($app) {
    return function ($request, $response, $exception) use($c) {
        //var_dump(get_class($exception));
        $status = 403;
        $message = '';
        switch (get_class($exception)) {
            case 'Illuminate\\Database\\QueryException':
                $status = 500;
Exemple #3
0
<?php

// DIC configuration
$container = $app->getContainer();
// -----------------------------------------------------------------------------
// Service providers
// -----------------------------------------------------------------------------
// Twig
$view = new \Slim\Views\Twig($app->settings['view']['template_path'], $app->settings['view']['twig']);
$view->addExtension(new Twig_Extension_Debug());
$view->addExtension(new \Slim\Views\TwigExtension($app->router, $app->request->getUri()));
/** @var \Twig_Environment $env */
$env = $view->getEnvironment();
foreach ($app->settings['view']['globals'] as $global => $value) {
    $env->addGlobal($global, $value);
}
$container->register($view);
// Flash messages
$container->register(new \Slim\Flash\Messages());
// -----------------------------------------------------------------------------
// Service factories
// -----------------------------------------------------------------------------
// monolog
$container['logger'] = function ($c) {
    $settings = $c['settings']['logger'];
    $logger = new \Monolog\Logger($settings['name']);
    $logger->pushProcessor(new \Monolog\Processor\UidProcessor());
    $logger->pushHandler(new \Monolog\Handler\StreamHandler($settings['path'], \Monolog\Logger::DEBUG));
    return $logger;
};
// -----------------------------------------------------------------------------
Exemple #4
0
use App\Core;
use App\Core\Catalog;
// Core::$app = $app;
// DIC configuration
$container = $app->getContainer();
// -----------------------------------------------------------------------------
// Service providers
// -----------------------------------------------------------------------------
// Twig
$container['view'] = function ($c) {
    $settings = $c->get('settings');
    $view = new \Slim\Views\Twig($settings['view']['template_path'], $settings['view']['twig']);
    // Add extensions
    $view->addExtension(new Slim\Views\TwigExtension($c->get('router'), $c->get('request')->getUri()));
    $view->addExtension(new Twig_Extension_Debug());
    $view->getEnvironment()->addFunction(new Twig_SimpleFunction('get_title', function ($catalog_id) {
        return Catalog::get_title($catalog_id);
    }));
    $view->getEnvironment()->addFilter(new Twig_SimpleFilter('plural', function ($endings, $number) {
        $cases = [2, 0, 1, 1, 1, 2];
        $n = $number;
        return sprintf($endings[$n % 100 > 4 && $n % 100 < 20 ? 2 : $cases[min($n % 10, 5)]], $n);
    }));
    return $view;
};
// Flash messages
$container['flash'] = function ($c) {
    return new \Slim\Flash\Messages();
};
// -----------------------------------------------------------------------------
// Service factories
Exemple #5
0
$container['auth'] = function ($container) {
    return new \Glued\Classes\Auth\Auth($container);
};
// view renderer using the twig template engine
$container['view'] = function ($container) {
    // define $view, set the path to the twig templates, turn off caching for development
    $view = new \Slim\Views\Twig(__DIR__ . '/Views', ['cache' => false]);
    // allow to generate different urls to our views
    $view->addExtension(new \Slim\Views\TwigExtension($container->router, $container->request->getUri()));
    // this is here so that we can use (i.e. see views/templates/partials/navigation.twig)
    // {{ auth.check }}, as set in classes/Auth/Auth.php, inside our templates.
    // NOTE: $container['auth'] closure must be before this view closure.
    // NOTE: we cant use $view->getEnvironment()->addGlobal('auth', $container->auth);
    //       as this would do a sql query everytime we access the global
    // TODO: possibly change this into middleware later?
    $view->getEnvironment()->addGlobal('auth', ['check' => $container->auth->check(), 'user' => $container->auth->user()]);
    $view->getEnvironment()->addGlobal('flash', $container->flash);
    return $view;
};
// database (pure mysqli)
$container['mysqli'] = function ($container) {
    $db = $container['settings']['db'];
    $mysqli = new mysqli($db['host'], $db['username'], $db['password'], $db['database']);
    $mysqli->set_charset($db['charset']);
    $mysqli->query("SET collation_connection = " . $db['collation']);
    return $mysqli;
};
// database (joshcam/PHP-MySQLi-Database-Class)
$container['db'] = function ($container) {
    $mysqli = $container->get('mysqli');
    $db = new \MysqliDb($mysqli);
Exemple #6
0
// -----------------------------------------------------------------------------
// Service providers
// -----------------------------------------------------------------------------
// Twig
$container['view'] = function ($c) {
    $settings = $c->get('settings');
    $view = new \Slim\Views\Twig($settings['view']['template_path'], $settings['view']['twig']);
    // Add extensions
    $view->addExtension(new Slim\Views\TwigExtension($c->get('router'), $c->get('request')->getUri()));
    $view->addExtension(new Twig_Extension_Debug());
    $view->addExtension(new \App\Libs\TwigExtension());
    $categories = $c->get('redis')->get('category');
    if ($categories) {
        $categories = json_decode($categories);
    }
    $view->getEnvironment()->addGlobal('__cates', $categories);
    return $view;
};
$container['redis'] = function ($c) {
    $redis = new Redis();
    $redis->connect('127.0.0.1', 6379);
    $cate = $c->get('em')->getRepository('App\\Model\\Categories')->findBy([], ['id' => 'ASC']);
    foreach ($cate as $item) {
        $categories[] = ['id' => $item->getId(), 'title' => $item->getTitle(), 'slug' => $item->getSlug(), 'is_Parent' => $item->getIsParent(), 'parent' => $item->getParent()];
    }
    $redis->delete('category');
    $redis->set('category', json_encode($categories));
    return $redis;
};
// Flash messages
$container['flash'] = function ($c) {
Exemple #7
0
};
$container["mailchimp"] = function ($container) {
    return new MailChimp\MailChimp();
};
// Twig as template engine
$container['view'] = function ($container) {
    $view = new \Slim\Views\Twig('app/views', ['cache' => false]);
    $view->addExtension(new \Slim\Views\TwigExtension($container['router'], $container['request']->getUri()));
    function compare_date($a, $b)
    {
        return strcmp($a['date'], $b['date']);
    }
    $eventsSort = $container["events"];
    // sort alphabetically by name
    uasort($eventsSort, 'compare_date');
    $view->getEnvironment()->addGlobal('menu', $container["menu"]->getMenu());
    $view->getEnvironment()->addGlobal('events', $eventsSort);
    // print_r($eventsSort);
    return $view;
};
// Go ahead and get the mailchimp groups to display
$container['mailChimpGroups'] = function ($container) {
    // We know the list id and the categiry id so lets use it
    return $container['mailchimp']->request("GET", "/lists/bc9233b42a/interest-categories/35d7d5aa39/interests");
};
//Override the default Not Found Handler
$container['notFoundHandler'] = function ($container) {
    return function ($request, $response) use($container) {
        return $container['view']->render($response, '404.twig', []);
    };
};
Exemple #8
0
    return $c['response']->withStatus(500)
      ->withHeader('Content-Type', 'text/html')
      ->write('Something went wrong!');
  };
};*/
/**
 * Register Twig View Helper with some view configs
 *
 * @return \Twig
 */
$c['view'] = function ($c) {
    $view = new \Slim\Views\Twig(__DIR__ . '/views', ['cache' => false]);
    // Instantiate and add Slim specific extension
    $view->addExtension(new \Slim\Views\TwigExtension($c['router'], $c['request']->getUri()));
    $view->addExtension(new \Katanium\Extensions\MyTwigExtension());
    $twig = $view->getEnvironment();
    // Configure view lexer
    $lexer = new Twig_Lexer($twig, array('tag_comment' => array('{#', '#}'), 'tag_block' => array('{%', '%}'), 'tag_variable' => array('{{$', '}}'), 'interpolation' => array('#{', '}')));
    $twig->setLexer($lexer);
    return $view;
};
/**
 * Register Hash library
 *
 * @return \Hash
 */
$c['hash'] = function ($c) {
    return new Hash($c->get('myConfig'));
};
/**
 * Register RandomLib library
Exemple #9
0
        $translator->addResource('yaml', $f, $lingua);
    }
    return $translator;
};
// Twig
$container['view'] = function ($c) {
    $config = $c->get('config');
    $settings = $c->get('settings');
    $tema = $config['tema'];
    $view = new Slim\Views\Twig($settings['view']['template_path'] . DS . $tema, $settings['view']['twig']);
    // Add extensions
    $view->addExtension(new Slim\Views\TwigExtension($c->get('router'), $c->get('request')->getUri()));
    $view->addExtension(new Twig_Extension_Debug());
    $view->addExtension(new TranslationExtension($c->get('translator')));
    $config = $c->get('config');
    $view->getEnvironment()->addGlobal('config', $config);
    return $view;
};
// CSRF Guard
$container['csrf'] = function ($c) {
    $guard = new Slim\Csrf\Guard();
    $guard->setFailureCallable(function ($request, $response, $next) {
        $newResponse = $response->withHeader('Content-type', 'application/json');
        return $newResponse->write(json_encode(['status' => false, 'msg' => 'CSRF Failed. Reload page.']));
    });
    return $guard;
};
// -----------------------------------------------------------------------------
// Service factories
// -----------------------------------------------------------------------------
// monolog
Exemple #10
0
<?php

use Slim\Container;
$container['session'] = function (Container $c) {
    return new Pamit\Core\Storage\SessionStorage();
};
$container['flash'] = function (Container $c) {
    return new Slim\Flash\Messages();
};
$container['view'] = function (Container $c) use($settings) {
    $settings = $c->get('settings');
    $view = new \Slim\Views\Twig($settings['view']['template_path'], $settings['view']['twig']);
    $view->addExtension(new Slim\Views\TwigExtension($c->get('router'), $c->get('request')->getUri()));
    $view->getEnvironment()->addGlobal('flash', $c['flash']);
    $view->getEnvironment()->addGlobal('session', $c['session']->all());
    $view->addExtension(new Twig_Extension_Debug());
    return $view;
};
$container['db'] = function (Container $c) use($settings) {
    return new PDO('' . $settings['db']['driver'] . ':
        host=' . $settings['db']['host'] . ';
        dbname=' . $settings['db']['dbname'], $settings['db']['user'], $settings['db']['password']);
};
$container['logger'] = function (Container $c) use($settings) {
    $settings = $c->get('settings');
    $logger = new \Monolog\Logger($settings['logger']['name']);
    $logger->pushProcessor(new \Monolog\Processor\UidProcessor());
    $logger->pushHandler(new \Monolog\Handler\StreamHandler($settings['logger']['path'], \Monolog\Logger::DEBUG));
    return $logger;
};
$container['validator'] = function (Container $c) use($settings) {
    $guard->setFailureCallable(function ($request, $response, $next) {
        $request = $request->withAttribute("csrf_status", false);
        return $next($request, $response);
    });
    return $guard;
};
//Twig View
$container['view'] = function ($c) {
    $settings = $c->get('settings')['view'];
    $view = new \Slim\Views\Twig($settings['path'], ['cache' => false, 'debug' => true]);
    $view->addExtension(new Twig_Extension_Debug());
    $view->addExtension(new \Slim\Views\TwigExtension($c['router'], $c['request']->getUri()));
    $asset = new Twig_SimpleFunction('asset', function ($path) use($c) {
        return $c['request']->getUri()->getBaseUrl() . '/' . $path;
    });
    $view->getEnvironment()->addFunction($asset);
    return $view;
};
//validator
$container['validator'] = function ($c) {
    $request = $c->get('request')->getParsedBody();
    return new Valitron\Validator($request);
};
//Flash
$container['flash'] = function () {
    return new \Slim\Flash\Messages();
};
//Auth
$container['auth'] = function ($c) {
    return new App\Auth\Auth();
};
// -----------------------------------------------------------------------------
// Service providers
// -----------------------------------------------------------------------------
// Twig
$container['view'] = function ($c) {
    $settings = $c->get('settings');
    $view = new \Slim\Views\Twig($settings['view']['template_path'], $settings['view']['twig']);
    // Add extensions
    $view->addExtension(new Slim\Views\TwigExtension($c->get('router'), $c->get('request')->getUri()));
    $view->addExtension(new Twig_Extension_Debug());
    $view->addExtension(new \App\Libs\TwigExtension());
    $categories = $c->get('redis')->get('category');
    if ($categories) {
        $categories = json_decode($categories);
    }
    $view->getEnvironment()->addGlobal('__cates', $categories);
    $view->getEnvironment()->addGlobal('__user', $_SESSION['user']);
    return $view;
};
$container['redis'] = function ($c) {
    $redis = new Redis();
    if (!$redis->connect('127.0.0.1', 6379)) {
        $c->get('logger')->error('Redis is not running!');
        echo 'Redis is not running!';
        die;
    }
    $cate = $c->get('em')->getRepository('App\\Model\\Categories')->findBy([], ['id' => 'ASC']);
    foreach ($cate as $item) {
        $categories[] = ['id' => $item->getId(), 'title' => $item->getTitle(), 'slug' => $item->getSlug(), 'is_Parent' => $item->getIsParent(), 'parent' => $item->getParent()];
    }
    $redis->delete('category');
Exemple #13
0
<?php

use Slim\Container;
$container['flash'] = function (Container $c) {
    return new Slim\Flash\Messages();
};
$container['view'] = function (Container $c) use($settings) {
    $settings = $c->get('settings');
    $view = new \Slim\Views\Twig($settings['view']['template_path'], $settings['view']['twig']);
    $view->addExtension(new Slim\Views\TwigExtension($c->get('router'), $c->get('request')->getUri()));
    $view->getEnvironment()->addGlobal('flash', $c['flash']);
    $view->addExtension(new Twig_Extension_Debug());
    return $view;
};
$container['db'] = function (Container $c) use($settings) {
    return new PDO('' . $settings['db']['driver'] . ':
        host=' . $settings['db']['host'] . ';
        dbname=' . $settings['db']['dbname'], $settings['db']['user'], $settings['db']['password']);
};
$container['logger'] = function (Container $c) use($settings) {
    $settings = $c->get('settings');
    $logger = new \Monolog\Logger($settings['logger']['name']);
    $logger->pushProcessor(new \Monolog\Processor\UidProcessor());
    $logger->pushHandler(new \Monolog\Handler\StreamHandler($settings['logger']['path'], \Monolog\Logger::DEBUG));
    return $logger;
};
$container['validator'] = function (Container $c) use($settings) {
    $params = $c['request']->getParams();
    $lang = $settings['lang'];
    return new Valitron\Validator($params, [], $lang['default']);
};