123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- <?php
- /**
- * This file is part of webman.
- *
- * Licensed under The MIT License
- * For full copyright and license information, please see the MIT-LICENSE.txt
- * Redistributions of files must retain the above copyright notice.
- *
- * @author walkor<walkor@workerman.net>
- * @copyright walkor<walkor@workerman.net>
- * @link http://www.workerman.net/
- * @license http://www.opensource.org/licenses/mit-license.php MIT License
- */
- use Dotenv\Dotenv;
- use support\Container;
- use Webman\Config;
- use Webman\Route;
- use Webman\Middleware;
- $worker = $worker ?? null;
- if ($timezone = config('app.default_timezone')) {
- date_default_timezone_set($timezone);
- }
- set_error_handler(function ($level, $message, $file = '', $line = 0, $context = []) {
- if (error_reporting() & $level) {
- throw new ErrorException($message, 0, $level, $file, $line);
- }
- });
- if ($worker) {
- register_shutdown_function(function ($start_time) {
- if (time() - $start_time <= 1) {
- sleep(1);
- }
- }, time());
- }
- if (class_exists('Dotenv\Dotenv') && file_exists(base_path() . '/.env')) {
- if (method_exists('Dotenv\Dotenv', 'createUnsafeImmutable')) {
- Dotenv::createUnsafeImmutable(base_path())->load();
- } else {
- Dotenv::createMutable(base_path())->load();
- }
- }
- Config::reload(config_path(), ['route', 'container']);
- foreach (config('plugin', []) as $firm => $projects) {
- foreach ($projects as $name => $project) {
- foreach ($project['autoload']['files'] ?? [] as $file) {
- include_once $file;
- }
- }
- }
- foreach (config('autoload.files', []) as $file) {
- include_once $file;
- }
- $container = Container::instance();
- Route::container($container);
- Middleware::container($container);
- Middleware::load(config('middleware', []));
- foreach (config('plugin', []) as $firm => $projects) {
- foreach ($projects as $name => $project) {
- Middleware::load($project['middleware'] ?? []);
- }
- }
- Middleware::load(['__static__' => config('static.middleware', [])]);
- foreach (config('bootstrap', []) as $class_name) {
- /** @var \Webman\Bootstrap $class_name */
- $class_name::start($worker);
- }
- foreach (config('plugin', []) as $firm => $projects) {
- foreach ($projects as $name => $project) {
- foreach ($project['bootstrap'] ?? [] as $class_name) {
- /** @var \Webman\Bootstrap $class_name */
- $class_name::start($worker);
- }
- }
- }
- Route::load(config_path());
|