The framework agnostic application life-cycle
The goal of Blast application is to deliver a framework agnostic application life-cycle having regard on modern standards.
PSR-0, PSR-1, PSR-2, PSR-3, PSR-4, PSR-7, PSR-11 (Container-interop) are supported standards.
$ composer require blast/application
Lets build our first base application.
<?php use Blast\Application\Kernel\Foundation as Application $application = new Application();
Our application foundation has been set, now we are able to set our config.
Application configuration is an
Array and just need to passed to our config.
We could pass directly:
<?php $application->setConfig([ 'name' => 'base application' ]);
Or receive config data from anywhere
<?php //should return an array! $config = require_once __DIR__ . '/config.php'; $application->setConfig($config);
You are free to choose how to pass configuration. You could also use packages like
Modern application needs to decouple complexity. That means we want to manage services and inject them automatically.
Blast application is following the standard of
league/container for example.
<?php use League\Container; $application->setContainer(new Container());
Here is an list of container-interop implementations.
Our application is dispatching an added strategy with an PSR-7 request and response. Within this strategy you could define your own logic.
For example we use
wellrested/wellrested for our PSR-7 implementation.
<?php use WellRESTed\Message\Response; use WellRESTed\Message\ServerRequest; use Acme\Strategy; $application->setStrategy(new Strategy); $application->dispatch(ServerRequest::getServerRequest(), new Response);
Their are more PSR-7 compatible packages available on packagist or the following:
- symfony/http-foundation with symfony/psr-http-message-bridge
Please see CHANGELOG for more information what has changed recently.
$ composer test
Please see CONTRIBUTING for details.
If you discover any security related issues, please email :author_email instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.