php __autoload 在有命名空间的时候失效(使用的局限性)
2016-10-21 10:04
375 查看
如果要使用__autoload方法,则不能再之前使用namespace,
使用命名空间,则至少php5.3不再调用__autoload方法
因此如果需要使用__autoload和命名空间,那么至少在整合的程序中不能使用命名空间
也就是说namespace与__autoload功能在一个文件中两者只能用其一
也就是说,如果使用了命名空间,那么在自动加载类的文件创建和访问对象只能使用命名全称进行访问
实际上的操作应该在此函数中调用类加载处理对象的获取加载列表获取函数,返回加载列表,然后逐一对加载项进行加载
这样处理,则可以在此定义加载路径的初始位置,加载会更方便,但是首先要静态加载 加载处理对象的类文件(对象可以在其文件中采用类静态属性表示)。
因为可以定义初始地址,也可以根据规则,指定加载文件的地址变化规则进行演变
自动加载不能处理AOP编程,因此APP对象需要能动态根据参数定义自动加载处理类对象,并生成各切面对象,并注册到调用队列中去
切面编程实际上就是事件关联编程,在合适的时机调用合适的处理过程。
可以用
使用命名空间,则至少php5.3不再调用__autoload方法
因此如果需要使用__autoload和命名空间,那么至少在整合的程序中不能使用命名空间
也就是说namespace与__autoload功能在一个文件中两者只能用其一
也就是说,如果使用了命名空间,那么在自动加载类的文件创建和访问对象只能使用命名全称进行访问
实际上的操作应该在此函数中调用类加载处理对象的获取加载列表获取函数,返回加载列表,然后逐一对加载项进行加载
这样处理,则可以在此定义加载路径的初始位置,加载会更方便,但是首先要静态加载 加载处理对象的类文件(对象可以在其文件中采用类静态属性表示)。
因为可以定义初始地址,也可以根据规则,指定加载文件的地址变化规则进行演变
自动加载不能处理AOP编程,因此APP对象需要能动态根据参数定义自动加载处理类对象,并生成各切面对象,并注册到调用队列中去
切面编程实际上就是事件关联编程,在合适的时机调用合适的处理过程。
可以用
spl_autoload_register代替
相关文章推荐
- php命名空间及和autoload结合使用问题。
- php5.3命名空间内使用 php内置类的时候
- PHP使用Memcache时模拟命名空间及缓存失效问题的解决
- PHP使用Memcache时模拟命名空间及缓存失效问题的解决
- PHP 命名空间的介绍和使用
- PHP程序中命名空间的使用
- PHP命名空间(Namespace)的使用详解
- PHP命名空间(Namespace)的使用详解(转)
- PHP命名空间(namespace)的使用详解
- PHPExcel导入导出 若在thinkPHP3.2中使用(无论实例还是静态调用(如new classname或classname::function)都必须加反斜杠,因3.2就命名空间,如/classname
- php命名空间与自动加载函数一起使用
- PHP命名空间(Namespace)的使用详解
- PHP命名空间(Namespace)的使用详解
- PHP命名空间的使用详解 namespace
- PHP5.3中的命名空间(namespace)及其使用详解
- PHP命名空间namespace使用小结
- Spring 使用其他命名空间的时候要注意的事项
- PHP命名空间使用反斜杠\表示
- PHP命名空间(Namespace)的使用详解
- PHP命名空间(Namespace)的使用详解