zoukankan      html  css  js  c++  java
  • 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添加一个依赖注入,降低耦合,这里可以看做一个装饰器的模式的使用。

  • 相关阅读:
    使用C#开发ActiveX控件 并制作Cab包
    asp.net后台创建table设置宽度百分比
    Sql按姓名查出某个人的成绩排名
    获得DataGridView多选框值
    解决iframe窗体丢失Session时登录窗口显示在子页面的问题
    xml返回数组数据
    安卓界面组件文本框
    安卓的UI界面开发(初学者推荐)
    安卓布局
    安卓界面组件按钮
  • 原文地址:https://www.cnblogs.com/tfcwolf/p/4126203.html
Copyright © 2011-2022 走看看