自动加载标准

地址:https://www.php-fig.org/psr/psr-0/

PSR-0

在2014年10月21日PSR-0已被标记为过时。PSR-4现在推荐作为替代(不推荐使用)。

一个完全合格的namespace和class必须符合这样的结构:“\< Vendor Name>(< Namespace>)*< Class Name>”

文件路径:/path/to/project/lib/vendor/Doctrine/Common/IsolatedClassLoader.php
命名空间:namespace \Doctrine\Common
调用:\Doctrine\Common\IsolatedClassLoader

每个namespace必须有一个顶层的namespace("Vendor Name"提供者名字)

每个namespace可以有多个子namespace

当从文件系统中加载时,每个namespace的分隔符(/)要转换成 DIRECTORY_SEPARATOR(操作系统路径分隔符)

命名空间是 \Doctrine\Common\IsolatedClassLoader
但实际路径是 Doctrine/Common/IsolatedClassLoader.php
分隔符是反过来的

在类名中,每个下划线(_)符号要转换成DIRECTORY_SEPARATOR(操作系统路径分隔符)。在namespace中,下划线(_)符号是没有(特殊)意义的。

\namespace\package\Class_Name => /path/to/project/lib/vendor/namespace/package/Class/Name.php

当从文件系统中载入时,合格的namespace和class一定是以 .php 结尾的

还有个.php3的扩展。具体是啥有兴趣的可以查下

verdor name,namespaces,class名可以由大小写字母组合而成(大小写敏感的)

可以用驼峰,但是要区分大小写。windows 下面可能能用,但LINUX 就不行!