laravel(源码阅读):kernel过程和console调度artisan命令

http kernel

使用相关:通过artisan命令、计划任务、队列启动框架进行处理的

  1. 创建应用实例
  2. 绑定内核到容器
  3. 解析http内核实例
  4. 处理http请求
  5. 发送响应
  6. 终止应用程序,中间件 terminable 善后。session写入存储器中。

Console

artisan工具:执行计划任务、异步队列,通过Console内核来实现。

内核绑定

  1. 定义调度
  2. 执行加载app里面的命令文件,并请求或者routes/console.php文件。
  3. 实例化时,定义ARTISAN_BINARY全局变量,并且绑定app和事件,启动回调执行定义console调度。

应用解析console内核

   $kernel = $app->make(Illuminate\Contracts\Console\Kernel::class);$status = $kernel->handle($input = new Symfony\Component\Console\Input\ArgvInput,new Symfony\Component\Console\Output\ConsoleOutput);

PHP是通过全局变量$_SERVER[‘argv’]来接收所有的命令行输入的

执行命令任务

  1. $_SERVER['argv],第一个$0指的’artisan’字符串
  2. Symfony\Component\Console\Input处理输入
  3. Symfony\Component\Console\Output处理输出
  4. handle
    1. run
    2. doRun
      1. 解析命令名称
      2. 解析出入参
      3. 通过命令名称查找命令类
      4. 运行命令类
    3. doRunCommand
      1. run 处理任务,返回状态码。run方法定义在父类中,其中定义了子类的handle方法。
  5. 通过状态码结束进程,并判断是否执行成功。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/779015.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

快速上手Spring Cloud 六:容器化与微服务化

快速上手Spring Cloud 一:Spring Cloud 简介 快速上手Spring Cloud 二:核心组件解析 快速上手Spring Cloud 三:API网关深入探索与实战应用 快速上手Spring Cloud 四:微服务治理与安全 快速上手Spring Cloud 五:Spring …

移动视频-智能安全帽-5G/4G记录仪-布控球-无人机5G/4G回传产品及平台常用技术支持资料汇总

视频融合通信平台相关文档 基于webRTC构建的新一代视频融合可视指挥调度平台smarteye server WEB SDK restful接口文档,https://smarteye.besovideo.com/doc/ 新一代smarteye配套的WEB融合可视指挥调度平台软件常用功能,https://www.besovideo.com/d…

国密SM2前端加密解密

<template><div><el-button type"primary" click"getphone()">sm2加密按钮</el-button><el-button type"primary" click"returnphone()">sm2解密按钮</el-button></div> </template>…

前端 JS 压缩图片的思路(附源码)

前言 相信大家都做过图片上传相关的功能,在图片上传的过程中,不知道大家有没有考虑过文件体积的问题,如果我们直接将原图片上传,可以图片体积比较大,一是上传速度较慢,二是前端进行渲染时速度也比较慢,比较影响客户的体验感。所以在不影响清晰度的情况下,前端可以在上…

vue3+ts白屏问题解决

文章目录 打开白屏解决方法可能出现问题使用base导致的使用baseUrl导致的 注意点vue3ts白屏问题知识分享 打开白屏 解决方法 在vue.config.js页面 添加publicPath:./, const { defineConfig } require(vue/cli-service)module.exports defineConfig({ transpileDependenci…

AcWing 4609:火柴棍数字 ← 贪心算法

【题目来源】 https://www.acwing.com/problem/content/4612/【题目描述】 给定 n 个火柴棍&#xff0c;你可以用它们摆出数字 0∼9。 摆出每个数字所需要的具体火柴棍数量如下图所示&#xff1a; 请你用这些火柴棍摆成若干个数字&#xff0c;并把这些数字排成一排组成一个整数…

Git版本管理使用手册 - 8 - 合并分支、解决冲突

合并整个开发分支 切换到本地test分支&#xff0c;选择右下角远程开发分支&#xff0c;选择Merge into Current。然后提交到远程test仓库。 合并某次提交的代码 当前工作区切换成test分支&#xff0c;选择远程仓库中的dev开发分支&#xff0c;选择需要合并的提交版本右击&a…

SQL Server 实验二:数据库视图的创建和使用

目录 第一关 相关知识 什么是表 操作数据表 创建数据表 插入数据 修改表结构 删除数据表 编程要求 第一关实验代码&#xff1a; 第二关 相关知识 视图是什么 视图的优缺点 视图的优点 视图的缺点 操作视图 创建视图 通过视图向基本表中插入数据 通过视图修改基本表的…

由浅到深认识Java语言(37):I/O流

该文章Github地址&#xff1a;https://github.com/AntonyCheng/java-notes 在此介绍一下作者开源的SpringBoot项目初始化模板&#xff08;Github仓库地址&#xff1a;https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址&#xff1a;https://blog.c…

第十三章 Tomcat优化

一、Tomcat 优化 Tomcat 下载地址&#xff1a;https://archive.apache.org/dist/tomcat 1.1 源码导入 1. 下载对应的 tomcat 版本源码&#xff08;Tomcat8.0.11&#xff09; 2. 源码根目录下创建 pom.xml 文件 3. 将源码导入 idea 中 1.2 Web 容器 - Connector.initIntern…

【LeetCode热题100】20. 有效的括号(栈)

一.题目要求 给定一个只包括 ‘(’&#xff0c;‘)’&#xff0c;‘{’&#xff0c;‘}’&#xff0c;‘[’&#xff0c;‘]’ 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。…

win10配置CLion2022+ubuntu20.04远程部署

背景 在博文ubunut搭建aarch64 cuda交叉编译环境记录中&#xff0c;使用的ubuntu20.04虚拟机安装eclipse来交叉编译aarch64的程序&#xff0c;然后发送到jetson板子上执行。开发一段时间后发现eclipse IDE使用起来不太便捷&#xff0c;因此&#xff0c;考虑使用CLion IDE&…

【数字孪生平台】使用 Three.js 以 3D 形式可视化日本新宿站地图

在本文中&#xff0c;我们将使用日本新宿站的室内地图数据&#xff0c;并使用 Three.js 将其进行 3D 可视化。更多精彩内容尽在数字孪生平台。 使用的数据 这次&#xff0c;我们将使用日本空间信息中心发布的“新宿站室内地图开放数据”的集成版本&#xff08;ShapeFile&#…

软考倒计时58天!高效备考的方法有这些!

距离2024年上半年软考正式考试还剩58天的时间&#xff0c;留给考生的备考时间越来越少。而且有很多考生都是上班族&#xff0c;每天的学习时间非常有限。为此&#xff0c;为各位考生提供了一些高效备考方法&#xff0c;帮助大家科学备考。 01、合理分配学习时间 每个科目都有…

网络安全新视角:数据可视化的力量

在当今数字化时代&#xff0c;网络安全已成为各大企业乃至国家安全的重要组成部分。随着网络攻击的日益复杂和隐蔽&#xff0c;传统的网络安全防护措施已难以满足需求&#xff0c;急需新型的解决方案以增强网络防护能力。数据可视化技术&#xff0c;作为一种将复杂数据转换为图…

Weblogic10.3.6补丁升级

由oracle官方发布的漏洞公告&#xff0c;对weblogic进行补丁升级。本文介绍的是weblogic安装的版本为10.3.6.0&#xff0c;如果你使用的是其他版本的请根据实际版本来选择下载 对于weblogic补丁升级&#xff0c;具体步骤如下&#xff1a; 1、首先需要下载weblogic补丁程序 2…

简单了解原型模式

什么是原型模式 区别于单例模式&#xff0c;原型模式的一个类可以有多个实例化的对象。 原型模式通过拷贝来产生新的对象&#xff0c;而不是new&#xff0c;并且可以根据自己的需求修改对象的属性。 实现Cloneable接口实现拷贝 而拷贝又分为浅拷贝和深拷贝&#xff0c;两者在…

AI赋能微服务:Spring Boot与机器学习驱动的未来应用开发

&#x1f9d1; 作者简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟。提供嵌入式方向的学习指导、简历面…

Compose UI 之 FloatingActionButton 按钮

FAB(Floating Action Button) FAB 是最具突出效果的悬浮按钮,出现在屏幕右下角。通常位于屏幕右下角,具有显著的圆形形状和浮动的定位,用于呈现应用程序的主要操作或常用操作,例如开始一个新的任务、分享内容、启动一个动作等。 Compose UI 库中,FAB 的样式有 4 种。 …

HarmonyOS入门--页面和自定义组件生命周期

文章目录 页面和自定义组件生命周期页面生命周期组件生命周期生命周期的调用时机 页面和自定义组件生命周期 生命周期流程如下图所示&#xff0c;下图展示的是被Entry装饰的组件&#xff08;首页&#xff09;生命周期。 自定义组件和页面的关系&#xff1a; 自定义组件&…