cape-dev / php-framework
A lightweight PHP web application framework for rapid development (routing, DI, database, views, console, caching).
Package info
github.com/joel767443/cape-dev-framework
Type:project
pkg:composer/cape-dev/php-framework
v1.0.3
2026-03-17 18:15 UTC
Requires
- php: >=8.1
- doctrine/orm: ^3.6
- firebase/php-jwt: ^7.0
- guzzlehttp/guzzle: ^7.10
- illuminate/database: ^12.54
- illuminate/filesystem: ^12.54
- illuminate/view: ^12.54
- league/commonmark: ^2.8
- monolog/monolog: ^3.10
- nesbot/carbon: ^3.11
- php-di/php-di: ^7.1
- predis/predis: ^3.4
- ramsey/uuid: ^4.9
- symfony/cache: ^8.0
- symfony/console: ^8.0
- symfony/event-dispatcher: ^8.0
- symfony/http-foundation: ^8.0
- symfony/messenger: ^8.0
- symfony/routing: ^8.0
- symfony/validator: ^8.0
- symfony/var-exporter: ^7.0
- vlucas/phpdotenv: ^5.6
Requires (Dev)
- pestphp/pest: ^4.4
- phpunit/phpunit: ^12.5
README
A lightweight custom PHP backend (routing + middleware + DI + validation + migrations) with a server-rendered landing page.
What’s included (backend)
- Routing: Symfony Routing (
symfony/routing) viaroutes/api.php+src/Http/Kernel.php - HTTP layer: Symfony HttpFoundation (
symfony/http-foundation) - DI container: PHP-DI (
php-di/php-di) + service providers (src/Providers/*) - Validation: Symfony Validator (
symfony/validator) +App\Requests\FormRequest - Database: Eloquent/Illuminate Database (
illuminate/database) + migrations (php run migrate) - ORM (optional): Doctrine ORM (
doctrine/orm) withphp run doctrine:schema:update - Outbound HTTP: Guzzle (
guzzlehttp/guzzle) viaWebApp\Http\Client\HttpClient - Auth: JWT (
firebase/php-jwt) middleware aliasauth_jwt+ token endpointPOST /api/auth/token - Queue: custom Redis queue + optional Symfony Messenger (
symfony/messenger) - Logging: Monolog (
monolog/monolog) - Testing: PHPUnit + Pest
- Extras: Dotenv, Carbon (
now()), UUID (uuid())
Installation + quickstart
Start the backend
chmod +x bin/dev ./bin/dev
One-word CLI (php run)
run still works, but you can also run the console as:
php run php run route:list php run dev
Backend (PHP)
composer install
# start HTTP server (from repo root)
php -S localhost:8001 -t public public/index.php
Open http://localhost:8001/ for the landing page, or http://localhost:8001/docs for docs.
API endpoints (current routes)
Routes are defined in routes/api.php.
| Method | Path | Description |
|---|---|---|
| POST | /api/auth/token |
Issue a JWT token |
| GET | /api/secure/ping |
JWT-protected example endpoint |
| POST | /api/validate |
Validation example (returns validated payload or 422) |
Backend architecture (source of truth)
- Entrypoint:
public/index.phploads routes fromroutes/api.php(androutes/web.php) and runsWebApp\Application. - HTTP kernel:
src/Http/Kernel.phpmatches routes (Symfony Routing), runs middleware, invokes controllers, and enforces that controllers return aSymfony\Component\HttpFoundation\Response. - Middleware: global middleware is wired in
src/Application.php. Route middleware is attached per route (or viaRouter::group()) and resolved viasrc/Http/Middleware/MiddlewareRegistry.php. - Validation: request validation is Symfony Validator via
App\Requests\FormRequest+WebApp\Validation\RequestValidator. If a controller action type-hints aFormRequest, it is automatically validated by the kernel before the controller runs. - Database: configured in
config/database.phpand wired viasrc/Providers/DatabaseServiceProvider.php(Illuminate Database / Eloquent). - Migrations: discovered in
app/Database/Migrationsand run viaphp run migrate.
CLI (run)
php run route:list php run make:request StoreItemRequest php run make:migration create_items_table php run migrate