从2014-10-21日起,psr-0标准被标记为废弃。推荐使用psr-4标准作为替换。
加载器(autoloader)必须遵循以下所下要求。
要求:
<vendor name>(<namespace>)*<class name></class></namespace></vendor>
_(下划线)将被转化为文件分隔符。命名空间中的_ 没有特殊含义.php作为后缀名开发商名、命名空间和类可以由大小写字母构成(区分大小写)
示例
DoctrineCommonIsolatedClassLoader=>/path/to/project/lib/vendor/Doctrine/Common/IsolatedClassLoader.php
SymfonyCoreRequest=>/path/to/project/lib/vendor/Symfony/Core/Request.phpZendAcl=>/path/to/project/lib/vendor/Zend/Acl.phpZendMailMessage=>/path/to/project/lib/vendor/Zend/Mail/Message.php命名空间和类中的下划线
amespacepackageClass_Name=>/path/to/project/lib/vendor/namespace/package/Class/Name.php
amespacepackage_nameClass_Name=>/path/to/project/lib/vendor/namespace/package_name/Class/Name.php
这些应当是实现一个自动加载器的最低标准。你可以通过这个可以加载PHP 5.3类的自动加载器来实践下这些标准。
代码实现
<code><span><?php</span><span><span>function</span><span>autoload</span><span>(<span>$className</span>)</span>
{</span><span>$className</span> = ltrim(<span>$className</span>,<span>'\'</span>);<span>//去除命名空间前面的反斜杠</span><span>$fileName</span> = <span>''</span>;
<span>$namespace</span> = <span>''</span>;
<span>if</span>(<span>$lastNsPos</span> = strrpos(<span>$className</span>,<span>'\'</span>)) {<span>//类名前反斜杠的位置</span><span>$namespace</span> = substr(<span>$className</span>,<span>0</span>,<span>$lastNsPos</span>);<span>//命名空间</span><span>$className</span> = substr(<span>$className</span>,<span>$lastNsPos</span> + <span>1</span>);<span>//类名</span><span>$fileName</span> = str_replace(<span>'\'</span>,DIRECTORY_SEPARATOR,<span>$namespace</span>). DIRECTORY_SEPARATOR;<span>//文件名</span>
}
<span>$fileName</span> .= str_replace(<span>'_'</span>,DIRECTORY_SEPARATOR,<span>$className</span>). <span>'.php'</span>;<span>//标准中的要以.php作为后缀,类名的下划线需要转化为文件分隔符</span><span>require</span><span>$fileName</span>;
}
spl_autoload_register(<span>'autoload'</span>);</code>SplClassLoader 实现
下面是一个简单的SplClassLoader 实现,如果你遵循以上标准,你可以通过它来加载类。推荐使用PSR-0标准来加载 PHP 5.3的类
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });原文 阅读PSR-0
以上就介绍了PSR-0 自动加载标准,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号