Estrutura
A estrutura de aplicação do Inphinit proporciona uma organização fácil de entender sem sacrificar a flexibilidade, podendo ser ajustada conforme necessário.
Estrutura de pastas
.env.sample
Esse arquivo pode ser copiado para .env quando após a instação do framework. Na instalação via Composer este arquivo é copiado automaticamente para .env.
.env
O arquivo .env contêm valores de configuração comuns que podem variar dependendo de a aplicação estar sendo executada em ambiente de desenvolvimento ou em um servidor web de produção. Seu uso não é obrigatório, visto que é possivel configurar variaveis de ambiente de outras formas, como servidores de produção fornecem interface para configurar tais variaveis via painel de controle. Os valores das variaveis de ambiente podem ser usados pelos arquivos de configuração, localizados no diretório system/configs/, pela variavel super-global $_ENV ou pelos métodos experimentais:
Inphinit\Experimental\Environment\Env::entry()Inphinit\Experimental\Environment\Env::bool()Inphinit\Experimental\Environment\Env::float()Inphinit\Experimental\Environment\Env::int()
.htaccess
O arquivo .htaccess no diretório raiz é usado para redirecionar tudo para a pasta public/; isso é usado em ambientes onde você deseja executar o framework a partir de uma subpasta, independentemente da configuração do VirtualHost.
web.config
O arquivo web.config configura o roteamento e o tratamento de erros HTTP comuns para o servidor IIS.
Caddyfile
O arquivo Caddyfile configura o roteamento e o tratamento de erros HTTP comuns para Caddy e FrankenPHP.
run
Executa os comandos CLI definidos em system/console.php e comandos built-in do framework. Para mais detalhes acesse Comandos de console.
run.bat
Executa os comandos CLI definidos em system/console.php no Windows.
public/
O diretório public/ abriga seus recursos (assets), como imagens, JavaScript e CSS. Arquivos de script PHP independente do sistema de rotas também podem ser adicionados nesse diretório.
public/.htaccess
O arquivo public/.htaccess configura o roteamento HTTP comum e o tratamento de erros para o servidor Apache.
public/index.php
O arquivo index.php é o ponto de entrada do sistema de rotas em web, e também é usado para configurar as constantes INPHINIT_ROOT e INPHINIT_SYSTEM para definir aonde é pasta root e a pasta do projeto. Geralmente não é necessário alterar essas constantes.
system/
O diretório system/ contém a estrutura do projeto
system/console.php
Define comandos CLI personalizados.
system/dev.php
O arquivo system/dev.php atua como system/main.php, utilizado para configurar rotas que estão só disponiveis no ambiente de desenvolvimento. Quando estiver em ambiente de desenvolvimento o system/dev.php será executado primeiro e em seguida será executado system/main.php.
system/errors.php
Gerencia a renderização de páginas de erro personalizadas geradas pelo SAPI.
system/main.php
Usado para definir rotas web e escopos de rotas.
system/boot/
O diretório system/boot/ contém configurações do autoloader, tipos MIME (usado apenas no servidor web integrado do PHP) e metadados dos pacotes instalados usando Composer.
system/boot/importpackages.php
Script usado pelo comando run pkg:up para mapear namespaces, classes e funções de pacotes instalados via Composer, para serem usados pelo inphinit-autoload.
system/boot/media_types.php
Mapeia extensões de arquivos para cabeçalhos Content-Type do servidor web integrado do PHP.
system/boot/namespaces.php
Contêm o mapeamento dos namespaces, classes e funções de pacotes instalados via Composer para serem usados
pelo inphinit-autload. Esse script pode ser editado manualmente, mas é preferivel usar o importpackages.php
para configurar o mapeamento de pacotes Composer. Também é possivel usar em projetos que não usem Composer,
podendo definir os namespaces usando o método Inphinit\Packages\Import::setItem() no arquivo importpackages.php.
system/boot/metadata/
O diretório system/boot/metadata/ contém cache de metada sobre os pacotes instalados usando Composer que podem ser acessados pelo método Inphinit\Packages\Package::info(). Exemplo de uso:
use Inphinit\Packages\Package;
$version = Package::info($package, Package::VERSION);
echo "{$package} version: {$version}<br>";
$type = Package::info($package, Package::TYPE);
echo "{$package} type: {$type}<br>";
$source = Package::info($package, Package::SOURCE);
echo "{$package} source: {$source}<br>";
$time = Package::info($package, Package::TIME);
echo "{$package} time: {$time}<br>";
$url = Package::info($package, Package::URL);
echo "{$package} url: {$url}<br>";
$description = Package::info($package, Package::DESCRIPTION);
echo "{$package} description: {$description}<br>";
system/configs/
O diretório system/boot/configs/ contém arquivos de configuração. Para mais detalhes acesse Configurações.
system/configs/debug.php
O arquivo system/configs/debug.php permite configurar um link de atalho para que um editor (como exemplo Visual Studio Code) abra o arquivo com problema diretamente na linha indicada, além de também poder configurar um link de atalho para uma IA analisar a mensagem de erro ou para um buscador. Para mais detalhes:
system/Controllers/
O diretório system/Controllers/ contém classes de controladores chamadas usadas pelas rotas. Para mais detalhes acesse Configurações.
system/Commands/
O diretório system/Commands/ contém classes de comandos usadas pela interface CLI integrada. Para mais detalhes acesse Comandos de console.
system/storage/
O diretório system/storage/ contém arquivos gerados pela aplicação (por exemplo, cache, logs e arquivos temporários).
system/vendor/
O diretório system/vendor/ contém dependências de terceiros gerenciadas pelo Composer e pelo framework principal.
system/views/
O diretório system/views/ contém arquivos usados pelo sistema de Views do framework. Para mais detalhes acesse Views.