课程名称 :大话PHP设计模式
课程章节:命名空间与Autoload
讲师:Rango
课程内容:
定义命名空间:命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误。
命名空间:
1.必须在文件的开始处,使用。
2.使用命名空间可以在不同的命名空间下,存在相同名字的函数。
3.使用方式:定义命名空间: namespace name;
SPL函数 (standard php librarys)
spl_autoload_register([callback functionname])
可以实现我们自定义函数的激活,这样就不用去调用系统的__autoload自动加载方法了。
它的返回值是bool类型。 true or false
如果不写参数,那么它会去调用 spl_autoload()方法,这个方法默认会执行下面的语句
require_once 类名.php 或 类名.inc
类自动载入,抛弃__autoload()方法,使用spl_autoload_register('函数名')
1,PSR-0规范:
①命名空间必须与绝对路径一致。 文件里写命名空间从根目录下它所在文件夹开始到它的上一层文件夹名
②类名首字母必须大写
③除入口文件外,其它的".php"文件中只能存在一个类,不能有外部可执行的代码。
2,魔术常量
__FILE__ 文件的完整路径和文件名,如果用在被包含的文件中,则返回被包含文件路径名。
__DIR__ 文件的所在目录,不包括文件名。 等价于dirname(__FILE__) 除了根目录,不包括末尾的反斜杠
basename(__FILE__)返回的是文件名。
__FUNCTION__返回的是函数名称
__METHOD__返回的是类的方法名
__CLASS__返回的是类的名称
__NAMESPACE__ 返回的是当前命名空间的名称
DIRECTORY_SEPARATOR 路径分隔符
PATH_SEPARATOR 目录分隔符号
PHP_EOL 换行符号
3,我们可以在路口文件中,使用spl_autoload_register()来完成类的自动加载。
课程收获:
掌握了php的命名空间和类的自动加载,平时框架用习惯了,只是知道按照框架的规定去怎么命名和加载类,学习以后了解了PSR-0的规范,以后命名规范一些可以提高我们代码的可读性。