Skip to content

入口文件

通过项目启动命令可知,入口文件为bin/hyperf.php

php
ini_set('display_errors', 'on');
ini_set('display_startup_errors', 'on');
// 设置内存限制
ini_set('memory_limit', '1G');

error_reporting(E_ALL);
// 如果BASE_PATH未定义,则定义常量BASE_PATH
! defined('BASE_PATH') && define('BASE_PATH', dirname(__DIR__, 1));
// 引入自动加载
require BASE_PATH . '/vendor/autoload.php';
// 同上,如果未定义,则定义该常量SWOOLE_HOOK_FLAGS
! defined('SWOOLE_HOOK_FLAGS') && define('SWOOLE_HOOK_FLAGS', Hyperf\Engine\DefaultOption::hookFlags());

// 自调用的匿名函数,它创建了自己的作用域并保持全局命名空间的清洁。
(function () { 

    Hyperf\Di\ClassLoader::init(); 

    /** @var Psr\Container\ContainerInterface $container */
    $container = require BASE_PATH . '/config/container.php';

    /**
     * @var \Symfony\Component\Console\Application $application
     */
    $application = $container->get(Hyperf\Contract\ApplicationInterface::class);
    $application->run();
})();

入口文件内容只有这些,继续往下看,init()方法