![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
逐行阅读Yii2.0.43源码
从框架入口文件开始,逐行阅读Yii2.0.43源码
会飞的猫666
这个作者很懒,什么都没留下…
展开
-
五十七、逐行阅读Yii2.0.43_Yii框架文件yii\web\UrlManager.php(2)
1. init方法,初始化UrlManager // 初始化UrlManager public function init() { parent::init(); if ($this->normalizer !== false) { $this->normalizer = Yii::createObject($this->normalizer); if (!$this->no原创 2021-12-08 10:23:00 · 205 阅读 · 0 评论 -
五十七、逐行阅读Yii2.0.43_Yii框架文件yii\web\UrlManager.php(1)
yii\web\UrlManager类,解析和创建url,继承yii\base\Component类。一、属性1.$enablePrettyUrl 启用url用户友好化 // 启用url用户友好化 public $enablePrettyUrl = false;2.$enableStrictParsing是否启用严格解析 //是否启用严格解析 public $enableStrictParsing = false;3.$rules 创...原创 2021-12-02 15:43:21 · 284 阅读 · 0 评论 -
五十六、逐行阅读Yii2.0.43_Yii框架文件yii\base\Response.php
yii\base\Response类是响应请求的基类,继承值yii\base\Component类一、属性1. $exitStatus 退出码 //退出码 public $exitStatus = 0;二、方法1. send方法,发送请求,这是一个空方法,由子类实现具体功能 public function send() { }2. clearOutputBuffers方法,移除输出缓冲 //移除输出缓冲 public f原创 2021-11-26 15:40:08 · 76 阅读 · 0 评论 -
五十五、逐行阅读Yii2.0.43_Yii框架文件yii\web\Response.php(7)
一、getIsInvalid方法,检查响应码是否无效 //检查响应码是否无效 public function getIsInvalid() { return $this->getStatusCode() < 100 || $this->getStatusCode() >= 600; }二、getIsInformational方法,信息码 public function getIsInforma原创 2021-11-25 15:43:28 · 270 阅读 · 0 评论 -
五十四、逐行阅读Yii2.0.43_Yii框架文件yii\web\Response.php(6)
一、属性1. $_cookiesCookieCollection实例 //CookieCollection实例 private $_cookies;二、方法1. getCookies方法,返回CookieCollection实例 // 返回CookieCollection实例 public function getCookies() { if ($this->_cookies === null) { .原创 2021-11-24 15:18:36 · 289 阅读 · 0 评论 -
五十三、逐行阅读Yii2.0.43_Yii框架文件yii\web\Response.php(5)
一、redirect方法,重定向 //重定向 public function redirect($url, $statusCode = 302, $checkAjax = true) { if (is_array($url) && isset($url[0])) { // ensure the route is absolute $url[0] = '/' . ltrim($url[0], '/');原创 2021-11-23 15:42:46 · 299 阅读 · 0 评论 -
五十二、逐行阅读Yii2.0.43_Yii框架文件yii\web\Response.php(4)
一、sendFile方法,发送文件 // 发送文件 public function sendFile($filePath, $attachmentName = null, $options = []) { // mimeType设置 if (!isset($options['mimeType'])) { $options['mimeType'] = FileHelper::getMimeTypeByExtension($fi原创 2021-11-22 16:26:10 · 292 阅读 · 0 评论 -
五十一、逐行阅读Yii2.0.43_Yii框架文件yii\web\Response.php(3)
一、send方法,发送响应 // 发送响应数据到客户端 public function send() { // 已经发送,直接返回 if ($this->isSent) { return; } // 响应发送前事件处理 $this->trigger(self::EVENT_BEFORE_SEND); // 准备阶段 $this-&原创 2021-11-19 14:17:58 · 339 阅读 · 0 评论 -
五十、逐行阅读Yii2.0.43_Yii框架文件yii\web\Response.php(2)
一、init方法,组件初始化 //组件初始化 public function init() { // http版本 if ($this->version === null) { if (isset($_SERVER['SERVER_PROTOCOL']) && $_SERVER['SERVER_PROTOCOL'] === 'HTTP/1.0') { $this->原创 2021-11-18 14:48:21 · 199 阅读 · 0 评论 -
四十九、逐行阅读Yii2.0.43_Yii框架文件yii\web\Response.php(1)
yii\web\Response继承yii\base\Response类,表示一个http响应。包含了要发送给客户端的headers,cookies和相应内容。一、3个事件相关的常量 const EVENT_BEFORE_SEND = 'beforeSend'; const EVENT_AFTER_SEND = 'afterSend'; const EVENT_AFTER_PREPARE = 'afterPrepare';二、响应内容格式 //响应内容原创 2021-11-17 14:52:58 · 334 阅读 · 0 评论 -
四十八、逐行阅读Yii2.0.43_Yii框架文件yii\base\Request.php
yii\base\Request是一个Request抽象基类。继承yii\base\Component类。一、属性1. $_scriptFile入口脚本文件2. $_isConsoleRequest是否命令行请求 // 脚本入口文件 private $_scriptFile; //是否命令行请求 private $_isConsoleRequest;二、方法1. resolve方法,解析请求 //解析请求 abstract pu原创 2021-11-16 10:10:28 · 103 阅读 · 0 评论 -
四十七、逐行阅读Yii2.0.43_Yii框架文件yii\web\Request.php(14)
一、属性1. $_secureForwardedHeaderParts 安全的forwarded请求头部分 // 信任的`Forwarded`请求头部分 private $_secureForwardedHeaderParts;二、方法1. getSecureForwardedHeaderTrustedPart方法,返回Forwarded头对应部分的第一个值 // 返回`Forwarded`请求头对应的第一个值 protected function ge原创 2021-11-15 13:45:05 · 262 阅读 · 0 评论 -
四十六、逐行阅读Yii2.0.43_Yii框架文件yii\web\Request.php(13)
一、属性1. $_csrfToken 用于csrf验证的令牌 // csrf验证的令牌 private $_csrfToken;二、方法1. getCsrfToken方法,返回csrf验证的token //返回用于csrf验证的令牌 public function getCsrfToken($regenerate = false) { if ($this->_csrfToken === null || $regenerate原创 2021-11-12 10:14:23 · 210 阅读 · 0 评论 -
四十五、逐行阅读Yii2.0.43_Yii框架文件yii\web\Request.php(12)
1. getCookies方法,返回cookie的集合 // 返回cookie集合 public function getCookies() { if ($this->_cookies === null) { $this->_cookies = new CookieCollection( $this->loadCookies(), [原创 2021-11-11 16:48:59 · 91 阅读 · 0 评论 -
四十四、逐行阅读Yii2.0.43_Yii框架文件yii\web\Request.php(11)
一、属性1. $_port 端口号2. $_securePort 端口号(安全连接)3. $_contentType 内容类型4. $_languages 语言 //端口号 private $_port; //端口号(安全连接) private $_securePort; //内容类型 private $_contentTypes; //语言 private $_languages;二、方法1. getPor.原创 2021-11-11 16:29:25 · 315 阅读 · 0 评论 -
四十三、逐行阅读Yii2.0.43_Yii框架文件yii\web\Request.php(10)
一、getUserHost方法,返回用户主机名 //返回用户主机名 public function getUserHost() { $userIp = $this->getUserIpFromIpHeaders(); if($userIp === null) { return $this->getRemoteHost(); } return gethostbyaddr($userI原创 2021-11-10 17:01:22 · 372 阅读 · 0 评论 -
四十二、逐行阅读Yii2.0.43_Yii框架文件yii\web\Request.php(9)
一、getUserIpFromIpHeaders方法,从请求头检索客户端ip // 返回客户端ip地址 protected function getUserIpFromIpHeaders() { $ip = $this->getSecureForwardedHeaderTrustedPart('for'); if ($ip !== null && preg_match( '/^\[?(?P<ip原创 2021-11-09 17:23:47 · 124 阅读 · 0 评论 -
四十一、逐行阅读Yii2.0.43_Yii框架文件yii\web\Request.php(8)
一、getQueryString方法,返回url中查询参数部分 // query string public function getQueryString() { return isset($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : ''; }二、getIsSecureConnection方法,是否安全连接 //检查是否ht.原创 2021-11-08 17:46:18 · 103 阅读 · 0 评论 -
四十、逐行阅读Yii2.0.43_Yii框架文件yii\web\Request.php(7)
一、属性1. $_pathInfo 路径信息2. $_url 请求的相对url //请求路径信息 private $_pathInfo; // 请求的相对url private $_url;二、方法1. getPathInfo方法,返回路劲信息 //当前请求的路径信息 public function getPathInfo() { if ($this->_pathInfo === null) {原创 2021-11-06 13:54:28 · 175 阅读 · 0 评论 -
三十九、逐行阅读Yii2.0.43_Yii框架文件yii\web\Request.php(6)
一、属性1. $_baseUrl 相对url2. $_scriptUrl 入口url3. $_scriptFile 入口文件 //url private $_baseUrl; //入口url private $_scriptUrl; //入口文件 private $_scriptFile;二、方法1. getBaseUrl方法,返回相对url // 返回相对url public function getBas.原创 2021-11-05 15:56:52 · 116 阅读 · 0 评论 -
三十八、逐行阅读Yii2.0.43_Yii框架文件yii\web\Request.php(5)
一、属性1. $_queryParams 查询参数2. $_hostInfo 主机信息3. $_hostName 主机名称 //查询参数 private $_queryParams; //主机信息 private $_hostInfo; //主机名称 private $_hostName;二、方法1. getQueryParams方法,返回url中queryString部分 // 返回queryString p.原创 2021-11-04 10:24:54 · 107 阅读 · 0 评论 -
三十七、逐行阅读Yii2.0.43_Yii框架文件yii\web\Request.php(4)
一、属性1. $_rawBody 原生body内容2. $_bodyParams body内参数 // 原生body内容 private $_rawBody; //body参数 private $_bodyParams;二、方法1.getRawBody方法,返回原生请求体 //返回原生请求内容 public function getRawBody() { if ($this->_rawBody ===.原创 2021-11-03 15:34:41 · 96 阅读 · 0 评论 -
三十六、逐行阅读Yii2.0.43_Yii框架文件yii\web\Request.php(3)
一、getMethod方法,返回当前请求的方法 /** * 返回当前请求的方法 */ public function getMethod() { if ( isset($_POST[$this->methodParam]) // Never allow to downgrade request from WRITE methods (POST, PATCH, DELETE, etc)原创 2021-11-02 15:02:22 · 75 阅读 · 0 评论 -
三十五、逐行阅读Yii2.0.43_Yii框架文件yii\web\Request.php(2)
一、resolve方法,解析请求,返回路由和参数。 /** * 解析请求, * 返回路由和参数 */ public function resolve() { //解析请求,返回路由和参数 $result = Yii::$app->getUrlManager() ->parseRequest($this); if ($result !== false) {原创 2021-11-01 09:30:36 · 115 阅读 · 0 评论 -
三十四、逐行阅读Yii2.0.43_Yii框架文件yii\web\Request.php(1)
yii\web\Request类继承yii\base\Request类。web Request类表示一个HTTP请求。 它封装了$_SERVER变量,并解决了不同Web服务器之间的不一致性。 它还提供了从$_POST, $_GET, $_COOKIES和REST检索请求参数的接口1. 属性CSRF_HEADER CSRF token键名 CSRF_MASK_LENGTH CSRF token掩码长度 $enableCsrfValidation 是否启用csrf验证 $csrfPara..原创 2021-10-29 11:45:16 · 104 阅读 · 0 评论 -
三十三、逐行阅读Yii2.0.43_Yii框架文件ServiceLocator.php
ServiceLocator类继承Component类。一、属性1. $_components 组件实例数组2. $_definitions 组件定义数组 // 组件实例 private $_components = []; //组件定义 private $_definitions = [];二、方法1. __get方法,获取$name对应的值 // 获取$name对应的值 public function __get($na..原创 2021-10-28 10:07:24 · 89 阅读 · 0 评论 -
三十二、逐行阅读Yii2.0.43_Yii框架文件yii\base\Module.php(5)
一、runAction方法,根据指定的路由运行控制器操作 /** * 根据路由运行指定的控制器操作 */ public function runAction($route, $params = []) { $parts = $this->createController($route); if (is_array($parts)) { /* @var $controller Controller原创 2021-10-27 10:37:29 · 138 阅读 · 0 评论 -
三十一、逐行阅读Yii2.0.43源码_Yii框架文件yii\base\Module.php(4)
一、getVersion方法,返回模块版本 /** * 模块版本 */ public function getVersion() { if ($this->_version === null) { $this->_version = $this->defaultVersion(); } else { if (!is_scalar($this->_versi原创 2021-10-26 17:14:58 · 119 阅读 · 0 评论 -
三十、逐行阅读Yii2.0.43源码_Yii框架文件yii\base\Module.php(3)
一、getBasePath方法,返回模块的路径 /** * 返回模块根目录 */ public function getBasePath() { if ($this->_basePath === null) { $class = new \ReflectionClass($this); $this->_basePath = dirname($class->getFileName(原创 2021-10-26 16:22:19 · 149 阅读 · 0 评论 -
二十九、逐行阅读Yii2.0.43源码_Yii框架文件yii\base\Module.php(2)
一、构造函数 //构造函数 public function __construct($id, $parent = null, $config = []) { //模块id $this->id = $id; //父模块 $this->module = $parent; //其他配置 parent::__construct($config); }二、getIns原创 2021-10-26 10:34:06 · 146 阅读 · 0 评论 -
二十八、逐行阅读Yii2.0.43源码_Yii框架文件yii\base\Module.php(1)
Module类是所有模块和应用的基类。Module类继承ServiceLocator类。一、属性1. EVENT_BEFORE_ACTION 操作执行前事件2. EVENT_AFTER_ACTION 操作执行后事件3. $params 模块参数4. $id 模块id5. $module当前模块的父模块6. $layout模块内的视图的布局7. $controllerMap控制器映射配置8. $controllerNamespace控制器命名空间9. $defaultR原创 2021-10-25 16:54:29 · 141 阅读 · 0 评论 -
二十七、逐行阅读Yii2.0.43源码_Yii框架文件yii\base\Application.php(5)
目录一、10个获取组件实例的方法二、coreComponents方法,返回核心应用组件的配置三、end方法,应用程序终止四、setContainer方法,设置对象属性一、10个获取组件实例的方法1. getDb方法,db组件2. getLog方法,日志组件3. getErrorHandler方法,错误处理组件4. getCache方法,cache组件5. getFormatter方法,formatter组件6. getRequest方法,request...原创 2021-10-25 10:04:14 · 86 阅读 · 0 评论 -
二十六、逐行阅读Yii2.0.43源码_Yii框架文件yii\base\Application.php(4)
一、属性1. $_runtimePath 运行时文件的路径2. $_vendorPathvendor目录路径 /** * 运行时文件的目录 */ private $_runtimePath; // vendor目录路径 private $_vendorPath;二、方法1. getRuntimePath方法,返回运行时目录路径 /** * 返回运行时文件的目录 */ public functi.原创 2021-10-23 16:56:00 · 134 阅读 · 0 评论 -
二十五、逐行阅读Yii2.0.43源码_Yii框架文件yii\base\Application.php(3)
一、getUniqueId方法,返回唯一的标识模块的id // 返回唯一的标识模块的id public function getUniqueId() { return ''; }二、setBasePath方法,设置应用根目录和@app别名 /** * 设置应用根目录和@app别名 */ public function setBasePath($path) { parent::setBase原创 2021-10-23 14:37:44 · 70 阅读 · 0 评论 -
二十四、逐行阅读Yii2.0.43源码_Yii框架文件yii\base\Application.php(2)
一、构造函数1. 挂载app实例2. 状态初始化3. 预初始化4. 注册错误处理程序5. 调用父类的构造函数 /** * 构造函数 * 1. 挂载app实例 * 2. 状态初始化 * 3. 预初始化 * 4. 注册错误处理程序 * 5. 调用父类的构造函数 */ public function __construct($config = []) { //挂载app实例 .原创 2021-10-22 16:08:15 · 136 阅读 · 0 评论 -
二十三、逐行阅读Yii2.0.43源码_Yii框架文件yii\base\Application.php(1)
yii\base\Application.php是一个抽象类,继承Module类,yii\web\Application类继承yii\base\Application类1. 2个请求事件的常量EVENT_BEFORE_REQUEST 处理请求前触发的事件 EVENT_AFTER_REQUEST 处理请求后,响应发送前触发的事件2. 7个标识应用状态的常量STATE_BEGIN 应用开始 STATE_INIT 应用初始化 STATE_BEFORE_REQUEST 标志应用正在触发EV.原创 2021-10-22 10:48:22 · 98 阅读 · 0 评论 -
二十二、逐行阅读Yii2.0.43源码_Yii框架文件yii\web\Application.php
目录一、属性二、方法一、属性1. $defaultRoute 默认路由2. $catchAll 指定的一个控制住操作,当应用处于维护模式时,用来处理所有请求3. $controller 当前控制器实例4. $_homeUrl 主页url // 应用的默认路由 public $defaultRoute = 'site'; //指定的一个控制住操作,当应用处于维护模式时, //用来处理所有请求 public $catchAll;..原创 2021-10-21 17:32:51 · 205 阅读 · 0 评论 -
二十一、逐行阅读Yii2.0.43源码_Yii框架文件db.php
db.php文件是数据库相关的配置项<?phpreturn [ 'class' => 'yii\db\Connection', //连接信息 'dsn' => 'mysql:host=localhost;dbname=rent', 'username' => 'root', 'password' => 'root', 'charset' => 'utf8', // Schema cache option原创 2021-10-21 16:42:11 · 83 阅读 · 0 评论 -
二十、逐行阅读Yii2.0.43源码_Yii框架文件params.php
params.php文件定义了一些其他配置项<?phpreturn [ 'adminEmail' => 'admin@example.com', 'senderEmail' => 'noreply@example.com', 'senderName' => 'Example.com mailer',];原创 2021-10-21 16:38:50 · 129 阅读 · 0 评论 -
十九、逐行阅读Yii2.0.43源码_Yii框架文件web.php
web.php内定义了框架的配置信息//其他配置$params = require __DIR__ . '/params.php';//数据库配置$db = require __DIR__ . '/db.php';$config = [ 'id' => 'basic', 'basePath' => dirname(__DIR__), 'bootstrap' => ['log'], 'aliases' => [ '@bo原创 2021-10-21 16:36:20 · 101 阅读 · 0 评论