2017 © Pedro Peláez
 

library framework

PSR-7, PSR-15 modular micro framework.

image

igniphp/framework

PSR-7, PSR-15 modular micro framework.

  • Friday, June 29, 2018
  • by dkraczkowski
  • Repository
  • 10 Watchers
  • 169 Stars
  • 65 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 6 Forks
  • 3 Open issues
  • 11 Versions
  • 550 % Grown

The README.md

Igni logo

License: MIT Build Status Scrutinizer Code Quality Code Coverage, (*1)

Igni is a php7 anti-framework with built-in swoole server and modular architecture support to help you quickly write scalable PSR-7 and PSR-15 compilant REST services., (*2)

Its main objective it to be as much transparent and as less visible for your application as possible., (*3)

<?php
require 'vendor/autoload.php';

use Igni\Application\Config;
use Igni\Application\HttpApplication;
use Igni\Application\Providers\ConfigProvider;
use Igni\Network\Http\Response;
use Igni\Network\Http\Request;

$application = new HttpApplication();

// Routing
$application->get('/hello/{name}', function (Request $request) : Response {
    return Response::asText("Hello {$request->getAttribute('name')}.");
});

// Middleware - no interfaces no binding with framework code is required in order things to work.
$application->use(function($request, /** callable|RequestHandlerInterface */$next) {
    $response = $next($request);
    return $response->withAddedHeader('Version', $this->getConfig()->get('version'));
});

// Extending application is a brief just create and implement methods for your needs.
$application->extend(new class implements ConfigProvider {
    public function provideConfig(Config $config): void {
        $config->set('version', '1.0');
    }
});

$application->run();

Installation and requirements

Recommended installation way of the Igni Framework is with composer:, (*4)

composer install igniphp/framework

Requirements: - php 7.1 or better - swoole extension for build-in http server support, (*5)

What's new

With version 2.0 network package was extracted from the framework code, error handling was overall improved as well as Server's listeners. More details can be found in changelog file., (*6)

Quick start

Alternatively you can start using framework with quick start which contains bootstrap application., (*7)

Features

Routing

Igni router is based on very fast symfony routing library., (*8)

PSR-7, PSR-15 Support

Igni fully supports PSR message standards for both manipulating http response, request and http middlwares., (*9)

Dependency Injection and Autoresolving

Igni autoresolves dependencies for you and provides intuitive dependency container. It also allows you to use any PSR compatible container of your choice., (*10)

Modular architecture

Modular and scalable solution is one of the most important aspects why this framework was born. Simply create a module class, implement required interfaces and extend application by your module., (*11)

Performant, production ready http server

No nginx nor apache is required when swoole is installed, application can be run the same manner as in node.js world: php examples/build_in_server_example.php, (*12)

Igni's http server is as fast as express.js application with almost 0 configuration., (*13)

Detailed documentation

Detailed documentation and more examples can be found here and in examples directory., (*14)

The Versions