Yong

Yong

这家伙有点懒,还没写个性签名!

  • 财富值195
  • 威望值0
  • 总积分595

个人信息

  • 回复了 的说说
    继续new对象中,还是没有。
    如果可以new出来,这行就不会有那么多单身狗了。。。。。。。。。。。。。。。
  • 回复了 的说说
    一直不看container这个类,这两个星期有空就看两眼,终于大概看明白做了什么
    没有做啥,而且工作中没用yii,就是无聊看两眼吧
  • 发表了说说
    一直不看container这个类,这两个星期有空就看两眼,终于大概看明白做了什么
  • 赞了评论

    没人发现这 get() 有问题?

    首先 set() 很简单,经过 normalizeDefinition() 之后,definition 只有3种情况:
    1、匿名函数
    2、直接对象
    3、null / 字符串 / 数组,反正最终都会变成 class 这个键值(否则就出错)

    再来看 get($class),坑来了,参数 $class 对应的 definition 如果有,对应上面三种情况:
    1、call_user_func 可以拿到里面 new 出来的对象(至于这个对象还有依赖,可以 set() 时人为 get() 注入)
    2、这个不用说了,直接都是对象了(单例)
    3、通过 normalizeDefinition 我们知道,肯定有 class,并且 class 肯定是类名(这个是重点,一定是类名不是吗?!!!)

    再看 build($class) 干了什么事情:
    getDependencies() -> resolveDependencies() -> newInstanceArgs()
    直接把 $class 对应的这个类创建了出来,至于依赖,resolveDependencies 里面拿到 $class 构造函数的参数,直接 get 递归,反正到 newInstanceArgs 这一步,构造函数的参数要么是 get() 出来的真实依赖对象,要么是参数的简单类型的默认值。build 干了什么事?它直接产出了可用的真实对象,并且是解决并注入好依赖的!

    再看看 get() 里干了什么事?为了避免混淆,暂且把 definition 里面的 class 叫做 class,get() 参数第一个参数叫做 alias,它干了这么一件事:
    if ($class === $alias) {

    $object = $this->build($class, $params, $config);
    

    } else {

    $object = $this->get($concrete, $params, $config);
    

    }

    如果你还没看出坑,那就看流程:get('userLister'),原则上管它递归不递归它都应该是 app\models\UserLister 这个类的对象,难道不是直接 build('app\models\UserLister') ?但是因为 'userLister' !== 'app\models\UserLister',结果逻辑走向了:get('app\models\UserLister'),结果 get() 发现 definition('app\models\UserLister') 不存在,接着又回到了 build('app\models\UserLister'),啥玩意???逗我玩呢???

    原文是:http://www.digpage.com/di.html,这篇讲解其实是直接抄过来的(连图都抄没了),图请看原文,你会发现 get('app\models\UserLister') 最终还是走向了 build('app\models\UserLister'),只不过绕了一圈,至于为什么绕,要么是特殊情况,要么是写的人秀逗了?是薛强写的还是别人写的?

  • 学什么框架不重要。如果只是底层员工只能听人家说了算,有本事自己说了算才说用啥框架啥东东吧

  • 分别配置网站根目录就好了

  • 发表了说说
    从来没有用yii2做过项目,就是想看看它的源码,现在看它路由处理和响应处理代码感觉好无聊、不想看。是不是无处实操,没动力?唉!
  • 其实就是text框内容,后台php、前端js都可以做到

  • http://www.bootcss.com/p/bootstrap-datetimepicker/
    http://www.runoob.com/jqueryui/example-datepicker.html
    做程序,文档都不去看。。。。。。。。。。。。。。。

  • 回复了 的说说
    有人知道yii2中的组件是在哪里被实例化的吗?
    di
主管 等级规则
595/1000
资料完整度
20/100
用户活跃度
0/100

Ta的关注

0

Ta的粉丝

3

Ta的访客

19