
yii
世纪殇
一个不断保持前进的程序员,目前潜心在数据分析和中等网站架构设计中
展开
-
yii拦截器的使用
关于yii拦截器的实现,首先说明本文的拦截器的例子是在controller中使用的,拦截器会在controller中的function behavior函数中指明使用哪个拦截器,behavior函数如下定义public function behaviors() { return [ [ 'class'=>TestF原创 2016-08-04 22:02:34 · 2372 阅读 · 0 评论 -
yii2数据库查询操作
首先看findOne的函数定义,该函数定义在BaseActiveRecord当中return static::findOne(['id' => $id, 'status' => self::STATUS_ACTIVE]);findOne定义是:public static function findOne($condition){ return static::findByC原创 2016-08-12 10:36:44 · 7247 阅读 · 0 评论 -
yii2框架的错误处理
一直对框架的错误处理有些疑惑,为什么我的程序一旦出现问题,就会自动打印出错误呢?他是怎么监听的?在哪里用的try catch吗??这是我一直以来的困惑,可现在知道了,原来,原来php有自己的API当程序出现问题时,可以自动调用指定函数,进行处理YII2启动的时候,会自动注册错误处理函数set_error_handlerpublic function __construct($config原创 2016-08-11 11:04:15 · 9583 阅读 · 0 评论 -
yii2 controller behavior函数的beforeAction实现原理
我们知道controller的拦截器是在behavior中进行定义的,而controller的拦截器的函数必须定义beforeAction 和afterAction,这是为什么呢,因为这是当前Controller的祖父类定义的!!!我的SiteController的父类是web的Controller,该类的父类是yii\base\controller,每次 一个请求的到来,都会执行祖父类Co原创 2016-08-10 14:47:45 · 13448 阅读 · 0 评论 -
yii2 module类的behavior函数
之前已经说过了,函数behaviors在controller类中起的作用是进行拦截器的作用,而在Module中也是一样的在yii2给出的例子是这样的: /** * @inheritdoc */ public function behaviors() { return [ TimestampBehavior::cla原创 2016-08-08 16:37:13 · 1212 阅读 · 0 评论 -
yii 之(new yii-web-Application($config))
本博客要讲的是yii整个Application的创建过程,而不是运行过程哈,读者注意,没有run啊。阅读前须知:web的Application extends yii\base\Applicationyii\base\Application extends yii\base\moduleyii\base\module原创 2016-08-10 11:27:53 · 2608 阅读 · 0 评论 -
yii 依赖注入
什么是依赖注入? 依赖注入(Dependency Injection)是设计模式的一种。名字比较抽象,但是,要解决的问题却是比较明确。对于给定的应用程序,需要借助一些相对独立的组件来完成功能。一般来说,使用这些组件的过程就包含在应用程序的逻辑语句之中。问题是,当这些组件想要做成类似插件功能,以达到应用程序的业务逻辑不变就能随意的更改组件的实现的效果。这种灵转载 2016-08-08 14:29:05 · 871 阅读 · 0 评论 -
yii的db解读
1.yii中与数据库连接的时候,是通过ActiveRecord进行连接的,一般需要与数据库表进行对应的类需要继承ActiveRecord,而对于该表中数据库的查询,同样也是在该User类中定义的查询方法,不同的是,该查询的方法定义是static的。2.ActiveRecord活动记录的数据库查询是通过ActiveQuery类进行查询的,而ActiveQuery与ActiveReco原创 2016-08-01 18:48:54 · 3715 阅读 · 0 评论 -
Composer中的自动加载
Composer 是PHP的一个包依赖管理工具,类似Ruby中的RubyGems或者Node中的NPM,它并非官方,但现在已经非常流行。此文并不介绍如何使用Composer,而是关注于它的autoload的内容吧。举例来说,假设我们的项目想要使用 monolog 这个日志工具,就需要在composer.json里告诉composer我们需要它:{ "require": { "m转载 2016-08-17 11:01:06 · 3171 阅读 · 0 评论 -
PHP的PSR-0标准利用namespace来做autoloading
介绍PSR-0之前,先来说说命名空间(NameSpace)和Autoloading吧。NameSpace(命名空间)namespace是PHP5.3版本加入的新特性,用来解决在编写类库或应用程序时创建可重用的代码如类或函数时碰到的两类问题:1.用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。2.为很长的标识符名称(通常是为了缓解第一类问题而定义的)创转载 2016-08-17 10:38:50 · 499 阅读 · 0 评论 -
yii2 请求处理过程解析
所有的迷惑都会在源码中得到解答来一浏览器的请求发送到yii时是如何被变更为对应的controller=>action进行处理的呢??一言不合上代码,清除处理主要在web\application类中处理的public function handleRequest($request){ if (empty($this->catchAll)) { list原创 2016-08-12 16:00:45 · 4698 阅读 · 0 评论