Auth, Login, Home, Venta->Listados->Precios

This commit is contained in:
Juan Pablo Vial
2023-07-24 20:55:26 -04:00
parent d9d5a15376
commit 1a7b10ce3c
130 changed files with 4302 additions and 0 deletions

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

@ -0,0 +1,45 @@
<?php
use DI\ContainerBuilder;
use DI\Bridge\Slim\Bridge;
require_once 'composer.php';
function buildApp() {
$builder = new ContainerBuilder();
$folders = [
'settings',
'setups'
];
foreach ($folders as $folder_name) {
$folder = implode(DIRECTORY_SEPARATOR, [
__DIR__,
$folder_name
]);
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;
}
require_once $file->getRealPath();
}
}
return $app;
}
return buildApp();

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,2 @@
<?php
$app->add($app->getContainer()->get(Incoviba\Middleware\Authentication::class));

View File

@ -0,0 +1,2 @@
<?php
Monolog\ErrorHandler::register($app->getContainer()->get(Psr\Log\LoggerInterface::class));

View File

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

View File

@ -0,0 +1,2 @@
<?php
return $_ENV;

View File

@ -0,0 +1,12 @@
<?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')
]);
}
];

View File

@ -0,0 +1,21 @@
<?php
return [
'urls' => function() {
$urls = [
'base' => $_ENV['APP_URL'] ?? '',
];
$urls['api'] = implode('/', [
$urls['base'],
'api'
]);
$urls['assets'] = implode('/', [
$urls['base'],
'assets'
]);
$urls['images'] = implode('/', [
$urls['assets'],
'images'
]);
return (object) $urls;
}
];

View File

@ -0,0 +1,18 @@
<?php
use Psr\Container\ContainerInterface;
return [
Incoviba\Common\Define\Database::class => function(ContainerInterface $container) {
return new Incoviba\Common\Implement\Database\MySQL(
$container->has('MYSQL_HOST') ? $container->get('MYSQL_HOST') : 'db',
$container->get('MYSQL_DATABASE'),
$container->get('MYSQL_USER'),
$container->get('MYSQL_PASSWORD')
);
},
Incoviba\Common\Define\Connection::class => function(ContainerInterface $container) {
return new Incoviba\Common\Implement\Connection(
$container->get(Incoviba\Common\Define\Database::class)
);
}
];

32
app/setup/setups/logs.php Normal file
View File

@ -0,0 +1,32 @@
<?php
use Psr\Container\ContainerInterface;
return [
Psr\Log\LoggerInterface::class => function(ContainerInterface $container) {
return new Monolog\Logger('incoviba', [
new Monolog\Handler\FilterHandler(
(new Monolog\Handler\RotatingFileHandler('/logs/debug.log'))
->setFormatter(new Monolog\Formatter\LineFormatter(null, null, false, false, true)),
Monolog\Level::Debug,
Monolog\Level::Notice
),
new Monolog\Handler\FilterHandler(
(new Monolog\Handler\RotatingFileHandler('/logs/error.log'))
->setFormatter(new Monolog\Formatter\LineFormatter(null, null, false, false, true)),
Monolog\Level::Warning,
Monolog\Level::Error
),
new Monolog\Handler\FilterHandler(
(new Monolog\Handler\RotatingFileHandler('/logs/critical.log'))
->setFormatter(new Monolog\Formatter\LineFormatter(null, null, false, false, true)),
Monolog\Level::Critical
)
], [
$container->get(Monolog\Processor\PsrLogMessageProcessor::class),
$container->get(Monolog\Processor\WebProcessor::class),
$container->get(Monolog\Processor\IntrospectionProcessor::class),
$container->get(Monolog\Processor\MemoryUsageProcessor::class),
$container->get(Monolog\Processor\MemoryPeakUsageProcessor::class)
]);
}
];

View File

@ -0,0 +1,15 @@
<?php
use Psr\Container\ContainerInterface;
return [
Psr\Http\Message\ResponseFactoryInterface::class => function(ContainerInterface $container) {
return $container->get(Nyholm\Psr7\Factory\Psr17Factory::class);
},
Incoviba\Middleware\Authentication::class => function(ContainerInterface $container) {
return new Incoviba\Middleware\Authentication(
$container->get(Psr\Http\Message\ResponseFactoryInterface::class),
$container->get(Incoviba\Service\Login::class),
implode('/', [$container->get('APP_URL'), 'login'])
);
}
];

View File

@ -0,0 +1,14 @@
<?php
use Psr\Container\ContainerInterface;
return [
Incoviba\Service\Login::class => function(ContainerInterface $container) {
return new Incoviba\Service\Login(
$container->get(Incoviba\Repository\Login::class),
$container->get('COOKIE_NAME'),
$container->get('MAX_LOGIN_HOURS'),
$container->has('COOKIE_DOMAIN') ? $container->get('COOKIE_DOMAIN') : '',
$container->has('COOKIE_PATH') ? $container->get('COOKIE_PATH') : ''
);
}
];

View File

@ -0,0 +1,23 @@
<?php
use Psr\Container\ContainerInterface;
return [
Incoviba\Common\Alias\View::class => function(ContainerInterface $container) {
$folders = $container->get('folders');
$global_variables = [
'urls' => $container->get('urls'),
'money_url' => '',
'login' => $container->get(Incoviba\Service\Login::class),
'format' => $container->get(Incoviba\Service\Format::class),
];
if ($global_variables['login']->isIn()) {
$global_variables['user'] = $global_variables['login']->getUser();
}
return new Incoviba\Common\Alias\View(
$folders->get('templates'),
$folders->get('cache'),
null,
$global_variables
);
}
];