This commit is contained in:
Juan Pablo Vial
2023-06-22 23:15:17 -04:00
parent 05e37f19ae
commit b212381bb7
25 changed files with 433 additions and 89 deletions

26
setup/cli/config.php Normal file
View File

@ -0,0 +1,26 @@
<?php
return [
'databases' => function() {
$container = new DI\Container([
ORM::DEFAULT_CONNECTION => new DI\Container([
'host' => $_ENV['MYSQL_HOST'],
'database' => $_ENV['MYSQL_DATABASE'],
'username' => $_ENV['MYSQL_USER'],
'password' => $_ENV['MYSQL_PASSWORD']
]),
'remote' => new DI\Container([
'host' => $_ENV['REMOTE_HOST'],
'database' => $_ENV['REMOTE_DATABASE'],
'username' => $_ENV['REMOTE_USER'],
'password' => $_ENV['REMOTE_PASSWORD']
])
]);
if (isset($_ENV['MYSQL_PORT'])) {
$container->get(ORM::DEFAULT_CONNECTION)->set('port', $_ENV['MYSQL_PORT']);
}
if (isset($_ENV['REMOTE_PORT'])) {
$container->get('remote')->set('port', $_ENV['REMOTE_PORT']);
}
return $container;
}
];

View File

@ -0,0 +1,9 @@
<?php
include_once implode(DIRECTORY_SEPARATOR, [
dirname(__FILE__, 3),
'resources',
'routes',
'cli.php'
]);
Monolog\ErrorHandler::register($app->getContainer()->get(Psr\Log\LoggerInterface::class));

43
setup/cli/setups.php Normal file
View File

@ -0,0 +1,43 @@
<?php
use Psr\Container\ContainerInterface;
return [
Psr\Log\LoggerInterface::class => function(ContainerInterface $container) {
return new Monolog\Logger('cli', [
new Monolog\Handler\FilterHandler(new Monolog\Handler\RotatingFileHandler('/logs/cli.debug.log'), Monolog\Level::Debug, Monolog\Level::Notice),
new Monolog\Handler\FilterHandler(new Monolog\Handler\RotatingFileHandler('/logs/cli.error.log'), Monolog\Level::Warning)
], [
new Monolog\Processor\PsrLogMessageProcessor(),
new Monolog\Processor\IntrospectionProcessor(),
new Monolog\Processor\MemoryUsageProcessor(),
new Monolog\Processor\MemoryPeakUsageProcessor()
]);
},
GuzzleHttp\Client::class => function(ContainerInterface $container) {
return new GuzzleHttp\Client([
'base_uri' => "http://{$container->get(App\Service\Remote::class)->getIP()}:8008",
'headers' => [
'Accept' => 'application/json'
]
]);
},
App\Alias\RemoteConnection::class => function(ContainerInterface $container) {
return new App\Alias\RemoteConnection();
},
App\Service\Remote::class => function(ContainerInterface $container) {
return new App\Service\Remote($container->get(App\Alias\RemoteConnection::class));
},
App\Service\Money::class => function(ContainerInterface $container) {
return new App\Service\Money($container->get(GuzzleHttp\Client::class));
},
App\Alias\Connection::class => function(ContainerInterface $container) {
$data = $container->get('databases')->get(ORM::DEFAULT_CONNECTION);
return new App\Alias\Connection(
$data->get('host'),
$data->get('database'),
$data->get('username'),
$data->get('password'),
$data->has('port') ? $data->get('port') : null
);
},
];