Rest Api slim3 php7 Apache2 mysql mongo-replica
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

58 lines
1.6 KiB

<?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']);
};
// 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'], $settings['level']));
return $logger;
};
$container['db'] = function ($c) {
$db = $c['settings']['db'];
$pdo = new PDO('mysql:host=' . $db['host'] . ';dbname=' . $db['dbname'],
$db['user'], $db['pass']);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
return $pdo;
};
$container['mongo'] = function ($c) {
$db = $c['settings']['mongo'];
$host=$db['host'];
$user=$db['user'];
$pass=$db['pass'];
$pwd=rawurlencode($db['pass']);
$dbname=$db['dbname'];
//$mongo = new MongoDB\Client("mongodb://$user:$pwd@$host");
$mongo = new MongoDB\Client("mongodb://$user:$pass@$host");
return $mongo;
};
$container['httpClient'] = function($c) {
$master='http://127.0.0.1:8080';
$config = [
'timeout' => 60,
'base_uri' => $master
];
$guzzle = new \GuzzleHttp\Client($config);
return $guzzle;
};
$container['y2j'] = function($c) {
$y2j = new \Symfony\Component\Yaml\Parser();
return $y2j;
};
$container['validationService'] = function () {
return new \Anddye\Validation\Validator();
};