lcloss / php-mvc-skeleton
Framework PHP simples, sem dependências pesadas, para páginas e pequenos sites. Skeleton para `composer create-project`.
Requires
- php: >=8.4
- phpmailer/phpmailer: ^7.0
Requires (Dev)
- pestphp/pest: ^3.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-03 00:17:37 UTC
README
Framework PHP simples e leve — sem dependências pesadas — para páginas e pequenos sites (landing pages, formulários, painéis simples). Extraído e generalizado a partir do projeto desempenho-mais-2.
Inclui:
- Router com suporte a parâmetros de rota (
/posts/{id}) e middlewares. - Blade, um motor de templates próprio (subset do Laravel Blade:
@extends,@section,@yield,@include,@if/@else,@foreach,{{ }}/{!! !!},@csrf). - Database, wrapper PDO com suporte a SQLite, MySQL e PostgreSQL, e um mini sistema de migrações (
migrate.php, ficheiros emapp/migrations). - Model base com
create/find/all/update/delete. - Request, CSRF, Env (
.envsem dependências externas) e Mail (via PHPMailer). - Testes com Pest.
Usar como template para um novo projeto
composer create-project lcloss/php-mvc-skeleton meu-novo-projeto
cd meu-novo-projeto
php -S localhost:8000 -t public
O composer create-project corre automaticamente bin/setup.php, que cria o .env a partir do .env.example e gera um AGENTS.md com as convenções da framework (ver secção abaixo).
Desenvolvimento local (a partir deste repositório)
composer install
cp .env.example .env
php migrate.php
php -S localhost:8000 -t public
composer test
Estrutura
app/
App.php # bootstrap da aplicação
controllers/ # controllers (namespace app\controllers)
controllers/middlewares/
models/ # models (namespace app\models)
migrations/ # uma migração por ficheiro, com SQL por driver
config/
app.php, database.php, routes.php
lib/ # núcleo da framework (sem namespace, carregado pelo Autoloader)
public/
index.php # front controller
.htaccess
views/ # templates .blade.php
storage/logs/
tests/
Rotas
Definidas em config/routes.php:
[
'method' => 'GET',
'path' => '/posts/{id}',
'handler' => 'app\controllers\PostController@show',
'middlewares' => ['auth'],
],
Suporte para agentes de IA
Todo novo projeto criado via composer create-project já sai com um AGENTS.md na raiz
(gerado por bin/setup.php a partir de docs/ai-guidelines/AGENTS.md.stub), documentando as
convenções da framework e como evitar assumir recursos que ela não tem (Eloquent, Artisan,
Blade completo, etc.).
Além disso, bin/ai-context.php faz introspecção ao vivo do projeto — útil para um agente
confirmar rotas e schema reais em vez de adivinhar:
php bin/ai-context.php routes # rotas registadas em config/routes.php php bin/ai-context.php schema # tabelas/colunas do banco atual php bin/ai-context.php info # versão do PHP, driver de BD, middlewares, etc. php bin/ai-context.php all --json # tudo junto, em JSON
Esta framework não inclui um servidor MCP — um agente como o Claude Code já consegue correr
comandos de shell, e bin/ai-context.php --json cobre o mesmo caso de uso sem exigir um
processo persistente nem dependências novas.
Publicar no Packagist
- Ajusta
nameemcomposer.json(vendor/pacote). - Faz push para o GitHub e submete o repositório em packagist.org.
- Ativa o webhook do GitHub para atualizações automáticas.
Licença
MIT.