feat: add initial setup for KrothiumAPI with .htaccess and index.php
- Created .htaccess for URL rewriting to route all requests to index.php - Added index.php to bootstrap the KrothiumAPI with environment variables and configuration settings - Configured application mode, paths, router settings, session management, error logging, and logging driver
This commit is contained in:
@@ -0,0 +1,2 @@
|
|||||||
|
.env
|
||||||
|
vendor/
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<IfModule mod_rewrite.c>
|
||||||
|
RewriteEngine On
|
||||||
|
|
||||||
|
# Se já estiver na pasta public, não reescreve novamente
|
||||||
|
RewriteRule ^public(/.*)?$ - [L]
|
||||||
|
|
||||||
|
# Reescreve tudo para a pasta public
|
||||||
|
RewriteRule ^(.*)$ public/$1 [L]
|
||||||
|
</IfModule>
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"name": "cybercore/workbloom-erp",
|
||||||
|
"type": "software",
|
||||||
|
"require": {
|
||||||
|
"ext-pdo": "*",
|
||||||
|
"ext-json": "*",
|
||||||
|
"php": ">=8.2",
|
||||||
|
"lcobucci/jwt": "5.6.0",
|
||||||
|
"ramsey/uuid": "4.7.4",
|
||||||
|
"firebase/php-jwt": "v6.11.1",
|
||||||
|
"symfony/var-dumper": "v6.4.26",
|
||||||
|
"vlucas/phpdotenv": "v5.6.2",
|
||||||
|
"claudecio/krothiumapi": "v1.0",
|
||||||
|
"defuse/php-encryption": "v2.4.0"
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"WorkbloomERP\\": "app/Shared",
|
||||||
|
"WorkbloomERP\\Module\\": "app/Module"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Generated
+1338
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,10 @@
|
|||||||
|
<IfModule mod_rewrite.c>
|
||||||
|
RewriteEngine On
|
||||||
|
|
||||||
|
# Se for arquivo ou pasta real, deixa passar
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-d
|
||||||
|
|
||||||
|
# Tudo vai pro front controller
|
||||||
|
RewriteRule ^ index.php [L,QSA]
|
||||||
|
</IfModule>
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
<?php
|
||||||
|
// Importa autoload do Composer
|
||||||
|
require_once realpath(path: __DIR__ . '/../vendor/autoload.php');
|
||||||
|
|
||||||
|
use Dotenv\Dotenv;
|
||||||
|
use KrothiumAPI\KrothiumAPI;
|
||||||
|
|
||||||
|
// Carrega variáveis de ambiente
|
||||||
|
$dotenv = Dotenv::createImmutable(paths: __DIR__ . '/..');
|
||||||
|
$dotenv->load();
|
||||||
|
|
||||||
|
// ======================================
|
||||||
|
// Inicializa KrothiumAPI com configs
|
||||||
|
// ======================================
|
||||||
|
KrothiumAPI::init(config: [
|
||||||
|
'app' => [
|
||||||
|
'mode' => $_ENV['APP_MODE'] ?? 'DEV', // DEV | PROD
|
||||||
|
],
|
||||||
|
'paths' => [
|
||||||
|
'root' => __DIR__ . '/..',
|
||||||
|
'src' => __DIR__ . '/../app',
|
||||||
|
'module' => __DIR__ . '/../app/Module',
|
||||||
|
'storage' => __DIR__ . '/../storage',
|
||||||
|
'component' => __DIR__ . '/../app/Common/Component',
|
||||||
|
],
|
||||||
|
'router' => [
|
||||||
|
'base_path' => $_ENV['ROUTER_BASE_PATH'] ?? '',
|
||||||
|
'allowed_origins' => ['*'],
|
||||||
|
],
|
||||||
|
'system' => [
|
||||||
|
'enable_session' => true,
|
||||||
|
'default_timezone' => 'America/Fortaleza',
|
||||||
|
],
|
||||||
|
'errors' => [
|
||||||
|
'error_log' => __DIR__ . '/../storage/Logs/php-error.log',
|
||||||
|
],
|
||||||
|
'logger' => [
|
||||||
|
'driver' => 'FILE',
|
||||||
|
'logDir' => __DIR__ . '/../storage/Logs'
|
||||||
|
],
|
||||||
|
'constants' => [
|
||||||
|
// Constantes extras específicas da aplicação, se precisar.
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
|
||||||
|
// Importa rotas da API v0
|
||||||
|
|
||||||
|
// ============================
|
||||||
|
// Dispara o roteador
|
||||||
|
// ============================
|
||||||
|
KrothiumAPI::routerDispatch();
|
||||||
Reference in New Issue
Block a user