Este é um esqueleto base para projetos PHP, projetado para ser modular, organizado e reutilizável. Ele utiliza um roteador customizado e suporte para controladores, modelos e visualizações.
Estrutura moderna, clean e pronta para projetos PHP profissionais.
Skeleton-php/
├── app/
│ ├── Controllers/
│ ├── Core/
│ ├── Views/
│ │ └── partials/
│ └── Router.php
├── config.php
├── config/
│ └── env.php
├── public/
│ └── assets/
│ └── css/
├── routes/
│ └── web.php
├── vendor/
├── .env
├── index.php
└── README.md
- app/Controllers/: Controladores da aplicação.
- app/Core/: Classes centrais (Request, Response, etc).
- app/Views/: Views (HTML) e partials reutilizáveis.
- app/Router.php: Sistema de rotas.
- config.php: Configurações centralizadas (usa .env).
- config/env.php: Loader do .env.
- public/assets/css/: Arquivos CSS.
- routes/web.php: Definição das rotas.
- index.php: Ponto de entrada da aplicação.
As variáveis ficam no arquivo .env e são carregadas automaticamente. Exemplo:
APP_NAME=Skeleton PHP
APP_ENV=local
APP_DEBUG=true
APP_URL=http://localhost:8000
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=skeleton
DB_USERNAME=root
DB_PASSWORD=
SESSION_NAME=skeleton_session
Use-as via getenv('NOME') ou pelo array $config.
Definidas em routes/web.php:
$router->get('', 'HomeController@index');
$router->get('sobre', 'HomeController@sobre');
$router->get('produto/{id}', 'ProdutoController@show');
$router->get('documentacao', 'DocumentacaoController@index');- 404: Tratado no
Router.php(viewerrors/404.php). - 500: Tratado globalmente no
index.php(viewerrors/500.php).
- Testes manuais de navegação, rotas, parâmetros e tratamento de erros.
- Testes de renderização de views e integração de controllers.
- Recomenda-se PHPUnit para testes automatizados.
- PHP 8.1+ (ou superior)
- Composer
- Clone o repositório:
git clone https://github.com/seu-usuario/skeleton-php.git cd skeleton-php - Instale as dependências:
composer install
- Configure o arquivo
.envconforme seu ambiente. - Inicie o servidor embutido do PHP:
php -S localhost:8000 -t public
- Acesse http://localhost:8000 no navegador.
- Separe lógica de negócio em controllers e views.
- Use variáveis do
.envpara facilitar deploys e configurações. - Aproveite os partials para menus, headers e footers reutilizáveis.
- Siga o padrão MVC para facilitar manutenção e testes.
Contribuições são bem-vindas!
- Faça um fork do projeto.
- Crie uma branch:
git checkout -b minha-funcionalidade. - Commit:
git commit -m "feat: minha funcionalidade". - Push:
git push origin minha-funcionalidade. - Abra um Pull Request.
MIT. Consulte o arquivo LICENSE para mais informações.



