yii2源码分析-ServiceLocator 和 Component
3853
0
0
上文,我们了解到yii2的配置,实际是对 yii\web\Application 对象的配置。
但是,在进行 yii\baseYii::configure 方法的讲解时,我们疑问:如果我们在配置文件 main.php 内添加了一个 yii\web\Application 不存在的属性 key,会不会报错?
答:不一定。
假设我们先添加一个属性 a , 让其值等于 111
return [ 'a' => 111, 'id' => 'app-frontend', 'basePath' => dirname(__DIR__), // ... ];
浏览器访问一下首页,会发现报错提示
Setting unknown property: yii\web\Application::a
这很正常,也很好理解,即是对属性的配置,没有就报错嘛,不稀奇。
但是,这只是表面现象。main.php 文件内我们也对 components 项配置了却没有报错,这是为什么?
有些php基础的同学应该都能明白,这肯定是 php魔术方法 起到的效果,我们在这个系列的开篇有跟大家补充这方面的知识,还不懂的可以回去再补补。
我们来看yii2是如何实现这个功能的。
首先我们应该从 yii\web\Application 开始查找相应的 __set 方法的实现。经过
还有90%的精彩内容,购买继续阅读
- 评论区
共4条评论
登录
后发布评论