ecstore与淘宝sdk的autoload加载顺序问题
2024-09-25 01:23:38
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的类,不过这样会导致一些性能上的小损失。
最新文章
- post&;get请求总结
- C#获得和发送网站Session
- POJ 3786 Adjacent Bit Counts (DP)
- Java 对象属性的遍历
- 组件接口(API)设计指南-文件夹
- 《JavaScript设计模式与开发实践》读书笔记之享元模式
- angularjs图片上传后不刷新的解决办法
- android studio没有浮现函数用法和属性说明?
- 你不知道的javaScript上卷(第一章 作用域是什么)
- 简单的C语言编译器--概述
- C#程序自动更新软件版本号
- selenium操作浏览器窗口最大化和刷新
- 详述 hosts 文件的作用及修改 hosts 文件的方法
- nginx学习笔记(三)
- webService的介绍与简单使用
- eclipse各版本及下载
- 17秋 SDN课程 第四次上机作业
- POJ_2533_Longest Ordered Subsequence
- LeetCode 561. Array Partition I (C++)
- Hadoop之HDFS(三)HDFS的JAVA API操作