Configurações
O Inphinit oferece diversas abordagens de configuração adaptadas a diferentes finalidades, incluindo o uso de variáveis de ambiente.
Variáveis ambientais
As variáveis de ambiente podem ser configuradas diretamente no ambiente, por meio de diretivas ou através de um .env arquivo. A seguir, uma descrição das variáveis de ambiente padrão do aplicativo:
| Variável | Descrição |
|---|---|
APP_ENVIRONMENT |
Define o ambiente atual; qualquer valor é aceito. Por padrão, o valor APP_ENVIRONMENT=development ativará o depurador do framework. |
APP_BUILT_IN_HOST |
Utilizado apenas para o servidor web integrado, este parâmetro define o host padrão. Observe que o host ainda pode ser alterado através da linha de comando (ex: run serve --host 0.0.0.0). |
APP_BUILT_IN_PORT |
Utilizado apenas para o servidor web integrado, este parâmetro define a porta padrão. Observe que a porta ainda pode ser alterada através da linha de comando (ex: run serve --port 8001). |
APP_BUILT_IN_HOST |
Used only for the built-in web server, this sets the default host. Note that the host can still be overridden via the command line (e.g., run serve --host 0.0.0.0) |
APP_BUILT_IN_PORT |
Used only for the built-in web server, this sets the default port. Note that the port can still be overridden via the command line (e.g., run serve --port 8001) |
APP_FORWARDED_PROTO |
- |
APP_FORWARDED_HOST |
- |
APP_FORWARDED_PORT |
- |
APP_SESSION_EXPIRES |
Usado para determinar a duração de uma sessão criada por uma instância Inphinit\Session de |
APP_COMPOSER_AUTOLOAD |
Habilita ou desabilita o composer-autoload. Observe que o infinit-autoload é o padrão e funciona em conjunto com o Composer, sendo altamente otimizado. O composer-autoload só deve ser usado se você tiver um pacote de terceiros conflitante que exija o composer-autoload. |
APP_SKIP_ENV_FILE |
Essa variável é opcional, mas muito útil ao executar em servidores que oferecem configuração de variáveis de ambiente ou configurações baseadas em painel, ou ao usar o Docker, onde carregar um arquivo .env é desnecessário. Nesses cenários, ao usar APP_SKIP_ENV_FILE=1 impedirá que o arquivo .env seja carregado desnecessariamente. |
Por padrão, o framework carregará o .env arquivo, mas se você quiser definir as variáveis manualmente ou por meio de um painel no seu servidor, ou se o seu servidor fornecer um recurso específico para esse cenário, você pode usar APP_SKIP_ENV_FILE=1, como mencionado anteriormente. Abaixo, segue um exemplo via terminal para uso local em ambientes de desenvolvimento:
APP_ENVIRONMENT=development
APP_BUILT_IN_HOST=localhost
APP_BUILT_IN_PORT=5000
APP_SESSION_EXPIRES=86400
APP_SKIP_ENV_FILE=1
./run serve
[Mon Dec 8 15:01:24 2025] PHP 8.5.0RC4 Development Server (http://localhost:5000) started
Carregamento automático
O Inphinit Autoloader é um autoloader otimizado que permite carregar classes instaladas via Composer. Para usar o Composer Autoloader, defina o valor APP_COMPOSER_AUTOLOAD=1 nas variáveis de ambiente (ou no arquivo .env).
É importante notar que o infinit-autoload é bastante otimizado e você raramente precisará alterá-lo; você só deve fazer isso se alguma biblioteca de terceiros estiver causando um conflito que exija o composer-autoload.
Constantes
As constantes padrão na estrutura permitem alterações de comportamento e implementações personalizadas sem a necessidade de modificar os recursos existentes.
| Constante | Editável | Descrição |
|---|---|---|
INPHINIT_ROOT |
✔️ é editável
|
Deve conter o caminho da pasta onde index.php está localizado. |
INPHINIT_START |
✔️ é editável
|
Pode ser usado para testes de desempenho simples, estimando o tempo necessário para a execução de uma tarefa, desde o início da execução. |
INPHINIT_SYSTEM |
✔️ é editável
|
Deve conter o caminho da pasta do sistema; esta pasta contém o projeto, os dados e os pacotes. |
INPHINIT_PATH |
❌ não editável
|
Contém o caminho da solicitação de URL atual. Essa constante é usada principalmente pelo sistema de rotas. |
INPHINIT_URL |
❌ não editável
|
Contém a URL onde a aplicação está localizada. Esta constante é usada principalmente pelo sistema de escopo de rotas. |
INPHINIT_MAINTENANCE |
❌ não editável
|
Contém a localização do arquivo que define se o aplicativo está em modo de manutenção. O valor é armazenado em uma constante para evitar acoplamento desnecessário, caso você precise implementar algo específico para o comportamento do modo de manutenção. |
Arquivos de configuração
Na pasta system/Configs, você pode adicionar scripts PHP que contenham um array com valores adequados para diferentes usos. Observe que não é recomendável armazenar valores sensíveis diretamente.
O projeto padrão contém alguns exemplos de uso totalmente hipotéticos, que devem ser ajustados ou usados simplesmente para entender o mecanismo e adaptados às suas necessidades. Hipoteticamente, se você fosse usar a API MySQLi para se conectar, poderia criar um arquivo de configuração como este system/Configs/databases/main.php e adicionar algo como:
<?php
use Inphinit\Experimental\Environment\Env;
return array(
'host' => Env::entry('DB_HOST'),
'user' => Env::entry('DB_USER'),
'pass' => Env::entry('DB_PASS'),
'database' => Env::entry('DB_DATABASE'),
'charset' => 'utf8',
'report_mode' => MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT,
);
E então use-o com a Inphinit\Config turma, por exemplo hipotético:
<?php
use Inphinit\Configs;
$config = new Configs('databases.main'); // from: system/Configs/databases/main.php
mysqli_report($config->report_mode);
$mysqli = new mysqli($config->host, $config->user, $config->pass, $config->database);