예제 #1
0
 /**
  * @covers Jgut\Slim\Controller\Resolver::resolve
  */
 public function testDefaultRegistration()
 {
     $controllers = ['Jgut\\Slim\\Controller\\Base'];
     $container = new Container();
     foreach (Resolver::resolve($controllers) as $controller => $callback) {
         $container[$controller] = $callback;
     }
     $this->assertInstanceOf('Jgut\\Slim\\Controller\\Base', $container->get('Jgut\\Slim\\Controller\\Base'));
 }
예제 #2
0
/**
 * @Author: mark
 * @Date:   2015-12-18 15:14:04
 * @Last Modified by:   mark
 * @Last Modified time: 2016-01-05 11:50:11
 */
use Jgut\Slim\Controller\Resolver;
$config = Symfony\Component\Yaml\Yaml::parse(file_get_contents(__DIR__ . '/config/config.yml'));
$container = new Slim\Container();
$dir = __DIR__ . '/../src/App';
$_controllers = array_diff(scandir($dir), ['.', '..', 'Base.php']);
foreach ($_controllers as $controller) {
    $controllers[] = '\\App\\' . str_replace('.php', '', $controller);
}
foreach (Resolver::resolve($controllers) as $controller => $callback) {
    $container[$controller] = $callback;
}
// Templates
$container['view'] = function ($c) use($config) {
    $view = new Slim\Views\Twig($config['paths']['template'], []);
    $view->addExtension(new Slim\Views\TwigExtension($c['router'], $c['request']->getUri()));
    return $view;
};
// Logging
$container['log'] = function ($c) use($config) {
    $logger = new \Monolog\Logger('application');
    $logger->pushHandler(new \Monolog\Handler\StreamHandler($config['paths']['log'], \Monolog\Logger::DEBUG));
    $handler = $logger->getHandlers();
    $handler[0]->setFormatter(new Monolog\Formatter\LineFormatter(null, null, false, true));
    return $logger;