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;
public function setUp() { $this->container = new Slim\Container(); $this->container['settings']['app-middleware'] = [LoggerMiddleware::class]; $this->container['settings']['routes'] = ['get' => ['/' => ["callable" => HelloWorldAction::class, "mw" => ["Test1", "Test2"], "name" => "Test1"], '/json' => ["callable" => HelloWorldJsonAction::class, "mw" => [], "name" => "Test2"]]]; $this->container['twig'] = function ($c) { $view = new \Slim\Views\Twig("templates", ['cache' => false]); // Instantiate and add Slim specific extension $view->addExtension(new Slim\Views\TwigExtension($c['router'], $c['request']->getUri())); return $view; }; $this->container["logger"] = function ($c) { $log = new Logger("Test"); $log->pushHandler(new \Monolog\Handler\NullHandler()); return $log; }; $this->collective = new \Collective\Collective($this->container); $this->collective->addMw("Test1", function ($c) { return function ($req, $res, $next) { $res->write("Test1"); return $next($req, $res); }; }); $this->collective->addMw("Test2", function ($c) { return function ($req, $res, $next) { $res = $next($req, $res); $res->write("Test2"); return $res; }; }); $this->collective->applyMiddleware(); $this->collective->applyRoutes(); }
/** * Define the view component. * * @param \Slim\Container $container * @return \Slim\Views\Twig */ function buildView(Slim\Container $container) { $view = new \Slim\Views\Twig('assets', ['cache' => 'cache']); $view->getLoader()->addPath('./css'); $view->addExtension(new \Slim\Views\TwigExtension($container['router'], $container['request']->getUri())); return $view; }
public function bootTwig() { $this->debug('Booting Twig'); $view = new \Slim\Views\Twig($this->settings['paths.view'], $this->settings['view.twig']); $view->addExtension(new \Twig_Extension_Debug()); $view->addExtension(new \Slim\Views\TwigExtension($this->app->router, $this->app->request->getUri())); $this->getContainer()->register($view); return $view; }
public function setupRenderer() { $container = $this->getContainer(); $container['view'] = function ($c) { $view = new \Slim\Views\Twig(ROOT_DIR . '/resources/views', ['cache' => ROOT_DIR . '/resources/cache/twig', 'debug' => true, 'auto_reload' => true]); $view->addExtension(new \Slim\Views\TwigExtension($c['router'], $c['request']->getUri())); $engine = new MarkdownEngine\MichelfMarkdownEngine(); $view->addExtension(new MarkdownExtension($engine)); return $view; }; }
public static function instance() { if (self::$slim === null) { $configuration = ['settings' => ['displayErrorDetails' => true]]; $c = new \Slim\Container($configuration); $app = new \Slim\App($c); $container = $app->getContainer(); $container['view'] = function ($c) { $view = new \Slim\Views\Twig(DOCROOT . 'app/views', []); $view->addExtension(new \Slim\Views\TwigExtension($c['router'], $c['request']->getUri())); return $view; }; $container['flash'] = function () { return new \Slim\Flash\Messages(); }; self::$slim = $app; } return self::$slim; }
function run() { $config = parse_ini_file('../.config'); $this->setUpDb(); $showErrors = isset($config['showErrors']) ? $config['showErrors'] : false; $configuration = ['settings' => ['displayErrorDetails' => $showErrors]]; $c = new \Slim\Container($configuration); // create new Slim instance $app = new \Slim\App($c); // create new Slim instance //$app = new \Slim\App(); $app->db = $this->database; $this->flashDB(false); $app->auth = false; $app->user = ''; $app->register = $config['registerActive']; $app->add(function ($request, $response, $next) use(&$app) { if (isset($_SESSION['userID'])) { $app->auth = true; $app->user = $_SESSION['username']; } $response = $next($request, $response); return $response; }); $container = $app->getContainer(); $container['view'] = function ($c) { // templates location and a settings array $view = new \Slim\Views\Twig('../templates', ['cache' => '../cache', 'auto_reload' => true, 'debug' => true]); // Instantiate and add Slim specific extension $view->addExtension(new Slim\Views\TwigExtension($c['router'], $c['request']->getUri())); return $view; }; $route = new Routes($app); $app = $route->run($app); $this->app = $app; // Run app $this->app->run(); }
/** * Example middleware invokable class * * @param \Psr\Http\Message\ServerRequestInterface $request PSR7 request * @param \Psr\Http\Message\ResponseInterface $response PSR7 response * @param callable $next Next middleware * * @return \Psr\Http\Message\ResponseInterface */ public function __invoke(ServerRequestInterface $request, ResponseInterface $response, callable $next) { $accept = $request->getHeader('Accept'); if (in_array('application/json', $accept)) { $jsonHelpers = new JsonHelpers($this->app->getContainer()); $jsonHelpers->registerResponseView(); $jsonHelpers->registerErrorHandlers(); } elseif (in_array('text/calendar', $accept)) { $container = $this->app->getContainer(); $container['view'] = function ($c) { return new IcalendarRenderer(); }; } else { $container = $this->app->getContainer(); $container['view'] = function ($container) { $config = $container['settings']; $tView = new \Slim\Views\Twig($config['renderer']['template_path'], ['cache' => $config['renderer']['cache_path']]); $tView->addExtension(new \Slim\Views\TwigExtension($container['router'], $container['request']->getUri())); $view = new TwigRenderer($tView); return $view; }; } return $next($request, $response); }
<?php require_once __DIR__ . "/../vendor/autoload.php"; use Slim\App; use Slim\Container; use Slim\Views\TwigExtension; $configuration = ['settings' => ['displayErrorDetails' => true]]; $container = new Container($configuration); // Register component on container $container['view'] = function ($c) { $view = new \Slim\Views\Twig(__DIR__ . '/../src/Application/Templating', ['cache' => __DIR__ . '/../cache']); $view->addExtension(new TwigExtension($c['router'], $c['request']->getUri())); return $view; }; $container['debug'] = true; // Create app $app = new App($container); // Render Twig template in route $app->get('/', function ($request, $response, $args) { return $this->view->render($response, 'home/index.html.twig'); })->setName('profile'); // Run app $app->run();
# valid service endpoints $contents = file_get_contents(__DIR__ . '/api/endpoints.json'); $_SESSION['j'] = json_decode($contents, true); # init consumer/client if (isset($_SERVER['PHP_AUTH_USER'])) { consumer::init($_SERVER['PHP_AUTH_USER'], $u); } elseif (isset($_GET['client-id'])) { consumer::init($_GET['client-id'], $u); } # # new Slim() $app = new \Slim\Slim(); $app->config('debug', false); # config/init template [twig] $app->container->singleton('twig', function () { $twig = new \Slim\Views\Twig(); $twig->parserExtensions = array(new \Slim\Views\TwigExtension()); $templatePath = __DIR__ . '/api/templates'; $twig->setTemplatesDirectory($templatePath); return $twig; }); # 404 handler inside app() $app->notFound(function () use($app) { $app->twig->display('error.php'); }); # Exception handler inside app() $app->error(function (\Exception $e) use($app) { $app->twig->display('error.php'); }); # auth if (!isset($_GET['client-id'])) {
<?php // 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->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));
<?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())); $container['view'] = $view; // Flash messages $container['flash'] = function ($c) { return 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; }; // ----------------------------------------------------------------------------- // Action factories - created via an AbstractFactory // ----------------------------------------------------------------------------- $container->addAbstractFactory(new App\ActionAbstractFactory());
<?php 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(); };
<?php require 'vendor/autoload.php'; require 'config/env.php'; require 'config/mysql.php'; require 'config/redis.php'; // Create Slim app $app = new \Slim\App(['settings' => ['debug' => true]]); // Add whoops to slim because its helps debuggin' and is pretty. $app->add(new \Zeuxisoo\Whoops\Provider\Slim\WhoopsMiddleware()); // Fetch DI Container $container = $app->getContainer(); // Instantiate and add Slim specific extension $view = new \Slim\Views\Twig(__DIR__ . '/views', ['cache' => $container->get('settings')['debug'] ? false : __DIR__ . '/cache']); $view->addExtension(new Slim\Views\TwigExtension($container->get('router'), $container->get('request')->getUri())); // Register Twig View helper $container->register($view); // Write some default variables available to every template $view->offsetSet('realtime_url', $environment['REALTIME_URL']); $view->offsetSet('current_watts', is_numeric($redis->get('owlintuition.watts')) ? $redis->get('owlintuition.watts') : '???'); $app->get('/', function (\Slim\Http\Request $request, \Slim\Http\Response $response, $args) { header("Location: /redis"); exit; }); $app->get('/redis', function (\Slim\Http\Request $request, \Slim\Http\Response $response, $args) { global $redis; $keys = $redis->keys('*'); $redisKeys = []; foreach ($keys as $key) { $redisKeys[$key] = ['key' => $key, 'value' => $redis->get($key)]; }
}); // Security $app->container->singleton('security', function () use($app) { return new Moritz\Library\SecurityHandler($app); }); // Email $app->email = function () use($app) { return new Moritz\Library\EmailHandler($app->log, $app->config('email')); }; // Sitemap $app->container->singleton('sitemap', function () use($app) { return new Moritz\Library\SitemapHandler($app); }); // Twig Template Rendering $app->container->singleton('twig', function () use($app) { $twig = new \Slim\Views\Twig(); $twig->parserOptions = $app->config('twig.parserOptions'); $twig->parserExtensions = $app->config('twig.extensions'); $twig->setTemplatesDirectory($app->config('templates.path')); return $twig; }); // Encryption Function $app->encrypt = function () use($app) { return function ($str) use($app) { $salt = $app->config('session'); return hash('sha256', $str . $salt['salt']); }; }; // Image Upload $app->uploader = function () use($app) { return function ($key) use($app) {
<?php require_once dirname(dirname(__FILE__)) . '/vendor/autoload.php'; use Slim\App; use Zeuxisoo\Whoops\Provider\Slim\WhoopsMiddleware; $app = new App(['settings' => ['debug' => true, 'whoops.editor' => 'sublime']]); $app->add(new WhoopsMiddleware()); $container = $app->getContainer(); $container['view'] = function ($c) { $view = new \Slim\Views\Twig('./views', ['debug' => true, 'cache' => './cache/views']); $view->addExtension(new Twig_Extension_Debug()); return $view; }; // Work // $app->get('/', function($request, $response, $args) use ($app) { // return $this->view->render($response, 'test.html', [ // 'name' => "Tester" // ]); // }); // Exception $app->get('/', function ($request, $response, $args) use($app) { return $this->view->render($response, 'noExists.html'); }); $app->run();
<?php // DIC configuration $container = $app->getContainer(); // Database $container['capsule'] = function ($c) { $capsule = new Illuminate\Database\Capsule\Manager(); $capsule->addConnection($c['settings']['db']); return $capsule; }; // View $container['view'] = function ($c) { $view = new \Slim\Views\Twig($c['settings']['view']['template_path'], $c['settings']['view']['twig']); // Add extensions $view->addExtension(new Slim\Views\TwigExtension($c['router'], $c['request']->getUri())); $view->addExtension(new Twig_Extension_Debug()); $view->addExtension(new Bookshelf\TwigExtension($c['flash'])); return $view; }; // CSRF guard $container['csrf'] = function ($c) { $guard = new \Slim\Csrf\Guard(); $guard->setFailureCallable(function ($request, $response, $next) { $request = $request->withAttribute("csrf_status", false); return $next($request, $response); }); return $guard; }; // Flash messages $container['flash'] = function ($c) { return new \Slim\Flash\Messages();
/** * Service Definitions */ private function setupServices() { $container = $this->getContainer(); $container['view'] = function ($c) { $view = new \Slim\Views\Twig($c['settings']['base_path'] . '/resources/templates'); $view->addExtension(new \Slim\Views\TwigExtension($c['router'], $c['request']->getUri())); return $view; }; $container['db'] = function ($c) { $db = new ExtendedPdo('mysql:host=' . $c['settings']['db.host'] . ';dbname=' . $c['settings']['db.name'], $c['settings']['db.user'], $c['settings']['db.pass']); return $db; }; $this->db = $container['db']; $container['query'] = function ($c) { $query = new QueryFactory('mysql'); return $query; }; $this->query = $container['query']; }
<?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; }; // -----------------------------------------------------------------------------
<?php // DIC configuration // get the DI container, bind all dependencies to it (auth, view, db, etc.) $container = $app->getContainer(); // glued authentication class $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 Closure */ /*$c['errorHandler'] = function ($c) { return function ($request, $response, $exception) use ($c) { 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) {
<?php session_start(); require_once 'vendor/autoload.php'; require_once './eagle/database/Connection.php'; $c = new \Slim\Container(include './eagle/config/config.php'); $app = new \Slim\App($c); $container = $app->getContainer(); $container['view'] = function ($container) { $view = new \Slim\Views\Twig('./eagle/templates'); $view->addExtension(new \Slim\Views\TwigExtension($container['router'], $container['request']->getUri())); return $view; }; new Connection(); ini_set('max_execution_time', 60); require_once './eagle/routes/team.routes.php'; require_once './eagle/routes/event.routes.php'; require_once './eagle/routes/comment.routes.php'; require_once './eagle/routes/scouting.routes.php'; require_once './eagle/routes/base.routes.php'; $app->run();
<?php require_once '../vendor/autoload.php'; $configuration = ['settings' => ['displayErrorDetails' => true]]; $container = new \Slim\Container($configuration); $container['config'] = function ($c) { return new \Noodlehaus\Config('../config/app.php'); }; $container['view'] = function ($c) { $view = new \Slim\Views\Twig('../resources/views', ['debug' => true, 'strict_variables' => true]); $view->addExtension(new \Slim\Views\TwigExtension($c['router'], $c['config']->get('url'))); $view->addExtension(new Twig_Extension_Debug()); return $view; }; $container['db'] = function ($c) { return new PDO('mysql:host=' . $c['config']->get('db.mysql.host') . ';dbname=' . $c['config']->get('db.mysql.name'), $c['config']->get('db.mysql.username'), $c['config']->get('db.mysql.password')); }; $container['mail'] = function ($c) { return new \Mailgun\Mailgun($c['config']->get('services.mailgun.secret')); }; require 'database.php'; $container['message'] = function ($c) { return new App\Models\Message(); }; $container['article'] = function ($c) { return new App\Models\Article(); }; $container['sitecontent'] = function ($c) { return new App\Models\SiteContent(); }; $app = new \App\App($container);
<?php //require in composer dependencies //setup autoload for composer require '../vendor/autoload.php'; ini_set('display_errors', 'On'); $container = new \Slim\Container(); $container['config'] = function ($c) { return new \Noodlehaus\Config('../config/app.php'); }; $container['view'] = function ($c) { $view = new Slim\Views\Twig("../resources/views"); //this is how you config it, add object with router and host $view->addExtension(new Slim\Views\TwigExtension($c['router'], $c['config']->get('url'))); return $view; }; $container['db'] = function ($c) { return new PDO("mysql:host=" . $c['config']->get("db.mysql.host") . ";dbname=" . $c['config']->get("db.mysql.dbname"), $c['config']->get("db.mysql.username"), $c['config']->get("db.mysql.password")); }; $container['mail'] = function ($c) { return new \Mailgun\Mailgun($c['config']->get('services.mailgun.secret')); }; $app = new \Slim\App($container); require_once 'routes.php';
use Doctrine\Common\Cache\FilesystemCache; // DIC configuration $container = $app->getContainer(); // monolog $container['logger'] = function ($container) { $settings = $container->get('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; }; // Twig views $container['view'] = function ($container) { $settings = $container->get('settings')['view']; $view = new \Slim\Views\Twig($settings['templates'], ['cache' => $settings['cache'], 'debug' => true]); $view->addExtension(new \Slim\Views\TwigExtension($container['router'], \nanotwi\Middleware\ProxiedHttpsSupport::getRealUri($container['request']))); $view->addExtension(new nanotwi\Views\TwigExtensionAutologinPath($container)); return $view; }; // Twig views $container['cache'] = function ($container) { $settings = $container->get('settings')['cache']; $cache = new FilesystemCache($settings['path']); $cache->setNamespace('twitter_'); return $cache; }; // High-level Twitter API $container['nanoTwitter'] = function ($container) { $settings = $container->get('settings')['twitter']; $cache = $container->get('cache');
<?php $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())); // // <a href="{{ path_for('hello', {name: "Peppino"}) }}"> // <a href="{{ base_url() }}{{ path_for('hello', {name: "Peppino"}) }}"> // $view->addExtension(new Twig_Extension_Debug()); // // <pre> // {{ dump("test") }} // </pre> return $view; }; $container['cache'] = function () { return new \Slim\HttpCache\CacheProvider(); }; $container['flash'] = function () { return new \Slim\Flash\Messages(); }; // monolog $container['logger'] = function ($c) {
$container['menu'] = function ($container) { // return $container["wynfordchace"]->setMenu(); return new WynfordChace\Controllers\Menu(); }; // Set the menu up to be used on any page $container['events'] = function ($container) { // return $container["wynfordchace"]->getEventsData(); $e = new WynfordChace\Controllers\Events(); return $e->getEvents(); }; $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) {
<?php // DIC configuration $container = $app->getContainer(); // view renderer $container['renderer'] = function ($c) { $settings = $c->get('settings')['renderer']; return new Slim\Views\PhpRenderer($settings['template_path']); }; // Register component on container $container['view'] = function ($c) { $settings = $c->get('settings')['view']; $view = new \Slim\Views\Twig($settings['template_path'], ['debug' => $settings['debug'], 'cache' => $settings['cache_path']]); // Add extensions $view->addExtension(new \Slim\Views\TwigExtension($c['router'], $c['request']->getUri())); $view->addExtension(new Twig_Extension_Debug()); return $view; }; // Flash messages $container['flash'] = function ($c) { return new \Slim\Flash\Messages(); }; // monolog $container['logger'] = function ($c) { $settings = $c->get('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; }; $container['facebook'] = function ($c) {
// DIC configuration $container = $app->getContainer(); // Logger $container['logger'] = function ($c) { $config = $c->settings['Monolog']; $logger = new Monolog\Logger($config['loggerName']); $logger->pushProcessor(new Monolog\Processor\UidProcessor()); $formatter = new Monolog\Formatter\LineFormatter(); $formatter->includeStacktraces(); if (true === $config['StreamHandler']['enable']) { $handler = new Monolog\Handler\StreamHandler(VAR_PATH . '/log/app-' . date('Y-m') . '.log', $config['StreamHandler']['logLevel']); $handler->setFormatter($formatter); $logger->pushHandler($handler); } if (true === $config['NativeMailerHandler']['enable'] && '' != $config['NativeMailerHandler']['to']) { $handler = new Monolog\Handler\NativeMailerHandler($config['NativeMailerHandler']['to'], $config['NativeMailerHandler']['subject'], $config['NativeMailerHandler']['from'], $config['NativeMailerHandler']['logLevel']); $handler->setFormatter($formatter); $logger->pushHandler($handler); } return $logger; }; // View renderer $container['renderer'] = function ($c) { $config = $c->settings['Twig']; $path = $config['templatesPath']; unset($config['templatesPath']); $twig = new Slim\Views\Twig($path, $config); $twig->addExtension(new Slim\Views\TwigExtension($c->router, $c->request->getUri())); $twig['config'] = $c->settings['App']; return $twig; };