入口:index.php
获取地区
常规常量设置
引入application\classes\common\env文件获取开发环境
引入application\classes\common\area标记地区
引入 bootstrap 启动程序
引入Kohana_Core核心类
初始化程序
引入 kohana继承空类
设置时区、语言、自动加载方法
设置kohana初始选项
加载logs、config读取类
enable kohana模块
设置路由
此处通过set方法保存路由信息
public static function set($name, $uri = NULL, $regex = NULL)
{
return Route::$_routes[$name] = new Route($uri, $regex);
}
在request实例化时会读取路由信息进行匹配
执行request
echo Request::factory()
Creates a new request object for the given URI. New requests should be
created using the [Request::instance] or [Request::factory] methods.
1.获取请求配置信息
cli模式
http模式
SERVER_PROTOCOL、REQUEST_METHOD、HTTPS、HTTP_REFERER、HTTP_USER_AGENT、HTTP_X_REQUESTED_WITH、HTTP_X_FORWARDED_FOR
查询http协议中是否设定,未设定则取项目默认值
2.Request::$initial = $request = new Request($uri, $cache);
实例化Request
3.设置protocol 默认为 http/1.1 并保存 get->query post->post 数据
设置安全、请求方法、referrer、body
execute()
* Processes the request, executing the controller action that handles this
* request, determined by the [Route].
*
* 1. Before the controller action is called, the [Controller::before] method
* will be called.
* 2. Next the controller action will be called.
* 3. After the controller action is called, the [Controller::after] method
* will be called.
通过 request_client 实例调用excute方法,创建一个response实例,然后通过request_client_internal调用excute_request方法
通过反射类来调用控制器中的方法返回response,同时在excute_request中计算方法耗时和内存消耗
关键代码:
// Load the controller using reflection
$class = new ReflectionClass($prefix.$controller);
// Create a new instance of the controller
$controller = $class->newInstance($request, $response);
// Run the controller's execute() method
$response = $class->getMethod('execute')->invoke($controller);
执行excute时,会先调用before(),再执行action,最后执行 after()
最后执行response回调函数(暂时未深入了解用法)
send_headers()
Sends the response status and all set headers.
主要设置协议头部返回信息
body(); echo 最后的内容 生命周期结束
if ($content === NULL)
{
// Act as a getter
return $this->_body;
}
// Act as a setter
$this->_body = $content;
return $this;
文章浏览阅读933次。2019-10-25 17:35:37 浏览量:20172技嘉主板如何在线更新bios程序?bios是存储输入输出设备相关设置的程序,bios也是和软件一样,有版本的区别,bios版本不同,所能发挥的功能也有区别。bios程序能不能升级,需要查看主板官网有没有提供新版本的更新程序,如果有就可以升级。这边系统城小编教大家技嘉主板升级bios的方法。2016-07-21 13:50:35 浏览量:..._win7如何刷新bios
文章浏览阅读517次。 TelephonyManager类主要提供了一系列用于访问与手机通讯相关的状态和信息的get方法。其中包括手机SIM的状态和信息、电信网络的状态及手机用户的信息。在应用程序中可以使用这些get方法获取相关数据。 TelephonyManager类的对象可以通过Context.ge..._android telephony_service
文章浏览阅读1.9k次。ogEditor 是一个在线的所见即所得的 HTML 编辑器,内置文件管理器支持。Redactor[Textarea - 富文本编辑器 ]Redactor 是一个 jQuery 的插件,实现在线所见即所得的 HTML 编辑器。界面简洁,加载速度快。不过不支持 IE6 浏览器,如果你不需要考虑 IE6 不妨试试。CuteEditor[Textarea - 富文本编_ogeditor
文章浏览阅读4.4k次,点赞2次,收藏3次。互动直播系统介绍_webrtc连麦
文章浏览阅读7.8k次。 HTML的样式写入方法有:1、行内样式;2、内嵌样式;3、外联样式表。 行内样式:一般是用style写在dom元素上的,例如:<div style='height:200px;'></div>; 内嵌样式:一般是用style写在head标签内的。<style type='text/css'></style>; 外联样式:一般..._js获取dom样式
文章浏览阅读2.5k次,点赞8次,收藏16次。python 逆序对的数量【简单易懂,代码直接运行】给定一个长度为 n 的整数数列,请你计算数列中的逆序对的数量。逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i<j 且 a[i]>a[j],则其为一个逆序对;否则不是。输入格式第一行包含整数 n,表示数列的长度。第二行包含 n 个整数,表示整个数列。输出格式输出一个整数,表示逆序对的个数。数据范围1≤n≤100000,数列中的元素的取值范围 [1,109]。输入样例:62 3 4 5 6 1输出样_python逆序对个数
文章浏览阅读1.7k次,点赞15次,收藏2次。各种锁策略1、乐观锁VS悲观锁2、读写锁3、重量级锁vs轻量级锁.4、挂起等待锁VS自旋锁5、公平锁Vs非公平锁6、可重入锁7、死锁的典型场景1、乐观锁VS悲观锁乐观锁: 世界大概率是和平的,多个线程竞争一 把锁的概率会很低.(效率高)悲观锁: 世界大概率是出问题的,多个线程竞争一 把锁的概率会很高,会付出更多的成本来进行锁冲突的处理(更安全)两种想法没有优劣之分,要根据具体场景来进行使用.2、读写锁把加锁操作分成了两种.a)读锁b)写锁读锁和读锁之间是没有互斥的(不存在锁竞争)读锁和写_读写锁连续加锁
文章浏览阅读2.7k次,点赞2次,收藏5次。saturate_cast函数在OpenCV中的作用是防数据溢出,我们在直接操作像素点的时候,如果数值结果是赋值或者超过了255的话,在图片中是没办法显示的,这就是防数据溢出的作用,那么什么时候会有数据溢出的风险呢,这种情况在图像卷积操作的时候比较常见。 下面我们举个栗子吧: 选择一个3*3的锐化作用的卷积核,设计如下: (0, -1, 0, -1, 5, -1,_opencv 点赋值 防止溢出
文章浏览阅读2k次。html:<div class="container"> <img src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1545633786675&di=1b43ca4fe89c44cc06b026d21f646e91&imgtype=0..._前端图片大小随着高度而变化
文章浏览阅读1.2k次。介绍三种语音变速、变调方法:1. 变速变调;2. 变速不变调;3. 变调不变速。_sox 变调
文章浏览阅读2.3k次。Understand全称为Scientific Toolworks Understand,,是一款源代码阅读分析软件,使用它可以大大提高代码阅读效率。此软件亦有架构分析,代码评审与度量,生成软件质量统计与报表等功能。 官方网站:https://www.scitools.com/features/metrics.php 一.安装 傻瓜式安装,安装过程..._understand圈复杂度
文章浏览阅读564次。TCP/IP协议(一)网络基础知识参考书籍为《图解tcp/ip》-第五版。这篇随笔,主要内容还是TCP/IP所必备的基础知识,包括计算机与网络发展的历史及标准化过程(简述)、OSI参考模型、网络概念的本质、网络构建的设备等下面是协议层从底层至顶层的一个模型图:一、计算机网络的背景1.1 计算机的发展有人说:“20世纪最伟大的发明就是计算机”,自诞生伊始,计算机经历了一系列发展,从大型通用计算机、超级计算机、小型机、个人电脑、工作站以及现如今笔记本、平板、智能手机等,计算机已经彻底融入了我们的生活_《tcp/ip协议详解》计算机网络作为很基础的