namespace 主要作用,防止类名相同导致的加载问题。
__autoload() 魔术方法:
可以实现 “延迟加载”或者“用时加载”,即只有需要这个类时,才会加载进内存中,避免资源浪费。
当php引擎第一次使用类A,但是找不到时,会自动调用__autoload方法,并将类名“A”作 为参数传入。所以,我们需要的做的就是根据类名,找到对应的文件,并包含进来,如果我们的方法也找不到,那么php引擎就会报错。注意,这里可以只用 require,因为一旦包含进来后,php引擎再遇到类A时,将不会调用__autoload,而是直接使用内存中的类A,不会导致多次包含。
所以,使用__autoload的关键在于,如何根据类名,找到对应类定义的文件。
Yii框架下 设置默认自动加载函数
spl_autoload_register 注册myautoload函数为 __autoload()函数。
spl_autoload_register(array(‘YiiBase‘,‘myautoload‘));
相关链接:
http://www.cnblogs.com/yjf512/archive/2013/05/14/3077285.html //讲namespace
http://www.cnblogs.com/bourneli/archive/2012/09/08/2676965.html //good 讲autoload
http://blog.csdn.net/zhaozhi406/article/details/9325581 //Yii中autoload机制
http://www.eeice.com/archive/design/spl_autoload_register.html //Yii中autoload机制