# Uso do Symfony Dotenv no SysCMS Este documento explica como utilizar o sistema de variáveis de ambiente implementado com Symfony Dotenv no projeto SysCMS. > **🚀 Dica Rápida:** > Se você está instalando o SysCMS pela primeira vez, utilize o **Instalador Web** (`/install`). Ele criará o arquivo `.env` automaticamente para você com base no `.env.example`. ## Arquivos Principais ### 1. `app/Helpers/Environment.php` Helper centralizado que fornece funções para carregar e acessar variáveis de ambiente. ### 2. `.env` Arquivo que contém as variáveis de ambiente específicas do projeto (senhas, chaves de API, configurações locais). **Nunca versione este arquivo!** ### 3. `.env.example` Modelo das variáveis necessárias. Este arquivo é versionado e serve como base para criar o `.env`. ### 4. `bootstrap/app.php` Ponto de entrada onde o ambiente é carregado automaticamente. ## Funções Disponíveis ### `load_env(?string $path = null): void` Carrega as variáveis de ambiente do arquivo `.env`. É chamado automaticamente na inicialização da aplicação. ### `get_env(string $key, $default = null)` Obtém uma variável de ambiente com valor padrão. ```php $dbHost = get_env('DB_HOST', 'localhost'); $appName = get_env('APP_NAME', 'SysCMS'); ``` ### `env(string $key, $default = null)` Alias para `get_env()` para manter compatibilidade. ```php $debug = env('APP_DEBUG', false); ``` ### `env_bool(string $key, bool $default = false): bool` Obtém uma variável de ambiente como booleano. ```php $debug = env_bool('APP_DEBUG', false); $cacheEnabled = env_bool('CACHE_ENABLED', true); ``` ### `env_int(string $key, int $default = 0): int` Obtém uma variável de ambiente como inteiro. ```php $port = env_int('DB_PORT', 3306); $timeout = env_int('TIMEOUT', 30); ``` ### `get_db_config(): array` Retorna um array com a configuração do banco de dados completa. ```php $config = get_db_config(); // [ // 'driver' => 'mysql', // 'host' => 'localhost', // 'port' => '3306', // 'database' => 'syscms', // 'username' => 'root', // 'password' => 'root', // 'charset' => 'utf8mb4', // 'collation' => 'utf8mb4_unicode_ci', // 'prefix' => '' // ] ``` ### `get_app_config(): array` Retorna um array com a configuração da aplicação. ```php $config = get_app_config(); // [ // 'name' => 'SysCMS', // 'env' => 'development', // 'debug' => true, // 'url' => 'http://localhost:16240', // 'timezone' => 'America/Sao_Paulo', // 'key' => '...' // ] ``` ### `get_mail_config(): array` Retorna um array com a configuração de email. ```php $config = get_mail_config(); // [ // 'transport' => 'smtp', // 'host' => 'sandbox.smtp.mailtrap.io', // 'port' => '2525', // 'username' => '...', // 'password' => '...', // 'encryption' => 'tls', // 'from_address' => '...', // 'from_name' => 'SysCMS' // ] ``` ## Exemplos de Uso ### Em Controllers ```php addConnection($dbConfig); } } ``` ### Em Models ```php