入口文件
通过项目启动命令可知,入口文件为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()
方法