#!/usr/bin/env php
<?php

declare(strict_types=1);

ini_set('display_errors', 'on');
ini_set('display_startup_errors', 'on');
ini_set('memory_limit', '1G');

error_reporting(E_ALL);

! defined('BASE_PATH') && define('BASE_PATH', __DIR__);

require BASE_PATH . '/vendor/autoload.php';

! defined('SWOOLE_HOOK_FLAGS') && define('SWOOLE_HOOK_FLAGS', SWOOLE_HOOK_ALL);

// Self-called anonymous function that creates its own scope and keep the global namespace clean.
(function () {
    Hypervel\Foundation\ClassLoader::init();
    /** @var Hypervel\Foundation\Contracts\Application $container */
    $container = require BASE_PATH . '/bootstrap/app.php';

    $application = $container->get(Hyperf\Contract\ApplicationInterface::class);
    $application->run();
})();
