自动加载标准
地址: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 就不行!