zoukankan      html  css  js  c++  java
  • 自动加载

    PHP:

    简单说自动加载和命名空间是不同的东西。  自动加载解决脚本文件引入的问题,使其自动化。

    命名空间解决引入的类名 函数的冲突问题。

    psr自动加载标准,将自动加载和命名空间规范,使其类的加载和命名空间有了联系。

    composer自动加载的原理:http://blog.turn.tw/?p=1122  http://blog.turn.tw/?p=1039

    自动加载标准: https://www.php-fig.org/psr/psr-0/

    use 只是引入命名类 并不加载。 如在文件用了 use AA/a  那么使用new AA/a 或者 new a 都指明了是调用类 AA/a。如果没有use , 相当于调用类/a。 这里其实会间接影响加载机制(因为加载是是根据类名,在自动加载引入类的)。

    评语: php 的命名空间和自动加载感觉还是比较弱智的,通过psr来规范加载,引入问题,感觉设计太繁琐。

     psr-0和psr-4区别  https://segmentfault.com/a/1190000002616752

     https://segmentfault.com/a/1190000006686978

    psr-4的对应规则
    { "autoload": { "psr-4": { "church\": "./src/" } } }

    那我使用 use church estClass, 那就对应src/testClass.php.

    使用use church est estClass, 那就对应src/test/testClass.php.

    psr-0的对应规则

    {
        "autoload": {
            "psr-0": {
                "church\": "./src/"
            }
        }
    }

    我使用use church estClass, 那就对应src/church/testClass.php.
    使用use church est estClass, 那就对应src/church/test/testClass.php.

    js:

    import 机制 模块封装。

    模块存放和目录统一对应。如import home from './modules/home' 引入当前文件相对下的./modules/home.js文件。

    模块export可以配置输出 那些函数和那些类。 import 可以引入模块下的制定类和函数名。 同时可以使用 import as 设置引入函数和类的别名,解决冲突问题。

    评语: 感觉简单清晰。 

    python:

     其机制和js基本一样。

  • 相关阅读:
    【Linux】linux中很有用的指令(练习)
    【C 标准库】<string.h>
    【Linux网络编程】使用GDB调试程序
    【LINUX网络编程】Makefile文件
    【UNIX网络编程】TCP客户/服务器程序示例
    【UNIX网络编程】基本TCP套接字编程
    pyQt5新手教程 (二)通过jupyter开始你的旅程-编写一个空白窗口
    pyQt5新手教程 (一)通过anaconda安装pyqt包
    如何把没用的tplink4C68路由器连起来
    xcode10升级之后开始安装cocoapods
  • 原文地址:https://www.cnblogs.com/swing07/p/9906582.html
Copyright © 2011-2022 走看看