App src code

This commit is contained in:
2023-02-14 17:27:01 -03:00
parent ab6c7fa9dd
commit 5eec0d93b0
26 changed files with 525 additions and 0 deletions

40
app/setup/app.php Normal file
View File

@ -0,0 +1,40 @@
<?php
use DI\ContainerBuilder;
use DI\Bridge\Slim\Bridge;
require_once 'composer.php';
$builder = new ContainerBuilder();
$folders = [
'settings',
'setups'
];
foreach ($folders as $f) {
$folder = implode(DIRECTORY_SEPARATOR, [__DIR__, $f]);
if (!file_exists($folder)) {
continue;
}
$files = new FilesystemIterator($folder);
foreach ($files as $file) {
if ($file->isDir()) {
continue;
}
$builder->addDefinitions($file->getRealPath());
}
}
$app = Bridge::create($builder->build());
$folder = implode(DIRECTORY_SEPARATOR, [__DIR__, 'middlewares']);
if (file_exists($folder)) {
$files = new FilesystemIterator($folder);
foreach ($files as $file) {
if ($file->isDir()) {
continue;
}
include_once $file->getRealPath();
}
}
return $app;

6
app/setup/composer.php Normal file
View File

@ -0,0 +1,6 @@
<?php
require_once implode(DIRECTORY_SEPARATOR, [
dirname(__FILE__, 2),
'vendor',
'autoload.php'
]);

View File

@ -0,0 +1,9 @@
<?php
$folder = $app->getContainer()->get('folders')->get('routes');
$files = new FilesystemIterator($folder);
foreach ($files as $file) {
if ($file->isDir()) {
continue;
}
include_once $file->getRealPath();
}

View File

@ -0,0 +1,4 @@
<?php
return [
'logs_folder' => $_ENV['LOGS_PATH'] ?? '/logs'
];

View File

@ -0,0 +1,22 @@
<?php
return [
'folders' => function() {
return new DI\Container([
'base' => dirname(__FILE__, 3),
'resources' => DI\String('{base}/resources'),
'routes' => DI\String('{resources}/routes'),
'cache' => DI\String('{base}/cache'),
'templates' => DI\String('{resources}/views')
]);
/*$arr = ['base' => dirname(__FILE__, 3)];
$arr['resources'] = implode(DIRECTORY_SEPARATOR, [
$arr['base'],
'resources'
]);
$arr['routes'] = implode(DIRECTORY_SEPARATOR, [
$arr['resources'],
'routes'
]);
return (object) $arr;*/
}
];

View File

@ -0,0 +1,11 @@
<?php
return [
'urls' => function() {
$arr = ['base' => $_ENV['WEB_URL'] ?? 'http://localhost:' . ($_ENV['WEB_PORT'] ?? 8030)];
$arr['assets'] = implode('/', [
$arr['base'],
'assets'
]);
return (object) $arr;
}
];

View File

@ -0,0 +1,16 @@
<?php
use Psr\Container\ContainerInterface;
return [
Psr\Log\LoggerInterface::class => function(ContainerInterface $container) {
$logger = new Monolog\Logger('logger');
$logger->pushHandler(
new Monolog\Handler\RotatingFileHandler(
implode(DIRECTORY_SEPARATOR, [
$container->get('logs_folder'), 'php.log'
])
)
);
return $logger;
}
];

View File

@ -0,0 +1,15 @@
<?php
use Psr\Container\ContainerInterface;
return [
Slim\Views\Blade::class => function(ContainerInterface $container) {
return new Slim\Views\Blade(
$container->get('folders')->get('templates'),
$container->get('folders')->get('cache'),
null,
[
'urls' => $container->get('urls')
]
);
}
];

View File

@ -0,0 +1,10 @@
<?php
use Psr\Container\ContainerInterface;
return [
ProVM\Common\Service\Logs::class => function(ContainerInterface $container) {
return new ProVM\Common\Service\Logs(
$container->get('logs_folder')
);
}
];