mirror of
https://github.com/manualdousuario/marreta.git
synced 2025-09-01 10:10:14 +00:00
novo sistema de validação de campos obrigatorios e configurações
This commit is contained in:
parent
891c6df97a
commit
55ac7fe018
1 changed files with 96 additions and 51 deletions
147
app/config.php
147
app/config.php
|
@ -1,66 +1,111 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Main configuration file
|
||||||
* Arquivo de configuração principal
|
* Arquivo de configuração principal
|
||||||
*
|
*
|
||||||
|
* This file contains all global system settings, including:
|
||||||
* Este arquivo contém todas as configurações globais do sistema, incluindo:
|
* Este arquivo contém todas as configurações globais do sistema, incluindo:
|
||||||
* - Carregamento de variáveis de ambiente
|
*
|
||||||
* - Definições de constantes do sistema
|
* - Environment variables loading / Carregamento de variáveis de ambiente
|
||||||
* - Configurações de segurança
|
* - System constants definition / Definições de constantes do sistema
|
||||||
* - Configurações de bots e user agents
|
* - Security settings / Configurações de segurança
|
||||||
* - Lista de domínios bloqueados
|
* - Bot and user agent settings / Configurações de bots e user agents
|
||||||
* - Configurações de cache S3
|
* - Blocked domains list / Lista de domínios bloqueados
|
||||||
|
* - S3 cache settings / Configurações de cache S3
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require_once __DIR__ . '/vendor/autoload.php';
|
require_once __DIR__ . '/vendor/autoload.php';
|
||||||
|
|
||||||
// Carrega as variáveis de ambiente do arquivo .env
|
try {
|
||||||
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
|
// Initialize environment variables
|
||||||
$dotenv->load();
|
// Inicializa as variáveis de ambiente
|
||||||
|
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
|
||||||
|
$dotenv->load();
|
||||||
|
|
||||||
/**
|
// Validate required fields
|
||||||
* Configurações básicas do sistema
|
// Valida campos obrigatórios
|
||||||
*/
|
$dotenv->required([
|
||||||
define('SITE_NAME', isset($_ENV['SITE_NAME']) ? $_ENV['SITE_NAME'] : 'Marreta');
|
'SITE_NAME',
|
||||||
define('SITE_DESCRIPTION', isset($_ENV['SITE_DESCRIPTION']) ? $_ENV['SITE_DESCRIPTION'] : 'Chapéu de paywall é marreta!');
|
'SITE_DESCRIPTION',
|
||||||
define('SITE_URL', isset($_ENV['SITE_URL']) ? $_ENV['SITE_URL'] : 'https://' . $_SERVER['HTTP_HOST']);
|
'SITE_URL'
|
||||||
define('DNS_SERVERS', isset($_ENV['DNS_SERVERS']) ? $_ENV['DNS_SERVERS'] : '1.1.1.1, 8.8.8.8');
|
])->notEmpty();
|
||||||
define('DISABLE_CACHE', isset($_ENV['DISABLE_CACHE']) ? filter_var($_ENV['DISABLE_CACHE'], FILTER_VALIDATE_BOOLEAN) : false);
|
|
||||||
define('SELENIUM_HOST', isset($_ENV['SELENIUM_HOST']) ? $_ENV['SELENIUM_HOST'] : 'localhost:4444');
|
|
||||||
define('CACHE_DIR', __DIR__ . '/cache');
|
|
||||||
define('DEBUG', isset($_ENV['DEBUG']) ? filter_var($_ENV['DEBUG'], FILTER_VALIDATE_BOOLEAN) : false);
|
|
||||||
define('LANGUAGE', isset($_ENV['LANGUAGE']) ? $_ENV['LANGUAGE'] : 'pt-br');
|
|
||||||
|
|
||||||
/**
|
// Custom URL validation
|
||||||
* Configurações de Redis
|
// Validação personalizada de URL
|
||||||
*/
|
if (!filter_var($_ENV['SITE_URL'], FILTER_VALIDATE_URL)) {
|
||||||
define('REDIS_HOST', isset($_ENV['REDIS_HOST']) ? $_ENV['REDIS_HOST'] : 'localhost');
|
throw new Exception('SITE_URL must be a valid URL');
|
||||||
define('REDIS_PORT', isset($_ENV['REDIS_PORT']) ? $_ENV['REDIS_PORT'] : 6379);
|
}
|
||||||
define('REDIS_PREFIX', isset($_ENV['REDIS_PREFIX']) ? $_ENV['REDIS_PREFIX'] : 'marreta:');
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Configurações do Hawk.so
|
* Basic system settings
|
||||||
*/
|
* Configurações básicas do sistema
|
||||||
define('HAWK_TOKEN', isset($_ENV['HAWK_TOKEN']) ? $_ENV['HAWK_TOKEN'] : null);
|
*/
|
||||||
|
define('SITE_NAME', $_ENV['SITE_NAME']);
|
||||||
|
define('SITE_DESCRIPTION', $_ENV['SITE_DESCRIPTION']);
|
||||||
|
define('SITE_URL', $_ENV['SITE_URL']);
|
||||||
|
|
||||||
|
// Optional settings with default values
|
||||||
|
// Configurações opcionais com valores padrão
|
||||||
|
define('DNS_SERVERS', $_ENV['DNS_SERVERS'] ?? '1.1.1.1, 8.8.8.8');
|
||||||
|
define('DISABLE_CACHE', isset($_ENV['DISABLE_CACHE']) ?
|
||||||
|
filter_var($_ENV['DISABLE_CACHE'], FILTER_VALIDATE_BOOLEAN) : false);
|
||||||
|
define('SELENIUM_HOST', $_ENV['SELENIUM_HOST'] ?? 'localhost:4444');
|
||||||
|
define('CACHE_DIR', __DIR__ . '/cache');
|
||||||
|
define('DEBUG', isset($_ENV['DEBUG']) ?
|
||||||
|
filter_var($_ENV['DEBUG'], FILTER_VALIDATE_BOOLEAN) : false);
|
||||||
|
define('LANGUAGE', $_ENV['LANGUAGE'] ?? 'pt-br');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Configurações de Cache S3
|
* Redis settings
|
||||||
*/
|
* Configurações do Redis
|
||||||
define('S3_CACHE_ENABLED', isset($_ENV['S3_CACHE_ENABLED']) ? filter_var($_ENV['S3_CACHE_ENABLED'], FILTER_VALIDATE_BOOLEAN) : false);
|
*/
|
||||||
if (S3_CACHE_ENABLED) {
|
define('REDIS_HOST', $_ENV['REDIS_HOST'] ?? 'localhost');
|
||||||
define('S3_ACCESS_KEY', $_ENV['S3_ACCESS_KEY'] ?? '');
|
define('REDIS_PORT', $_ENV['REDIS_PORT'] ?? 6379);
|
||||||
define('S3_SECRET_KEY', $_ENV['S3_SECRET_KEY'] ?? '');
|
define('REDIS_PREFIX', $_ENV['REDIS_PREFIX'] ?? 'marreta:');
|
||||||
define('S3_BUCKET', $_ENV['S3_BUCKET'] ?? '');
|
|
||||||
define('S3_REGION', $_ENV['S3_REGION'] ?? 'us-east-1');
|
/**
|
||||||
define('S3_FOLDER', $_ENV['S3_FOLDER'] ?? 'cache/');
|
* Hawk.so settings
|
||||||
define('S3_ACL', $_ENV['S3_ACL'] ?? 'private');
|
* Configurações do Hawk.so
|
||||||
define('S3_ENDPOINT', $_ENV['S3_ENDPOINT'] ?? null);
|
*/
|
||||||
|
define('HAWK_TOKEN', $_ENV['HAWK_TOKEN'] ?? null);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* S3 Cache settings
|
||||||
|
* Configurações de Cache S3
|
||||||
|
*/
|
||||||
|
define('S3_CACHE_ENABLED', isset($_ENV['S3_CACHE_ENABLED']) ?
|
||||||
|
filter_var($_ENV['S3_CACHE_ENABLED'], FILTER_VALIDATE_BOOLEAN) : false);
|
||||||
|
|
||||||
|
if (S3_CACHE_ENABLED) {
|
||||||
|
// Validate required S3 settings when S3 cache is enabled
|
||||||
|
// Valida configurações obrigatórias do S3 quando o cache S3 está ativado
|
||||||
|
$dotenv->required([
|
||||||
|
'S3_ACCESS_KEY',
|
||||||
|
'S3_SECRET_KEY',
|
||||||
|
'S3_BUCKET'
|
||||||
|
])->notEmpty();
|
||||||
|
|
||||||
|
define('S3_ACCESS_KEY', $_ENV['S3_ACCESS_KEY']);
|
||||||
|
define('S3_SECRET_KEY', $_ENV['S3_SECRET_KEY']);
|
||||||
|
define('S3_BUCKET', $_ENV['S3_BUCKET']);
|
||||||
|
define('S3_REGION', $_ENV['S3_REGION'] ?? 'us-east-1');
|
||||||
|
define('S3_FOLDER', $_ENV['S3_FOLDER'] ?? 'cache/');
|
||||||
|
define('S3_ACL', $_ENV['S3_ACL'] ?? 'private');
|
||||||
|
define('S3_ENDPOINT', $_ENV['S3_ENDPOINT'] ?? null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load system configurations
|
||||||
|
* Carrega as configurações do sistema
|
||||||
|
*/
|
||||||
|
define('USER_AGENTS', require __DIR__ . '/data/user_agents.php');
|
||||||
|
define('BLOCKED_DOMAINS', require __DIR__ . '/data/blocked_domains.php');
|
||||||
|
define('DOMAIN_RULES', require __DIR__ . '/data/domain_rules.php');
|
||||||
|
define('GLOBAL_RULES', require __DIR__ . '/data/global_rules.php');
|
||||||
|
|
||||||
|
} catch (Dotenv\Exception\ValidationException $e) {
|
||||||
|
die('Environment Error: ' . $e->getMessage());
|
||||||
|
} catch (Exception $e) {
|
||||||
|
die('Configuration Error: ' . $e->getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Carrega as configurações do sistema
|
|
||||||
*/
|
|
||||||
define('USER_AGENTS', require __DIR__ . '/data/user_agents.php');
|
|
||||||
define('BLOCKED_DOMAINS', require __DIR__ . '/data/blocked_domains.php');
|
|
||||||
define('DOMAIN_RULES', require __DIR__ . '/data/domain_rules.php');
|
|
||||||
define('GLOBAL_RULES', require __DIR__ . '/data/global_rules.php');
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue