PHPackages                             bogosoft/cornpop - 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. [HTTP &amp; Networking](/categories/http)
4. /
5. bogosoft/cornpop

ActiveLibrary[HTTP &amp; Networking](/categories/http)

bogosoft/cornpop
================

A PSR-compliant nano-framework for generating responses for HTTP requests.

2.0.0(6y ago)015MITPHPPHP &gt;=7.4CI failing

Since Dec 2Pushed 6y ago1 watchersCompare

[ Source](https://github.com/bogosoft-php/cornpop)[ Packagist](https://packagist.org/packages/bogosoft/cornpop)[ RSS](/packages/bogosoft-cornpop/feed)WikiDiscussions develop Synced 6d ago

READMEChangelogDependencies (8)Versions (4)Used By (0)

bogosoft/cornpop
================

[](#bogosoftcornpop)

A PSR-compliant nano-framework for generating responses to HTTP requests.

CornPop provides an extensible kernel for setting up and executing an HTTP response pipeline.

The kernel expects PSR implementations for various HTTP-based objects but provides none, leaving you free to bring-your-own implementations (BYOI).

You'll need to BYOI for:

- `Bogosoft\Configuration\ConfigurationInterface`
- `Psr\Container\ContainerInterface`
- `Psr\Http\Message\ResponseFactoryInterface`
- `Psr\Http\Message\ResponseInterface`
- `Psr\Http\Message\ServerRequestInterface`
- `Psr\Http\Server\MiddlewareInterface`
- `Psr\Http\Server\RequestHandlerInterface`
- `Psr\Log\LoggerInterface`

Requirements
------------

[](#requirements)

- PHP 7.1+

Installation
------------

[](#installation)

```
composer require bogosoft/cornpop
```

The Kernel
----------

[](#the-kernel)

`KernelBase`, the class that you will need to extend, itself implements the `RequestHandlerInterface` interface. The only method implemented on the base kernel is the `RequestHandlerInterface::handler` method. Calling this method sets in motion several actions and ultimately returns an HTTP response.

### Configuration

[](#configuration)

The first thing that the kernel takes care of is obtaining an application configuration. This configuration is of the type, `Bogosoft\Configuration\ConfigurationInterface`.

Although CornPop does not provide any implementations of PSR objects, it does ship with an `ArrayConfiguration` that can be used as the application configuration.

The HTTP request passed into the kernel can be used to configure the configuration so to speak.

### Logging

[](#logging)

Once the configuration has been obtained, it is then used to obtain a logger of type, `Psr\Log\LoggerInterface`.

### Dependency Injection (DI) Container

[](#dependency-injection-di-container)

After obtaining a logger, the logger and the configuration are used to obtain a DI container of type, `Psr\Contaienr\ContainerInterface`.

### Fallback Handler

[](#fallback-handler)

The container is then used to obtain a fallback request handler of type, `Psr\Http\Server\RequestHandlerInterface`, which will be invoked if none of the configured middleware returns an HTTP response.

This would be useful, for instance, in returning a 404 response.

### Middleware

[](#middleware)

The container is again used to configure a sequence of middleware components to be called. Each component will need to be of the type, `Psr\Http\Server\MiddlewareInterface`, and will be called in the order that it was queued.

### Execution

[](#execution)

Once the middleware components have been queued, they will each be called in succession. If a middleware component returns a response instead of calling the passed-in request handler, it will short-circuit further middleware processing.

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community4

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~6 days

Total

3

Last Release

2348d ago

Major Versions

1.0.1 → 2.0.02019-12-13

PHP version history (2 changes)1.0.0PHP &gt;=7.1

2.0.0PHP &gt;=7.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/8530564fb9452a6b97b54c5cfd4da24f7f69667c217b8e37f99a593966029cdd?d=identicon)[bogocles](/maintainers/bogocles)

---

Tags

httppsrkernelbyoi

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/bogosoft-cornpop/health.svg)

```
[![Health](https://phpackages.com/badges/bogosoft-cornpop/health.svg)](https://phpackages.com/packages/bogosoft-cornpop)
```

###  Alternatives

[mezzio/mezzio

PSR-15 Middleware Microframework

3883.6M97](/packages/mezzio-mezzio)[mezzio/mezzio-router

Router subcomponent for Mezzio

265.0M61](/packages/mezzio-mezzio-router)[mezzio/mezzio-authentication-oauth2

OAuth2 (server) authentication middleware for Mezzio and PSR-7 applications.

28483.0k2](/packages/mezzio-mezzio-authentication-oauth2)[mezzio/mezzio-authentication

Authentication middleware for Mezzio and PSR-7 applications

121.6M26](/packages/mezzio-mezzio-authentication)[sunrise/http-router

A powerful solution as the foundation of your project.

16249.8k10](/packages/sunrise-http-router)[phpro/http-tools

HTTP tools for developing more consistent HTTP implementations.

28137.8k](/packages/phpro-http-tools)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
