ecmall核心文件ecmall.php分析.doc
《ecmall核心文件ecmall.php分析.doc》由会员分享,可在线阅读,更多相关《ecmall核心文件ecmall.php分析.doc(89页珍藏版)》请在咨信网上搜索。
1、php?php/* ECMall框架核心文件,包含最基础的类与函数* Streamlining comes from Sparrow PHP Garbin* author Garbin*/*-以下是系统常量-*/* 记录程序启动时间 */define(START_TIME, ecm_microtime();/* 判断请求方式 */define(IS_POST, (strtoupper($_SERVERREQUEST_METHOD) = POST);/* 判断请求方式 */define(IN_ECM, true);/* 定义PHP_SELF常量 */define(PHP_SELF, htmlen
2、tities(isset($_SERVERPHP_SELF) ? $_SERVERPHP_SELF : $_SERVERSCRIPT_NAME);/* 当前ECMall程序版本 */define(VERSION, 2.0 final);/* 当前ECMall程序Release */define(RELEASE, 20090821);/*-以下是PHP在不同版本,不同服务器上的兼容处理-*/* 在部分IIS上会没有REQUEST_URI变量 */$query_string = isset($_SERVERargv0) ? $_SERVERargv0 : $_SERVERQUERY_STRING;
3、if (!isset($_SERVERREQUEST_URI) $_SERVERREQUEST_URI = PHP_SELF . ? . $query_string;else if (strpos($_SERVERREQUEST_URI, ?) = false & $query_string) $_SERVERREQUEST_URI .= ? . $query_string; function view($mess) if(is_array($mess)=true) $mess = highlight_string( default, /默认执行文件, default_act = index,
4、 /默认执行方法 app_root = ROOT_PATH . /app, /默认执行文件的路径 external_libs = array( /通用引入文件 ROOT_PATH . /includes/global.lib.php, ROOT_PATH . /includes/libraries/time.lib.php, ROOT_PATH . /includes/ecapp.base.php, ROOT_PATH . /includes/plugin.base.php, ROOT_PATH . /app/frontend.base.php, ROOT_PATH . /includes/s
5、ubdomain.inc.php, ), ); */ /* 加载初始化文件 */ require(ROOT_PATH . /eccore/controller/app.base.php); /基础控制器类 require(ROOT_PATH . /eccore/model/model.base.php); /模型基础类 /每次都有一堆的文件引入. if (!empty($configexternal_libs) foreach ($configexternal_libs as $lib) require($lib); /* 数据过滤 */ if (!get_magic_quotes_gpc()
6、 $_GET = addslashes_deep($_GET); $_POST = addslashes_deep($_POST); $_COOKIE= addslashes_deep($_COOKIE); /* 请求转发 作用不大, 可直接写死*/ $default_app = $configdefault_app ? $configdefault_app : default; $default_act = $configdefault_act ? $configdefault_act : index; / 处理GET,抓取app及act参数. / http:/127.0.0.1/ecmal
7、l/index.php?app=message&act=inbox 很容易看得出来. $app = isset($_REQUESTapp) ? trim($_REQUESTapp) : $default_app; $act = isset($_REQUESTact) ? trim($_REQUESTact) : $default_act; /根据app参数来引入相应的文件. $configapp_root变量是路径. $app_file = $configapp_root . /$app.app.php; /文件判断 if (!is_file($app_file) exit(Missing c
8、ontroller); / 引入文件. require($app_file); /定义两个常量, 估计日后常用. define(APP, $app); define(ACT, $act); / ucfirst,假设第一个字为小写,即转大写. / 也是组合成相应的类名, class MessageApp extends MemberbaseApp 可以看得出来. $app_class_name = ucfirst($app) . App; /* 实例化控制器 */ $app = new $app_class_name(); / c()函数即将当前的实例引用给$GLOBALSECMALL_APP
9、c($app); /执行$act方法 $app-do_action($act); /转发至对应的Action /空白方法,未添加功能. $app-destruct(); /* 所有类的基础类* author Garbin* usage none*/class Object var $_errors = array(); var $_errnum = 0; function _construct() $this-Object(); function Object() #TODO /* * 触发错误 * * author Garbin * param string $errmsg * return
10、 void */ function _error($msg, $obj = ) if(is_array($msg) $this-_errors = array_merge($this-_errors, $msg); $this-_errnum += count($msg); else $this-_errors = compact(msg, obj); $this-_errnum+; /* * 检查是否存在错误 * * author Garbin * return int */ function has_error() return $this-_errnum; /* * 获取错误列表 * *
11、 author Garbin * return array */ function get_error() return $this-_errors; /* 语言项管理* author Garbin* param none* return void*/class Lang /* * 获取指定键的语言项 * * author Garbin * param none * return mixed */ function &get($key = ) $vkey = $key ? strtokey($key, $GLOBALS_ECLANG_) : $GLOBALS_ECLANG_; $tmp = e
12、val(if(isset( . $vkey . )return . $vkey . ;else return $key; ); return $tmp; /* * 加载指定的语言项至全局语言数据中 * * author Garbin * param none * return void */ function load($lang_file) static $loaded = array(); $old_lang = $new_lang = array(); $file_md5 = md5($lang_file); if (!isset($loaded$file_md5) $new_lang
13、= Lang:fetch($lang_file); $loaded$file_md5 = $lang_file; else return; $old_lang =& $GLOBALS_ECLANG_; if (is_array($old_lang) $new_lang = array_merge($old_lang, $new_lang); $GLOBALS_ECLANG_ = $new_lang; /* * 获取一个语言文件的内容 * * author Garbin * param string $lang_file * return array */ function fetch($lan
14、g_file) return include($lang_file); function lang_file($file) return ROOT_PATH . /languages/ . LANG . / . $file . .lang.php;/* 配置管理器* author Garbin* usage none*/class Conf /* * 加载配置项 * * author Garbin * param mixed $conf * return bool */ function load($conf) $old_conf = isset($GLOBALSECMALL_CONFIG)
15、? $GLOBALSECMALL_CONFIG : array(); if (is_string($conf) $conf = include($conf); if (is_array($old_conf) $GLOBALSECMALL_CONFIG = array_merge($old_conf, $conf); else $GLOBALSECMALL_CONFIG = $conf; /* * 获取配置项 * * author Garbin * param string $k * return mixed */ function get($key = ) $vkey = $key ? str
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ecmall 核心 文件 php 分析
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。