• yii2.0学习及变化比较(一)


    ok,因为工作需要因此直接开始使用yii2,因此将开始yii2的代码分析及比较,yii1的分析依旧会继续。

    yii init 文档

    这是一个命令行下的工具
    首先他通过读取url argv来获取两种不同的配置,即开发和生产两个环境
    然后通过php读取stdn获取用户选择,复制环境配置到网站根目录

    比起1版本,更加的人性化.我们可以根据自己的需要自定义化环境.

    依旧是他的入口文件yii.php,没有变化
    和之前不同的是,他这里对环境进行了配置,同时定义了输入输出流
    而后加载了一个自动加载类,和boostrap。
    框架的运行部分,将原本由核心文件控制的application的配置独立出来手动加载.
    但是因为原来的架构原因,基本上使得外表没有多大的变化

    看看他的自动加载文件,原来这里是实现了psr的规范化加载。
    然后通过一个composer自动加载文件,其中又加载了另外一个类的自动加载函数作为临时加载函数
    同时初始化了psr4 namespace class  调用那个类加载
    最后对于一个文件进行便利,然后返回文件名,不过没明白这里是什么意思
    这里是yii对于Psr0的实现部分,其他详细的部分以后再看


    进入yii文件,这是一个继承类,目的是让我们生成自己的外观配置,
    接着重置了自动类加载函数,
    同时包含了一个di容器和一个类信息hash表
    整个文件除了移除了application的控制之外,就是更改了创建组件的名称,改为了object,更加的形象和贴切,同时提高了yii的兼容性和拓展性.
    application部分的构造函数进行了简化,同时更加的形象贴切,首先设置句柄,使用了Instance这个通用术语,更加明确的将yii作为桌面开发在web上的一种延伸。
    而后又新使用了状态模式,又将原来的注册组件的部分放在了preinit中,

    Preinit部分除了原来的basepath验证之外,更增加了其他的验证,同时将组件信息的加载简化

    接着设置了错误处理函数,这里没有对异常进行处理.

    接着直接调用了他的祖类components,这里这里Module没有直接继承components,而是添加了serverlocal继承,目的是给components添加一个依赖注入,降低耦合,这里可以看做一个装饰器的模式的使用。

  • 相关阅读:
    Sql优化(二) 快速计算Distinct Count
    Minor GC和Full GC区别(转)
    对于JVM中方法区,永久代,元空间以及字符串常量池的迁移和string.intern方法
    2017/6/29杂记
    java中代理,静态代理,动态代理以及spring aop代理方式,实现原理统一汇总
    ThreadLocal的设计理念与作用
    2017/6/28杂记
    关于hashmap 与concurrentHashMap
    2017/6/27杂记
    深入理解java异常处理机制
  • 原文地址:https://www.cnblogs.com/tfcwolf/p/4126203.html
Copyright © 2020-2023  润新知