blast / application
The framework agnostic application life-cycle
Requires
- php: >=5.5.0
- container-interop/container-interop: ~1.1
- psr/http-message: ~1.0
Requires (Dev)
- phpunit/phpunit: 4.8.*
Suggests
- league/container: Recommended container-interop implementation
- wellrested/wellrested: Recommended psr-7 http message implementation
Provides
Replaces
- blast/bootloader: 1.x-dev
This package is not auto-updated.
Last update: 2022-02-01 12:52:38 UTC
README
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.
Install
Via Composer
$ composer require blast/application
Usage
Lets build our first base application.
The foundation
<?php use Blast\Application\Kernel\Foundation as Application $application = new Application();
Configuration
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
Container
Modern application needs to decouple complexity. That means we want to manage services and inject them automatically.
Blast application is following the standard of container-interop/container-interop
.
We use league/container
for example.
<?php
use League\Container;
$application->setContainer(new Container());
Here is an list of container-interop implementations.
Dispatching
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
Change log
Please see CHANGELOG for more information what has changed recently.
Testing
$ composer test
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email :author_email instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.