A collection of small, focused, PSR-compliant PHP packages.
Compose only the pieces you need — every package stands on its own.
Website · Packagist · Discussions · Contributing
InitPHP publishes a family of independent, single-responsibility PHP packages. Each one solves a specific problem — HTTP messaging, routing, validation, sessions, etc. — and adheres to the relevant PHP-FIG standard (PSR-3, PSR-7, PSR-11, PSR-12, PSR-15, PSR-16, PSR-18 where applicable).
InitPHP is not a framework. There is no monolithic runtime, no opinionated bootstrap, no "you must structure your app like this". Take a router and nothing else; pair a query builder with a third-party DI container; or combine a dozen InitPHP packages to build something larger. The choice is yours.
If you have used the League of Extraordinary Packages or browsed Symfony's individual components, the model will feel familiar.
| Package | What it does |
|---|---|
initphp/http |
PSR-7 messages, PSR-17 factory, PSR-18 client — a self-contained HTTP toolkit. |
initphp/router |
Fast HTTP router with grouping, middleware, route caching and PSR-7 integration. |
initphp/database |
PDO-based DBAL with Data Mapper, Query Builder and migration support. |
initphp/container |
Minimal PSR-11 dependency container with reflection-based autowiring. |
initphp/auth |
Pluggable authentication with adapter-based credential and session storage. |
initphp/validation |
Expressive, rule-based data validation with fluent syntax. |
Every package is a standalone Composer install. There is no umbrella package to pull in — depend only on what you use.
composer require initphp/routeruse InitPHP\Router\Router;
$router = new Router();
$router->get('/hello/{name}', function (string $name) {
return "Hello, {$name}!";
});
$router->run();Browse the full documentation at initphp.org.
Browse all 28 active packages by category
initphp/http— PSR-7 / 17 / 18 toolkitinitphp/router— HTTP router
initphp/database— DBAL, Data Mapper, Query Builderinitphp/barbarian— Database migrationsinitphp/cache— PSR-16 simple cache (File, Redis, Memcache, PDO adapters)initphp/sessions— Session manager (PDO, Memcache, Redis, Cookie, File, MongoDB adapters)initphp/cookies— Cookie management
initphp/auth— Authenticationinitphp/encryption— OpenSSL / Sodium encrypt-decryptinitphp/escaper— Context-aware output escapinginitphp/validation— Input validation
initphp/console— CLI application toolkit (incl. ANSI table renderer)
initphp/views— View engineinitphp/translator— Multi-language support
initphp/container— PSR-11 DI containerinitphp/config— Configuration managerinitphp/dotenv—.envloaderinitphp/events— Event dispatcher / hooksinitphp/logger— PSR-3 logger (File, PDO handlers)initphp/parameterbag— Key/value parameter bag
initphp/fiber-loops— PHP 8.1 fiber-based event loopinitphp/socket— TCP / TLS / UDP / SSL socketsinitphp/queue— Queue (PDO, RabbitMQ adapters)
initphp/input— Request input handlinginitphp/upload— File upload (Local, S3, FTP adapters)initphp/mailer— Mail sendinginitphp/performance-meter— Tiny zero-dep profiler
The ecosystem has been streamlined: several narrow packages have been merged into broader, more capable ones, and a few stale wrappers have been retired. Composer surfaces the retired packages as abandoned and points you at the replacement.
| Retired package | Replacement |
|---|---|
initphp/event-emitter |
initphp/events (≥ 2.0) |
initphp/http-client |
initphp/http (≥ 2.2) |
initphp/http-factory |
initphp/http (≥ 2.2) |
initphp/curl |
initphp/http (≥ 2.2) |
initphp/redis-session-handler |
initphp/sessions RedisAdapter |
initphp/cli-table |
initphp/console (≥ 2.1) |
initphp/redis |
Use ext-redis directly, or initphp/cache / initphp/sessions |
initphp/var-dumper |
symfony/var-dumper |
initphp/polyfill-php80 |
symfony/polyfill-php80 |
Migration guides live in the README of each retired package.
Contributions are welcome and encouraged. Start with CONTRIBUTING.md for the workflow and conventions, browse open issues across the org for ideas, or open a Discussion if you want to talk through a larger change before sending a PR.
Security issues should be reported privately — see SECURITY.md.
If InitPHP saves you time, please consider sponsoring the project. Sponsorship directly funds active maintenance, security updates, CI/CD across the ecosystem, and improvements to initphp.org.
All packages are released under the MIT License unless stated otherwise in the package's own LICENSE file.
