예제 #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/");
 }
예제 #2
1
<?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;
예제 #3
0
 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();
 }
예제 #4
0
파일: index.php 프로젝트: paroxp/rafalp
/**
 * 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;
}
예제 #5
0
 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;
 }
예제 #6
0
 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;
     };
 }
예제 #7
0
파일: App.php 프로젝트: i4j5/burgermaniya
 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;
 }
예제 #8
0
 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);
 }
예제 #10
0
파일: index.php 프로젝트: jlaso/notify
<?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();
예제 #11
0
# 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'])) {
예제 #12
0
<?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());
예제 #14
0
<?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();
};
예제 #15
0
<?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)];
    }
예제 #16
0
파일: startup.php 프로젝트: wolfmoritz/osc
});
// 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) {
예제 #17
0
<?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();
예제 #18
0
<?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();
예제 #19
0
 /**
  * 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'];
 }
예제 #20
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;
};
// -----------------------------------------------------------------------------
예제 #21
0
<?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']);
예제 #22
0
 * @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) {
예제 #23
0
파일: index.php 프로젝트: ryanp73/Eagle
<?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();
예제 #24
0
<?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';
예제 #26
0
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) {
예제 #28
0
$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) {
예제 #29
0
<?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) {
예제 #30
0
// 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;
};