# AxiumPHP - Guia de Primeiro Uso O **AxiumPHP** é um micro-framework PHP modular no padrão MVC, ideal para criar sistemas organizados e escaláveis sem depender de frameworks pesados. Ele já vem pronto para trabalhar com módulos independentes, carregamento automático de rotas, tratamento global de erros e suporte a APIs (JSON) ou páginas HTML. --- ## 🚀 Instalação e Configuração ### 1. Clonar o repositório ```bash git clone https://github.com/claudecio/AxiumPHP.git ``` ### 2. Instalar as dependências via Composer ```bash composer install ``` ### 3. Configurar o ambiente Copie o arquivo `.env.example` para `.env`: ```bash cp .env.example .env ``` Depois, ajuste as variáveis conforme seu ambiente (conexão com banco, fuso horário, URL do frontend, etc.). ### 4. Configurar o servidor **Usando PHP embutido:** ```bash php -S localhost:8000 -t public ``` **Usando Apache:** Aponte o `DocumentRoot` para a pasta `public/`. --- ## 📂 Estrutura do Projeto ``` app/ ├── Common/ # Serviços e controladores compartilhados ├── Module/ # Módulos independentes (Controllers, Models, Views, Routes, bootstrap.php) └── Core/ # Núcleo do framework public/ # Arquivos públicos (index.php, assets) vendor/ # Dependências do Composer .env # Configurações do ambiente ``` --- ## 📌 Entendendo o index.php O arquivo `public/index.php` é o ponto de entrada da aplicação. Nele, além do autoload do Composer, algumas constantes precisam ser definidas: - **ROUTER_MODE** → define o modo de resposta do roteador (`JSON` para APIs, `VIEW` para views). - **APP_SYS_MODE** → define o modo de sistema, PROD para produção ou DEV para desenvolvimento. - **ROUTER_ALLOWED_ORIGINS** → array onde é definido os dominios permitidos para usar o CORS. - **INI_SYSTEM_PATH** → caminho absoluto para a pasta `app` do projeto. - **MODULE_PATH** → caminho absoluto para a pasta `Module`, onde ficam os módulos do sistema. - **STORAGE_FOLDER_PATH** → caminho absoluto para a pasta `Storage`, utilizada para arquivos e logs. **Exemplo:** ```php const ROUTER_MODE = 'JSON'; const APP_SYS_MODE = 'DEV' # PROD = Production // DEV = Development // Case Router Mode in JSON const ROUTER_ALLOWED_ORIGINS = [ '*', 'http://app.localhost:8000', ]; define('INI_SYSTEM_PATH', realpath(__DIR__ . "/../app")); define('MODULE_PATH', realpath(__DIR__ . "/../app/Module")); define('STORAGE_FOLDER_PATH', realpath(__DIR__ . "/../app/Storage")); ``` Além disso, o `index.php`: - Carrega configurações globais (`Config`); - Inicializa o `LoggerService`; - Ativa o `ErrorHandler`; - Define o fuso horário (`SYSTEM_TIMEZONE` do `.env`); - Inicia sessão, se necessário; - Configura CORS; - Carrega os módulos iniciais. --- ## 🛠 Criando e Registrando um Módulo ### 1. Criar a pasta do módulo ```bash mkdir -p app/Module/Hello ``` ### 2. Criar o Controller Arquivo: `app/Module/Hello/Controllers/HelloController.php` ```php