PHPackages                             aura/project-kernel - 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. aura/project-kernel

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

aura/project-kernel
===================

The shared kernel files for an Aura project.

2.2.0(4y ago)883.7k↓30%9[1 PRs](https://github.com/auraphp/Aura.Project_Kernel/pulls)3BSD-2-ClausePHPPHP &gt;=5.3.0

Since Nov 21Pushed 4y ago3 watchersCompare

[ Source](https://github.com/auraphp/Aura.Project_Kernel)[ Packagist](https://packagist.org/packages/aura/project-kernel)[ Docs](https://github.com/auraphp/Aura.Project_Kernel)[ RSS](/packages/aura-project-kernel/feed)WikiDiscussions 4.x Synced 1mo ago

READMEChangelog (6)Dependencies (2)Versions (10)Used By (3)

Aura.Project\_Kernel
====================

[](#auraproject_kernel)

This kernel package exists as a base for [Aura.Cli\_Kernel](https://github.com/auraphp/Aura.Cli_Kernel), [Aura.Web\_Kernel](https://github.com/auraphp/Aura.Web_Kernel), and other future kernel types.

Foreword
--------

[](#foreword)

### Requirements

[](#requirements)

This kernel requires PHP 7.2 or later; we recommend using the latest available version of PHP as a matter of principle. If you are interested in using this package for older PHP versions, use version 2.x for PHP 5.3+.

Unlike Aura library packages, this kernel package has userland dependencies, which themselves may have other dependencies:

- [aura/di](https://packagist.org/packages/aura/di)
- [psr/log](https://packagist.org/packages/psr/log)

### Installation

[](#installation)

This kernel is installable and autoloadable via Composer with the following `require` element in your `composer.json` file:

```
"require": {
    "aura/project-kernel": "dev-develop-2"
}

```

Alternatively, download or clone this repository, then require or include its *autoload.php* file.

### Tests

[](#tests)

[![Build Status](https://camo.githubusercontent.com/67f54dc54fe453b0661c9b0542d9268c6ea2e2e9fd2883e5d8ea54ba291a227e/68747470733a2f2f7472617669732d63692e6f72672f617572617068702f417572612e50726f6a6563745f4b65726e656c2e706e673f6272616e63683d646576656c6f702d32)](https://travis-ci.org/auraphp/Aura.Project_Kernel)

This kernel has 100% code coverage with [PHPUnit](http://phpunit.de). To run the unit tests at the command line, issue `composer install` and then `composer test` at the package root. This requires [Composer](http://getcomposer.org/) to be available as `composer`.

### PSR Compliance

[](#psr-compliance)

This kernel attempts to comply with [PSR-1](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-1-basic-coding-standard.md), [PSR-2](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md), and [PSR-4](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader.md). If you notice compliance oversights, please send a patch via pull request.

### Community

[](#community)

To ask questions, provide feedback, or otherwise communicate with the Aura community, please join our [Google Group](http://groups.google.com/group/auraphp), follow [@auraphp on Twitter](http://twitter.com/auraphp), or chat with us on #auraphp on Freenode.

### Services

[](#services)

This package defines the following services in the *Container*:

- `aura/project-kernel:logger`: an instance of *Psr\\Log\\NullLogger*

Note that service definitions set at the kernel level may be reset at the project level.

Configuration
-------------

[](#configuration)

Although configuration is a project-level concern, each Aura kernel and project handles it in the same way. Thus, we provide config documentation here to reduce repetition.

> N.b.: The examples throughout this document are for *Aura\\Web\_Project*; replace that with *Aura\\Cli\_Project* or *Aura\\Framework\_Project* as needed.

### Setting The Config Mode

[](#setting-the-config-mode)

Set the configuration mode using `$_ENV['AURA_CONFIG_MODE']`, either via a server variable or the project-level `config/_env.php` file. Each Aura project comes with `dev` (local development), `test` (shared testing/staging), and `prod` (production) modes pre-defined.

### Config File Location

[](#config-file-location)

Project-level configuration files are located in the project-level `config/` directory. Each configuration file is a class that extends *Aura\\Di\\Config*, and represents a configuration mode. Each configuration class has two methods:

- `define()`, which allows you to define params, setters, and services in the project *Container*; and
- `modify()`, which allows you to pull objects out of the *Container* for programmatic modification. (This happens after the *Container* is locked, so you cannot add new services or change params and setters here.)

The two-stage configuration system loads all the configuration classes in order by library, kernel, and project, then runs all the `define()` methods, locks the container, and finally runs all the `modify()` methods.

### Mapping Config Modes To Classes

[](#mapping-config-modes-to-classes)

The config modes are mapped to their related config class files via the project-level `composer.json` file in the `extra:aura:config` block. The entry key is the config mode, and the entry value is the class to use for that mode.

```
{
    "autoload": {
        "psr-0": {
            "": "src/"
        },
        "psr-4": {
            "Aura\\Web_Project\\_Config\\": "config/"
        }
    },
    "extra": {
        "aura": {
            "type": "project",
            "config": {
                "common": "Aura\\Web_Project\\_Config\\Common",
                "dev": "Aura\\Web_Project\\_Config\\Dev",
                "test": "Aura\\Web_Project\\_Config\\Test",
                "prod": "Aura\\Web_Project\\_Config\\Prod"
            }
        }
    }
}
```

Config classes are autoloaded via a PSR-4 entry for that project namespace.

The "common" config class is always loaded regardless of the actual config mode. For example, if the config mode is `dev`, first the *Common* class is loaded, and then the *Dev* class.

### Changing Config Settings

[](#changing-config-settings)

First, open the config file for the related config mode. To change configuration params, setters, and services, edit the `define()` method. To programmatically change a service after all definitions are complete, edit the `modify()` method.

### Adding A Config Mode

[](#adding-a-config-mode)

If you want to add a new configuration mode, say `qa`, you need to do three things.

First, create a config class for it in `config/`:

```

```

Next, edit the project-level `composer.json` file to add the new config mode with its related class:

```
{
    "extra": {
        "aura": {
            "type": "project",
            "config": {
                "common": "Aura\\Web_Project\\_Config\\Common",
                "dev": "Aura\\Web_Project\\_Config\\Dev",
                "test": "Aura\\Web_Project\\_Config\\Test",
                "prod": "Aura\\Web_Project\\_Config\\Prod",
                "qa": "Aura\\Web_Project\\_Config\\Qa"
            }
        }
    }
}
```

Finally, run `composer update` so that Composer makes the necessary changes to the autoloader system.

###  Health Score

39

—

LowBetter than 86% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity38

Limited adoption so far

Community24

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

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 ~380 days

Recently: every ~580 days

Total

8

Last Release

1751d ago

Major Versions

2.x-dev → 4.0.0-alpha12021-08-01

PHP version history (2 changes)2.0.0-beta1PHP &gt;=5.3.0

4.0.0-alpha1PHP &gt;=7.2.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/25754?v=4)[Paul M. Jones](/maintainers/pmjones)[@pmjones](https://github.com/pmjones)

![](https://www.gravatar.com/avatar/29dba0e6add8d89fd3fc6126b213d5d2f57538ea78318963025d6ea98db34161?d=identicon)[harikt](/maintainers/harikt)

---

Top Contributors

[![harikt](https://avatars.githubusercontent.com/u/120454?v=4)](https://github.com/harikt "harikt (23 commits)")[![kenjis](https://avatars.githubusercontent.com/u/87955?v=4)](https://github.com/kenjis "kenjis (22 commits)")[![sixcare](https://avatars.githubusercontent.com/u/7377373?v=4)](https://github.com/sixcare "sixcare (3 commits)")[![chrisguitarguy](https://avatars.githubusercontent.com/u/1010392?v=4)](https://github.com/chrisguitarguy "chrisguitarguy (2 commits)")[![cordoval](https://avatars.githubusercontent.com/u/328359?v=4)](https://github.com/cordoval "cordoval (1 commits)")[![jakeasmith](https://avatars.githubusercontent.com/u/234832?v=4)](https://github.com/jakeasmith "jakeasmith (1 commits)")

---

Tags

kernelproject

### Embed Badge

![Health badge](/badges/aura-project-kernel/health.svg)

```
[![Health](https://phpackages.com/badges/aura-project-kernel/health.svg)](https://phpackages.com/packages/aura-project-kernel)
```

###  Alternatives

[phpoffice/phpproject

PHPProject - Read, Create and Write Project Management documents in PHP

20717.4k](/packages/phpoffice-phpproject)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)

PHPackages © 2026

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