kdays/akari-fc-support

There is no license information available for the latest version (dev-main) of this package.

KDays Akari Framework FC Support

dev-main 2022-04-20 08:11 UTC

This package is auto-updated.

Last update: 2024-09-20 13:15:58 UTC


README

Akari Framework FC Support

Sample FC:

<?php

use Akari\system\event\Event;
use Akari\system\result\Result;
use Akari\system\router\Dispatcher;
use RingCentral\Psr7\Response;

include("const.php");
define('APP_ENV', 'FC');

require("vendor/autoload.php");

function handler($request, $context): Response {
    $app = \Akari\Core::initApp(__DIR__, APP_NS);
    $di = \Akari\system\ioc\DI::getDefault();

    \AkariFC\Request::setFcRequest($request);

    $di->setShared('request', AkariFC\Request::class);
    $di->setShared('response', AkariFC\Response::class);
    $di->setShared('cookie', \AkariFC\Cookie::class);
    $di->setShared('router', \AkariFC\Router::class);
    $di->setShared('dispatcher', \AkariFC\Dispatcher::class);

    $uri = $app->router->resolveURI();
    $toParameters = $app->router->getParameters();
    $app->dispatcher->initFromUrl($uri, $toParameters);

    Event::fire(Dispatcher::EVENT_APP_START, []);
    $result = $app->dispatcher->dispatch();
    if ($result instanceof Result) {
        $app->processor->process($result);
    }
    Event::fire(Dispatcher::EVENT_APP_END, []);

    /** @var \AkariFC\Response $appResponse */
    $appResponse = $app->response;

    return $appResponse->toFcResponse();
}