ecstore与淘宝sdk的autoload加载顺序问题
2016-07-18 15:17
302 查看
ecstore使用spl_autoload_register实现类的自动加载,这个很大的方便我们不用每次都要手动的去include一些类和函数。不过这样会导致一些问题,比如说,有一些extension,如,使用taobao sdk,它自己内部也使用了spl_autoload_register来实现自动加载类,由于在框架的执行顺序里面,首先是执行了spl_autoload_register(array('kernel','autoload')),这样会导致smarty里面的spl_autoload_register不会执行,这样就会出现使用taobao过程中,找不到它里面的类。这种情况解决方法有两种,
1. 先卸载ecstore的,再注册ecstore的autoload,如以下代码,修改taobao的SDK的 Autoloader.php文件spl_autoload_unregister(array('kernel','autoload')); spl_autoload_register('Autoloader::autoload');
不过这种方法是要修改taobao的代码的,这样不利于taobao的升级,这时候,可以考虑使用第二种情况。
2. 优先注册了自己的autoload,如以下代码,是加在index.php里面的。
require_once(dirname(__FILE__).'/taobaosk/TopSdk.php');
这样的话,所有的autoload都会优先使用taobao的autoloader,可以避免找不到taobao的类,不过这样会导致一些性能上的小损失。
相关文章推荐
- 贷款回收公司的剥除行动
- Oracle正则表达式
- 超级丑数(Super Ugly Number)
- compareHist(hist1, hist2, HISTCMP_INTERSECT)
- EditText初始焦点(focus)如何消除(TextInputLayout使用要点之一)
- rxjava 操作符 just,from,scan,map
- HDU 5718 BestCoder 2nd Anniversary Oracle (模拟)
- C语言随机数函数
- 链接器工具错误 LNK2026 SAFESEH 映像是不安全
- Codeforces div2 #317C Lengthening Sticks(组合数学+ 容斥原理)
- 大数运算
- 机敏问答
- SpringMVC 中的Interceptor拦截器
- 仿IOS时间选择,五级联动,可以根据自己爱好进行修改(公司需要这样的,效果好)
- oracle分析函数
- 关于fl2440开发板Linux内核添加USB驱动的问题
- 【.Net码农】c#打印机设置,取得打印机列表及相应打印机的所有纸张格式
- Zookeeper学习概览
- Same Tree
- 类似酷狗锁屏时页面显示在解锁页面之上的实现方法