PHPackages                             php-concept/core - 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. [Framework](/categories/framework)
4. /
5. php-concept/core

ActiveLibrary[Framework](/categories/framework)

php-concept/core
================

Concept Framework Core Engine

v1.1.8(1mo ago)031MITPHPPHP ^8.4

Since May 8Pushed 1mo agoCompare

[ Source](https://github.com/php-concept/concept-core)[ Packagist](https://packagist.org/packages/php-concept/core)[ RSS](/packages/php-concept-core/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (10)Dependencies (42)Versions (19)Used By (0)

Concept Core
============

[](#concept-core)

Concept Core is an aesthetic, strict-typed PHP engine built on PSR standards.
-----------------------------------------------------------------------------

[](#concept-core-is-an-aesthetic-strict-typed-php-engine-built-on-psr-standards)

**A strict-typed PHP application engine for builders who want ergonomics without the monolith.**

Concept Core is the foundation of the Concept stack: a lean, PSR-native runtime that wires routing, DI, validation, database access, views, and CLI into a coherent whole — then gets out of your way. Applications are assembled from **components**: self-contained modules that ship their own routes, migrations, seeders, views, assets, and service providers.

Built for **PHP 8.4+**, every public API uses `declare(strict_types=1)` and is designed to be extended, not overridden.

No magic — no hidden conventions you cannot grep for.

---

Why Concept Core?
-----------------

[](#why-concept-core)

You getWithoutNamed routes, middleware, FormRequests, DTO castingRe-implementing half of a framework on every projectIlluminate Database (Eloquent, migrations, pagination)Dragging in all of LaravelTwig or Plates, your choiceLock-in to one templating storyComponent registry — drop in Auth, ACL, CMS as packagesCopy-pasting modules between reposPSR-7 HTTP, PSR-11 container, PSR-15 middlewareFighting legacy globalsWhoops in dev, safe fallbacks in prodWhite screens and silent failuresBuilt-in telemetry hooksGuessing what booted and whenConcept Core is **not** a CMS and **not** a full-stack framework. It is an **engine**: opinionated where it matters (request lifecycle, validation, errors), flexible everywhere else (authorization, business logic, UI).

---

Architecture at a glance
------------------------

[](#architecture-at-a-glance)

 ```
flowchart TB
    subgraph bootstrap [Bootstrap]
        App[App::create]
        DI[League Container + Reflection]
        Providers[Service Providers]
        Components[Component Registry]

        App --> DI
        App --> Providers
        Providers --> Components
    end

    subgraph http [HTTP Request]
        Request[PSR-7 Request]
        Router[League Route]
        MW[Middleware Stack]
        Strategy[RouteStrategy]
        Interceptors[Route Interceptors]
        Resolve[Autowire: FormRequest, route params, DI]
        Controller[Controller]
        Response[PSR-7 Response]
        Emitter[SapiEmitter]

        Request --> Router --> MW --> Strategy
        Strategy --> Interceptors --> Resolve --> Controller
        Controller --> Response --> Emitter
    end

    subgraph support [Core Services]
        Config[Noodlehaus Config]
        Validator[Rakit Validation]
        Caster[Valinor Mapper]
        DB[Illuminate Capsule]
        View[Twig / Plates]
    end

    Components -->|routes| Router
    Providers -->|register| support
    Providers --> DI
    Resolve --> Validator
    Resolve --> Caster
    Controller --> View
    Controller --> DB
```

      Loading **Request flow**

1. `App` boots service providers; `ComponentsServiceProvider` registers component routes, migrations, seeders, views, and commands.
2. `Router` matches a route; middleware runs (CSRF, validation handler, view data, …).
3. `RouteStrategy` invokes the handler: **route interceptors** first, then autowiring (FormRequest validation, route-param casting, `ServerRequestInterface`).
4. Controller returns a PSR-7 response; `SapiEmitter` sends it.

---

Tech stack
----------

[](#tech-stack)

LayerLibraryHTTP messages[laminas/laminas-diactoros](https://github.com/laminas/laminas-diactoros)HTTP runner[laminas/laminas-httphandlerrunner](https://github.com/laminas/laminas-httphandlerrunner)Routing[league/route](https://github.com/thephpleague/route)DI[league/container](https://github.com/thephpleague/container)Database[illuminate/database](https://github.com/illuminate/database)Validation[rakit/validation](https://github.com/rakit/validation) (via [magewirephp/validation](https://github.com/magewirephp/validation))DTO mapping[cuyz/valinor](https://github.com/CuyZ/Valinor)Views[twig/twig](https://github.com/twigphp/Twig) or [league/plates](https://github.com/thephpleague/plates)Console[symfony/console](https://github.com/symfony/console)Sessions &amp; flash[symfony/http-foundation](https://github.com/symfony/http-foundation)Config[hassankhan/config](https://github.com/hassankhan/config)Logging[monolog/monolog](https://github.com/monolog/monolog)Errors (dev)[filp/whoops](https://github.com/filp/whoops)Env[vlucas/phpdotenv](https://github.com/vlucas/phpdotenv)---

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

[](#quick-start)

### Install

[](#install)

```
composer require php-concept/core
```

Requires **PHP 8.4+** and extensions: `pdo`, `json`, `mbstring`, `dom`, `xml`.

### Minimal bootstrap

[](#minimal-bootstrap)

```
