zoukankan      html  css  js  c++  java
  • 基于PHP规范的自动加载方式(composer配置)

    针对PHP这种编程语言,到目前FIG指定了五个规范,分别如下:

    • PSR0:自动加载;
    • PSR1:基本代码规范;
    • PSR2:代码样式规范;
    • PSR3:日志接口规范;
    • PSR4:自动加载规范;

    看上去PSR4与PSR0是重复了,但是PSR4规范比较干净,可以看成PSR0规范的升级版。二者最重要区别在于:PSR0规范中,下划线会被转换为目录分隔符,但是PSR4中下划线不具有特殊的含义。二者都是通过特定的目录、文件名以及类名,实现快速查找到类文件,并将相应的类加载进来。

    PSR0和PSR4要求有个命名的空间,对上述的ClassTest类做相应的修改如下:

    <?php
    namespace ClassTestLib;
    class ClassTest{
     
        public function test()
        {
            echo "hello world!";
        }
    }

    那么对应的文件的路径应该改为libClassTestLibClassTest.php,此时修改composer.json中的autoload如下:

    "autoload":{
        "psr-0":{
            "ClassTestLib":"lib/"
        }  
    }

    可能你发现psr0的值有一些奇怪,是的。在这里ClassTestLib代表的是命名空间,而"lib"是目录名。加载对应的类文件的时候,搜索的路径是lib/ClassTestLib,而不是ClassTestLib/lib,这是在书写composer.json的时候需要注意的一点。

      如果命名空间中存在着“”,则在书写对应的composer.json的时候需要在相应的“”再添加一个“”。例如,如果命名空间改为ClassTestLib,相应的对应与应用根目录的路径名称应该变为libClassTestLibClassTest.php,对应的composer.json中的autoload应该变为:

    "autoload":{
        "psr-0":{
            "ClassTest\Lib":"lib/"
        }  
    }

    转 :https://www.cnblogs.com/yue-blog/p/5904275.html

  • 相关阅读:
    Javascript 高级程序设计(第3版)
    小文笔记
    修改hadoop FileUtil.java,解决权限检查的问题
    编译hadoop遇到maven timeout
    Hadoop Eclipse开发环境搭建
    tcpdump抓包
    Hadoop JobTracker和NameNode运行时参数查看
    Hadoop hostname: Unknown host
    java.io.IOException: Incompatible namespaceIDs
    Hadoop集群搭建
  • 原文地址:https://www.cnblogs.com/fps2tao/p/7819511.html
Copyright © 2011-2022 走看看