PHPackages                             modufolio/appkit - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. modufolio/appkit

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

modufolio/appkit
================

A lean PHP framework built on Symfony components and Doctrine ORM, with hand-wired DI, attribute routing, and first-class Inertia.js support

v0.6.1(2w ago)083↓71.4%MITPHPPHP ^8.2CI passing

Since Jun 5Pushed 1w agoCompare

[ Source](https://github.com/modufolio/appkit)[ Packagist](https://packagist.org/packages/modufolio/appkit)[ RSS](/packages/modufolio-appkit/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (73)Versions (10)Used By (0)

Appkit
======

[](#appkit)

[![License: MIT](https://camo.githubusercontent.com/c2bffd81d308ced1cc3b0d66fb0ed453ab478a5e17c988b780f9de986a390ee2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](https://opensource.org/licenses/MIT)[![codecov](https://camo.githubusercontent.com/30ab91c896fb6d4f9309ef989f664dcb03838483d9265539bab46ea11076aaaf/68747470733a2f2f696d672e736869656c64732e696f2f636f6465636f762f632f6769746875622f6d6f6475666f6c696f2f6170706b69743f746f6b656e3d524d555a5638344a3130267374796c653d666c61742d737175617265)](https://codecov.io/gh/modufolio/appkit)

A small, hand-wired PHP application kernel built on Symfony components, Doctrine ORM, Firebase JWT, and a strict-typed PSR-7 fork. Designed for security-conscious SaaS applications that want Symfony-grade components without Symfony's full kernel, bundle system, and compile step.

Why it exists
-------------

[](#why-it-exists)

- **Slim is too thin.** No Doctrine, no validation, no security primitives — the consumer wires everything.
- **Symfony is too heavy.** A compiled DI container, an event dispatcher, bundles, MakerBundle, recipes. Excellent for large apps; more than most SaaS workloads need.
- **Laravel is opinionated and non-Symfony.** Facades, ActiveRecord, and a separate ecosystem.
- **Appkit sits in between.** Symfony components plus Doctrine plus a thin abstract kernel, with a hand-compiled container so the file you read is the resolution path that runs.

What it solves
--------------

[](#what-it-solves)

- **Fast boot.** No DI compile step, no cache invalidation. Config files are loaded with `require`; OPcache handles the rest.
- **Transparent control flow.** No event dispatcher by design. Reading `handleAuthentication()` top-to-bottom shows exactly what runs.
- **RoadRunner-aware.** Every stateful service implements [`ResetInterface`](src/Core/ResetInterface.php); the kernel rebuilds `ApplicationState` per request. The worker loop stays in your application rather than behind a runtime — see [modufolio/appkit-roadrunner](https://github.com/modufolio/appkit-roadrunner).
- **Security hardening already wired.** CSRF rotation on login, session-fixation defence, token unserialize allowlist, password timing-parity dummy, brute-force protection, generic 401 responses.
- **Strict typing.** PHP 8.2+, `declare(strict_types=1)` throughout. The bundled PSR-7 implementation is a strict-typed fork of `nyholm/psr7`.

Quick start
-----------

[](#quick-start)

```
composer create-project modufolio/appkit-skeleton my-app
cd my-app
composer start
```

The skeleton lives in its own repository: [modufolio/appkit-skeleton](https://github.com/modufolio/appkit-skeleton).

A minimal controller
--------------------

[](#a-minimal-controller)

```
