zoukankan      html  css  js  c++  java
  • 【php】【psr】psr4 自动加载规范

    规范了自动载入类的机制

    完整的类型 根命名空间子命名空间类名

    类名

    • 完整的命名空间必须要有根命名空间
    • 完整的类名可以有多个字命名空间 如 VendorCakeNameClassName
    • 完整的类名最右边必须有一个类名
    • 完整的类名任意一部分中的下划线都没有特殊含义
    • 完整的类名可以由任意的大小写字母构成
    • 所有的类名必须是大小写敏感的

    载入机制

    • 完整的类名中,去掉最前面的命名空间分隔符,前面连续的一个或多个命名空间和子命名空间,作为「命名空间前缀」,其必须与至少一个「文件基目录」相对应
    • 紧接命名空间前缀后的子命名空间 必须 与相应的「文件基目录」相匹配,其中的命名空间分隔符将作为目录分隔符
    • 末尾的类名 必须 与对应的以 .php 为后缀的文件同名。
    • 自动加载器(autoloader)的实现 一定不可 抛出异常、一定不可 触发任一级别的错误信息以及 不应该 有返回值

    下表展示了符合规范完整类名、命名空间前缀和文件基目录所对应的文件路径。

    完整类名 命名空间前缀 文件基目录 文件路径
    AcmeLogWriterFile_Writer AcmeLogWriter ./acme-log-writer/lib/ ./acme-log-writer/lib/File_Writer.php
    AuraWebResponseStatus AuraWeb /path/to/aura-web/src/ /path/to/aura-web/src/Response/Status.php
    SymfonyCoreRequest SymfonyCore ./vendor/Symfony/Core/ ./vendor/Symfony/Core/Request.php
    endAcl Zend /usr/includes/Zend/ /usr/includes/Zend/Acl.php

    未完待续

  • 相关阅读:
    python3 driver chrome This version of ChromeDriver only supports Chrome version 89
    centos7 conda 安装 tensorflow
    python3 selenium Google浏览器 自动登录
    Fiddler Script
    深夜看了张一鸣的微博,让我越想越后怕(转载)
    OpenCV相关库
    .NET 面试题汇总(带答案)
    Java面试题
    定制化知识图谱 项目介绍
    关于《社会主义经济理论》若干问题的思考《九》
  • 原文地址:https://www.cnblogs.com/china-flint/p/11133776.html
Copyright © 2011-2022 走看看