当前位置: 首页 > 后端技术 > PHP

zanphp源码解读-应用启动

时间:2023-03-29 17:50:11 PHP

获取应用程序并启动phpbin/httpdcreateHttpServer();$server->start();init/app.phpappName=$appName;//获取自己的实例static::setInstance($this);//向容器注册一个单例ZanPHPContainer::getInstance()->instance(ApplicationContract::class,$this);//设置应用程序基本路径$this->setBasePath($basePath);//其他初始化工作$this->bootstrap();}protectedfunctionbootstrap(){//初始化容器$this->设置容器();//其他初始化工作foreach($this->bootstrapItemsas$bootstrap){$this->make($bootstrap)->bootstrap($this);}}/***获取http服务器。创建httpServer**根据前面的知识扫盲,我们可以知道返回的实体是ZanPHP\HttpServer\Server*位于vendor/zanphp/http-server/src/Server.php*@return\Zan\Framework\Network\Http\Server*/publicfunctioncreateHttpServer(){/**@varFactory$factory*/$factory=make(Factory::class,["server"]);$server=$factory->createHttpServer();$this->server=$server;返回$服务器;}解析Server.phpvendor/zanphp/http-server/src/Server.phpvendor/zanphp/server-base/src/ServerBase.php/**继承ZanPHP\ServerBase\ServerBase*这里是ServerBase函数,放在Server和analyzed*/classServerextendsServerBase{//服务启动主入口函数//服务启动主入口函数//服务启动主入口函数publicfunctionstart();//服务启动初始化包含init/Ser中配置的自定义启动项verStart/.config.php函数bootServerStartItem();//worker启动初始化包括自定义启动项配置在init/WorkerStart/.config.phpfunctionbootServerStartItem();//请求处理函数publicfunctiononRequest(SwooleHttpRequest$httpRequest,SwooleHttpResponse$httpResponse){//.../**请求处理类后续解释*/(newRequestHandler())->handle($httpRequest,$http响应);}}

最新推荐
猜你喜欢