Yii源码阅读笔记(二十六)
Application 类中设置路径的方法和调用ServiceLocator(服务定位器)加载运行时的组件的方法注释:
/** * Handles the specified request. * 处理指定的请求--抽象方法 * This method should return an instance of [[Response]] or its child class * which represents the handling result of the request. * 该方法应该返回一个[[Response]]实例,或者它的子类代表处理请求的结果 * * @param Request $request the request to be handled * @return Response the resulting response */ abstract public function handleRequest($request); private $_runtimePath; /** * Returns the directory that stores runtime files. * 返回存储运行时文件的路径 * @return string the directory that stores runtime files. * Defaults to the "runtime" subdirectory under [[basePath]]. * 默认返回[[basePath]]下的 "runtime"目录 */ public function getRuntimePath() { if ($this->_runtimePath === null) { $this->setRuntimePath($this->getBasePath() . DIRECTORY_SEPARATOR . 'runtime'); } return $this->_runtimePath; } /** * Sets the directory that stores runtime files. * 设置存储运行时文件的路径 * @param string $path the directory that stores runtime files. */ public function setRuntimePath($path) { $this->_runtimePath = Yii::getAlias($path); Yii::setAlias('@runtime', $this->_runtimePath); } private $_vendorPath; /** * Returns the directory that stores vendor files. * 返回插件目录路径 * @return string the directory that stores vendor files. * Defaults to "vendor" directory under [[basePath]]. * 默认返回[[basePath]]下的 "vendor" 目录 */ public function getVendorPath() { if ($this->_vendorPath === null) { $this->setVendorPath($this->getBasePath() . DIRECTORY_SEPARATOR . 'vendor'); } return $this->_vendorPath; } /** * Sets the directory that stores vendor files. * 设置插件目录路径,并设置别名 * @param string $path the directory that stores vendor files. */ public function setVendorPath($path) { $this->_vendorPath = Yii::getAlias($path); Yii::setAlias('@vendor', $this->_vendorPath); Yii::setAlias('@bower', $this->_vendorPath . DIRECTORY_SEPARATOR . 'bower'); Yii::setAlias('@npm', $this->_vendorPath . DIRECTORY_SEPARATOR . 'npm'); } /** * Returns the time zone used by this application. * 取得时区 * This is a simple wrapper of PHP function date_default_timezone_get(). * If time zone is not configured in php.ini or application config, * it will be set to UTC by default. * @return string the time zone used by this application. * @see http://php.net/manual/en/function.date-default-timezone-get.php */ public function getTimeZone() { return date_default_timezone_get(); } /** * Sets the time zone used by this application. * 设置时区 * This is a simple wrapper of PHP function date_default_timezone_set(). * Refer to the [php manual](http://www.php.net/manual/en/timezones.php) for available timezones. * @param string $value the time zone used by this application. * @see http://php.net/manual/en/function.date-default-timezone-set.php */ public function setTimeZone($value) { date_default_timezone_set($value); } /** * Returns the database connection component. * 返回数据库连接组件 * @return \yii\db\Connection the database connection. */ public function getDb() { return $this->get('db'); } /** * Returns the log dispatcher component. * 返回日志调度组件 * @return \yii\log\Dispatcher the log dispatcher application component. */ public function getLog() { return $this->get('log'); } /** * Returns the error handler component. * 返回错误处理组件 * @return \yii\web\ErrorHandler|\yii\console\ErrorHandler the error handler application component. */ public function getErrorHandler() { return $this->get('errorHandler'); } /** * Returns the cache component. * 返回缓存组件 * @return \yii\caching\Cache the cache application component. Null if the component is not enabled. */ public function getCache() { return $this->get('cache', false); } /** * Returns the formatter component. * 返回格式化程序组件 * @return \yii\i18n\Formatter the formatter application component. */ public function getFormatter() { return $this->get('formatter'); } /** * Returns the request component. * 返回请求的组件对象 * @return \yii\web\Request|\yii\console\Request the request component. */ public function getRequest() { return $this->get('request'); } /** * Returns the response component. * 返回响应组件 * @return \yii\web\Response|\yii\console\Response the response component. */ public function getResponse() { return $this->get('response'); } /** * Returns the view object. * 返回视图对象 * @return View|\yii\web\View the view application component that is used to render various view files. */ public function getView() { return $this->get('view'); } /** * Returns the URL manager for this application. * 返回当前应用的URL管理组件 * @return \yii\web\UrlManager the URL manager for this application. */ public function getUrlManager() { return $this->get('urlManager'); } /** * Returns the internationalization (i18n) component * 返回国际化组件 * @return \yii\i18n\I18N the internationalization application component. */ public function getI18n() { return $this->get('i18n'); } /** * Returns the mailer component. * 返回邮件组件 * @return \yii\mail\MailerInterface the mailer application component. */ public function getMailer() { return $this->get('mailer'); } /** * Returns the auth manager for this application. * 返回该应用的权限管理组件 * @return \yii\rbac\ManagerInterface the auth manager application component. * Null is returned if auth manager is not configured. */ public function getAuthManager() { return $this->get('authManager', false); } /** * Returns the asset manager. * 返回资源管理组件 * @return \yii\web\AssetManager the asset manager application component. */ public function getAssetManager() { return $this->get('assetManager'); } /** * Returns the security component. * 返回安全组件 * @return \yii\base\Security the security application component. */ public function getSecurity() { return $this->get('security'); } /** * Returns the configuration of core application components. * 返回核心组件的配置 * @see set() */ public function coreComponents() { return [ 'log' => ['class' => 'yii\log\Dispatcher'], 'view' => ['class' => 'yii\web\View'], 'formatter' => ['class' => 'yii\i18n\Formatter'], 'i18n' => ['class' => 'yii\i18n\I18N'], 'mailer' => ['class' => 'yii\swiftmailer\Mailer'], 'urlManager' => ['class' => 'yii\web\UrlManager'], 'assetManager' => ['class' => 'yii\web\AssetManager'], 'security' => ['class' => 'yii\base\Security'], ]; } /** * Terminates the application. * 终止应用程序 * This method replaces the `exit()` function by ensuring the application life cycle is completed * before terminating the application. * 该方法代替`exit()` 方法确认一个应用的生命周期已经结束 * @param integer $status the exit status (value 0 means normal exit while other values mean abnormal exit). * @param Response $response the response to be sent. If not set, the default application [[response]] component will be used. * @throws ExitException if the application is in testing mode */ public function end($status = 0, $response = null) { if ($this->state === self::STATE_BEFORE_REQUEST || $this->state === self::STATE_HANDLING_REQUEST) {//判断当前状态为请求前或者处理请求 $this->state = self::STATE_AFTER_REQUEST;//则设置应用状态为请求完成后 $this->trigger(self::EVENT_AFTER_REQUEST);//触发afterRequest事件 } if ($this->state !== self::STATE_SENDING_RESPONSE && $this->state !== self::STATE_END) {//如果应用状态不是发送应答和应用结束 $this->state = self::STATE_END;//设置状态为应用结束 $response = $response ? : $this->getResponse();// $response->send();//向客户端发送应答 } if (YII_ENV_TEST) { throw new ExitException($status); } else { exit($status); } }
Yii源码阅读笔记(二十六)的更多相关文章
- Yii源码阅读笔记(十六)
Model类,集中整个应用的数据和业务逻辑—— /** * Generates a user friendly attribute label based on the give attribute ...
- Yii源码阅读笔记(十二)
Action类,控制器中方法的基类: namespace yii\base; use Yii; /** * Action is the base class for all controller ac ...
- Yii源码阅读笔记(十八)
View中的查找视图文件方法和渲染文件方法 /** * Finds the view file based on the given view name. * 通过view文件名查找view文件 * ...
- Yii源码阅读笔记(十五)
Model类,集中整个应用的数据和业务逻辑——验证 /** * Returns the attribute labels. * 返回属性的标签 * * Attribute labels are mai ...
- Yii源码阅读笔记(十四)
Model类,集中整个应用的数据和业务逻辑——场景.属性和标签: /** * Returns a list of scenarios and the corresponding active attr ...
- Yii源码阅读笔记(十)
控制器类,所有控制器的基类,用于调用模型和布局,输出到视图 namespace yii\base; use Yii; /** * Controller is the base class for cl ...
- Yii源码阅读笔记(十九)
View中渲染view视图文件的前置和后置方法,以及渲染动态内容的方法: /** * @return string|boolean the view file currently being rend ...
- Yii源码阅读笔记(一)
今天开始阅读yii2的源码,想深入了解一下yii框架的工作原理,同时学习一下优秀的编码规范和风格.在此记录一下阅读中的小心得. 每个框架都有一个入口文件,首先从入口文件开始,yii2的入口文件位于we ...
- werkzeug源码阅读笔记(二) 下
wsgi.py----第二部分 pop_path_info()函数 先测试一下这个函数的作用: >>> from werkzeug.wsgi import pop_path_info ...
- werkzeug源码阅读笔记(二) 上
因为第一部分是关于初始化的部分的,我就没有发布出来~ wsgi.py----第一部分 在分析这个模块之前, 需要了解一下WSGI, 大致了解了之后再继续~ get_current_url()函数 很明 ...
随机推荐
- ASP.NET MVC3 中整合 NHibernate3.3、Spring.NET2.0 使用AOP执行事务处理
方法1 <object id="ServiceOperation" type="Spring.Aop.Support.SdkRegularExpressionMet ...
- 设置随机启动--《用delphi开发共享软件》-15.1任务管理器
在设置窗体中 chkAutoStart: TCheckBox; 在设置窗体中 chkAutoStart: TCheckBox; procedure TFrmSetup.FormCreate(Sende ...
- LA6886 Golf Bot(FFT)
题目 Source https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page= ...
- The 2015 China Collegiate Programming Contest C. The Battle of Chibi hdu 5542
The Battle of Chibi Time Limit: 6000/4000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Othe ...
- 【原】iOS学习45之多媒体操作
1. 音频 1> 音频实现简述 iOS 里面共有四种专门实现播放音频的方式: System Sound Services(系统声音服务) OpenAL(跨平台的开源的音频处理接口) Audio ...
- BZOJ 2733 & splay的合并
题意: 带权联通块,添边与查询联通块中第k大. SOL: splay合并+并查集. 我以为splay可以用奇技淫巧来简单合并...调了一下午终于幡然醒悟...于是就只好一个一个慢慢插...什么启发式合 ...
- float的元素脱离文档流,但不完全脱离,只是提升了半层;
float的元素脱离文档流,但不完全脱离,只是提升了半层:
- BZOJ1171: 大sz的游戏&BZOJ2892: 强袭作战
Description 大sz最近在玩一个由星球大战改编的游戏.话说绝地武士当前共控制了N个星球.但是,西斯正在暗处悄悄地准备他们的复仇计划.绝地评议会也感觉到了这件事.于是,准备加派绝地武士到各星球 ...
- docker WARNING: bridge-nf-call-iptables is disabled 处理
在CentOS中 vim /etc/sysctl.conf net.bridge.bridge-nf-call-ip6tables = net.bridge.bridge-nf-call-iptabl ...
- nginx 中 PHP 调用PEAR.php遇到的问题
公司有个老项目,写了很多年了,是在apache 上面跑的,无意间,我想让它跑到nginx上,结果遇到了PEAR.php的问题,先安装pear 基本安富有就是 wget http://pear.php. ...