apatis/prima

The Slowest Performance Micro Framework

Maintainers

Details

github.com/Apatis/Prima

Source

Issues

Installs: 64

Dependents: 1

Suggesters: 0

Security: 0

Stars: 3

Watchers: 1

Forks: 0

Open Issues: 0

Type:project

1.0.6 2018-03-10 13:25 UTC

This package is not auto-updated.

Last update: 2024-05-08 22:48:32 UTC


README

The Slowest Performance Micro Framework

REQUIREMENT

Php 7.0 or later

USAGE

<?php
use Apatis\Middleware\MiddlewareStorage;
use Apatis\Prima\Service;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Message\ResponseInterface;

$app = new Service();
// add middleware
$app->addMiddleware(function (
    ServerRequestInterface $request,
    ResponseInterface $response,
    // callable or object invokable
    // this commonly use
    MiddlewareStorage $next
) : ResponseInterface {
    // example of use json as return header
    $response = $response->withHeader('Content-Type', 'application/json; charset=utf-8');
    return $next($request, $response);
});

// add route
$app->get('/{endpoint: [a-zA-Z0-9]+}[/]', function (ServerRequestInterface $request, ResponseInterface $response, array $params) {
    $body = $response->getBody();
    $data = [
        'method'   => $request->getMethod(),
        'endpoint' => $params['endpoint']
    ];
    $body->write(json_encode($data));
    return $response->withBody($body);
});
$app->serve();

CONFIGURATION

<?php
/**
 * List of Existing configuration
 * The values is default configuration
 */
$defaultConfiguration = [
    /**
     * clear the stored middleware after successfully called
     * @var boolean
     */
    'clearMiddlewareAfterExecute' => true,
    /**
     * display details error
     * @var boolean
     */
    'displayErrors'       => false,
    /**
     * Dispatch route first before Middleware called
     * @var bool
     */
    'dispatchRouteBeforeMiddleware' => false,
    /**
     * Handle Shutdown
     * @var bool
     */
    'handleShutdown'      => true,
    /**
     * http version (HTTP/[httpVersion])
     * @var string
     */
    'httpVersion'         => '1.1',
    /**
     * resolve CLI Request
     * set into boolean -> true if the Request need to auto resolve
     * for CLI Request
     * @var boolean
     */
    'resolveCLIRequest'   => true,
    /**
     * fix http scheme if use behind proxy
     * @var boolean
     */
    'fixProxy'            => true,
    /**
     * append content length into headers
     * @var boolean
     */
    'setContentLength'    => false,
    /**
     * allow empty response code to be serve : code 204, 205, 304
     * @var boolean
     */
    'serveEmptyResponse'  => false,
    /**
     * add buffer
     * @var boolean
     */
    'useBuffer'           => true,
    /**
     * response chunk size read from stream
     * @var integer
     */
    'responseChunkSize'   => 4096,
    /**
     * Full path for route cache file
     * @var string
     */
    'routerCacheFile'     => false,
    /**
     * by default middleware called last set first, use `sortMiddleware` to re-arrange first
     * middleware to be called
     * @var boolean
     */
    'sortMiddleware' => false,
];

NOTE

Sorted middleware by default only available on service

LICENSE

MIT LICENSE

DONATE

Consider donate to buy a cup of coffee

BTC

1FExTzXo9NxH9M5aG5P9LdKkmzYuVrXMd9

Stellar

GBSQSRG66HBDG5MYSVNDGHZS63UQGGRA7BF36USIMJMXZ42W5CGMZAS

Ethereum

0x32e885a1b55efaE2884Af06513bf434002700c88