return new Slim\Views\PhpRenderer($settings['template_path']); }; $container['view'] = function ($c) { $settings = $c->get('settings'); $view = new \Slim\Views\Twig($settings['view']['template_path'], $settings['view']['twig']); $view->addExtension(new Slim\Views\TwigExtension($c->get('router'), $c->get('request')->getUri())); //$view->addExtension(new Twig_Extension_Debug()); return $view; }; $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['db'] = function ($c) { try { $settings = $c->get('settings')['doctrine']['connection']; $db = new PDO('mysql:host=' . $settings['host'] . ';dbname=' . $settings['dbname'] . ';charset=utf8mb4', $settings['user'], $settings['password'], [\PDO::ATTR_PERSISTENT => false]); } catch (PDOException $e) { die($e->getMessage()); } return $db; }; $container['em'] = function ($c) { return EntityManagerBuilder::build($c->get('settings')['doctrine']); }; $container['flash'] = function ($c) { return new \Slim\Flash\Messages(); };
/** * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::build * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::createConfiguration */ public function testCustomTypes() { $options = ['connection' => ['driver' => 'pdo_sqlite', 'memory' => true], 'annotation_paths' => sys_get_temp_dir(), 'custom_types' => ['custom' => '\\Doctrine\\DBAL\\Types\\DecimalType']]; $this->assertInstanceOf('\\Doctrine\\ORM\\EntityManager', EntityManagerBuilder::build($options)); }
<?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']); //}; // twig renderer $container['twig'] = function ($container) { $settings = $container->get('settings')['twig']; $view = new \Slim\Views\Twig($settings['template_path'], []); $view->addExtension(new \Slim\Views\TwigExtension($container['router'], $container['request']->getUri())); return $view; }; // Register Entity Manager in the container $container['entityManager'] = function ($c) { $doctrineSettings = $c->get('settings')['doctrine']; return \Jgut\Slim\Doctrine\EntityManagerBuilder::build($doctrineSettings); }; // 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; };
/** * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::setupAnnotationMetadata * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::setupProxy * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::setupSQLLogger * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::setupMetadataDriver */ public function testCreation() { $options = ['connection' => ['driver' => 'pdo_sqlite', 'memory' => true], 'annotation_paths' => sys_get_temp_dir(), 'proxies_namespace' => 'myNamespace\\Proxies', 'auto_generate_proxies' => AbstractProxyFactory::AUTOGENERATE_ALWAYS, 'sql_logger' => new \Doctrine\DBAL\Logging\EchoSQLLogger()]; $this->assertInstanceOf('\\Doctrine\\ORM\\EntityManager', EntityManagerBuilder::build($options)); }
<?php require __DIR__ . '/vendor/autoload.php'; //use Doctrine\ODM\MongoDB\Tools\Console\Helper\DocumentManagerHelper; use Doctrine\ORM\Tools\Console\ConsoleRunner; use Jgut\Slim\Doctrine\DocumentManagerBuilder; use Jgut\Slim\Doctrine\EntityManagerBuilder; $CLISettings = ['cache_driver' => new \Doctrine\Common\Cache\VoidCache()]; $settings = (require __DIR__ . '/src/settings.php'); $entityManager = EntityManagerBuilder::build(array_merge($settings['settings']['doctrine'], $CLISettings)); //$documentManager = DocumentManagerBuilder::build(array_merge($settings['document_manager'], $CLISettings)); return $helperSet = ConsoleRunner::createHelperSet($entityManager); //$helperSet->set(new DocumentManagerHelper($documentManager), 'dm'); // //$cli = ConsoleRunner::createApplication($helperSet, [ //new \Doctrine\ODM\MongoDB\Tools\Console\Command\GenerateDocumentsCommand(), //new \Doctrine\ODM\MongoDB\Tools\Console\Command\GenerateHydratorsCommand(), //new \Doctrine\ODM\MongoDB\Tools\Console\Command\GenerateProxiesCommand(), //new \Doctrine\ODM\MongoDB\Tools\Console\Command\GenerateRepositoriesCommand(), //new \Doctrine\ODM\MongoDB\Tools\Console\Command\QueryCommand(), //new \Doctrine\ODM\MongoDB\Tools\Console\Command\ClearCache\MetadataCommand(), //new \Doctrine\ODM\MongoDB\Tools\Console\Command\Schema\CreateCommand(), //new \Doctrine\ODM\MongoDB\Tools\Console\Command\Schema\DropCommand(), //new \Doctrine\ODM\MongoDB\Tools\Console\Command\Schema\UpdateCommand(), //]);
$app->get('/', function () use ($app) {echo "Raiz";}); $app->get('/stats/:codcli', function ($codcli) use ($app) {getStats($app, $codcli);}); */ require '../vendor/autoload.php'; require '../Entity/Users.php'; use Jgut\Slim\Doctrine\EntityManagerBuilder; use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; $app = new \Slim\App(); // Create Slim app and fetch DI Container $container = $app->getContainer(); // Register Entity Manager in the container $container['entityManager'] = function () { $conf = parse_ini_file('../conf/conf.db.ini', true); $doctrineSettings = ['connection' => ['driver' => $conf['database']['driver'], 'host' => $conf['database']['host'], 'port' => isset($conf['database']['port']) ? $conf['database']['port'] : '3306', 'user' => $conf['database']['user'], 'password' => $conf['database']['password'], 'dbname' => $conf['database']['db'], 'charset' => 'utf8', 'memory' => true], 'annotation_paths' => ['../Entity/Users.php']]; return EntityManagerBuilder::build($doctrineSettings); }; $app->add(new \Slim\Middleware\JwtAuthentication(["path" => "/api", "secret" => "supersecretkeyyoushouldnotcommittogithub"])); $app->get('/', function (Request $request, Response $response) { $result = $this->entityManager->createQueryBuilder()->select('user.email, user.password, user.token')->from('Users', 'user')->getQuery()->getArrayResult(); return json_encode($result); }); $app->get('/api', function (Request $request, Response $response) { getStats($request, $response); }); $app->get('/login', function (Request $request, Response $response) { $result = Firebase\JWT\JWT::encode("ramdont0k3n", "supersecretkeyyoushouldnotcommittogithub"); $body = $response->getBody(); $body->write(json_encode($result)); return $response; });
/** * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::build * @cover \Jgut\Slim\Doctrine\EntityManagerBuilder::createConfiguration */ public function testYAMLCreation() { $options = ['connection' => ['driver' => 'pdo_sqlite', 'memory' => true], 'yaml_paths' => [dirname(__DIR__) . '/files/fakeAnnotationFile.php']]; $this->assertInstanceOf('\\Doctrine\\ORM\\EntityManager', EntityManagerBuilder::build($options)); }
<?php require __DIR__ . '/vendor/autoload.php'; use Doctrine\ORM\Tools\Console\ConsoleRunner; use Jgut\Slim\Doctrine\EntityManagerBuilder; $settings = (include 'app/settings.php'); $settings = $settings['settings']['doctrine']; $entityManager = EntityManagerBuilder::build($settings); $helperSet = ConsoleRunner::createHelperSet($entityManager); $cli = ConsoleRunner::createApplication($helperSet, [new \Doctrine\ORM\Tools\Console\Command\GenerateEntitiesCommand()]); return $cli->run();