// 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 Twig_Extensions_Extension_Text()); // global load for template $view->offsetSet('appname', $settings['app']['appname']); return $view; }; // Flash messages $container['flash'] = function ($c) { return new \Slim\Flash\Messages(); }; // ----------------------------------------------------------------------------- // Service factories // ----------------------------------------------------------------------------- // monolog $container['logger'] = function ($c) { $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));
require '../vendor/autoload.php'; $conf = \Noodlehaus\Config::load(__DIR__ . DIRECTORY_SEPARATOR . 'settings.php'); #encoding mb_internal_encoding($conf['app.encoding.mb_internal_encoding']); mb_http_output($conf['app.encoding.mb_http_output']); #timezone date_default_timezone_set($conf['app.timezone']); #Database Configuration $serviceContainer = \Propel\Runtime\Propel::getServiceContainer(); $serviceContainer->checkVersion('2.0.0-dev'); $serviceContainer->setAdapterClass($conf['app.namespace'], 'mysql'); $manager = new \Propel\Runtime\Connection\ConnectionManagerSingle(); $manager->setConfiguration(['dsn' => 'mysql:host=' . $conf['app.db.host'] . ';port=' . $conf['app.db.port'] . ';dbname=' . $conf['app.db.name'], 'user' => $conf['app.db.username'], 'password' => $conf['app.db.password'], 'settings' => ['charset' => $conf['app.db.charset'], 'queries' => []], 'classname' => '\\Propel\\Runtime\\Connection\\ConnectionWrapper']); $manager->setName($conf['app.namespace']); $serviceContainer->setConnectionManager($conf['app.namespace'], $manager); $serviceContainer->setDefaultDatasource($conf['app.namespace']); # End of Propel Database #SLIM instantiate $app = new \Slim\App(); $container = $app->getContainer(); $container['view'] = function ($container) use($conf) { $view = new \Slim\Views\Twig($conf['app.template.dir'], ['cache' => $conf['app.template.cache'], 'debug' => $conf['app.template.debug'], 'auto_reload' => $conf['app.template.auto_reload']]); $view->addExtension(new \Slim\Views\TwigExtension($container['router'], $container['request']->getUri())); $view->addExtension(new Twig_Extension_Debug()); $view->offsetSet('userGlobalData', App::getUser()); return $view; }; $container['flash'] = function () { return new \Slim\Flash\Messages(); }; #End of SLIM Instance
<?php // DIC configuration $container = $app->getContainer(); // view renderer $container['renderer'] = function ($c) { $settings = $c->get('settings')['renderer']; $view = new \Slim\Views\Twig($settings['template_path'], ['cache' => $settings['cache_path'], 'debug' => true]); $uri = $c['request']->getUri(); $view->addExtension(new \Slim\Views\TwigExtension($c['router'], $uri)); $view->addExtension(new Twig_Extension_Debug()); $view->offsetSet('user', $c['user']); $view->offsetSet('staticPath', $uri->getBaseUrl() . '/static/'); return $view; }; // 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; }; // my db $container['db'] = function ($c) { $settings = $c->get('settings')['db_config']; return \App\lib\MyDb::getInstance($settings['dsn'], $settings['user'], $settings['password'], $settings['debug']); }; // model $container['model'] = function ($c) { return new \App\lib\Loader($c);