利用ecshop缓存提高网站运行速率

首先去检查是否缓存is_cached。由两个参数确定。caching==1和direct_output==0
如果静态缓存文件不存在,那么直接is_cached为否。立刻给smarty赋值。
如果缓存文件存在,并且缓存里面的数据生成格式不对或者这个缓存文件已经过期。那么直接is_cached为否。立刻给smarty赋值。
如果缓存文件存在,数据生成格式也正确,缓存文件也没过期,可是这个dwt模板修改时间大于缓存文件的创建时间,也同上。
如果以上都没发生。直接读静态缓存template_out,在fetch函数里。
下面在分析smarty赋值的操作:
主要是display函数分析。
分两部分:首先去fetch处理模板文件。然后分析模板文件里面的hash字串包含的动态insert部分。这部分不缓存。
那么最重要的就是第一部分fetch处理模板文件这块。下面主要就讲讲这边的处理过程。
如果模板文件是以str:开头的话。是存在数据库里面的smarty标签(例如:订单号:{$order.order_sn})内容。为什么存到数据库里呢?
因为这些是没有样式的类似发邮件的模板。就没必要做个lbi文件或者dwt文件了。最主要的是这块不需要写成静态缓存形式。
如果模板文件不是以上面开头的话,如果direct_output为真。则直接输出出来,不写成静态缓存形式。也不进行编译成动态的php文件了。
接上,如果direct_output为假,编译这个模板文件。并且如果有缓存id的话,则把静态缓存写入服务器。
那么接下来最重要的就是编译文件这个函数了。make_compiled,下面我就来分析下这块原理啊。
原理也很简单。就是:
如果lbi的模板文件在过期时间外没有被修改过。并且强制编译为否。则直接读编译后的php文件。
如果强制编译为真,或者过期之间后修改过lbi文件。则重新编译这个lbi文件。
那么编译的时候用到了fetch_str这个函数。是解析函数的灵魂。这个函数就是用this->select函数替换所有的{}标签。
那么不得不说说this->select这个函数。这个函数就是处理所有的smarty的标签。
这里不得不说说insert这个标签。他被this->_echash包着。他是针对动态内容可以自己定义的函数标签。可以自己写个
动态内容函数库。专门针对不需要缓存的模块。
因此,文件架构需要动态内容函数库,共用函数库,类文件。这都是必须的。
 
我在实际做的过程中遇到的问题总结:
困扰了我2天的是头部输出一个空格。我一直以为是模板解析的问题呢。那个模板类看了几十遍。也没有问题啊。后来我从模板转移到php上。
原来是初始化时候,引入了一个外部文件导致的。真郁闷。
困扰了我将近一个小时的问题是:编译文件没有生成。以及缓存文件没有生成的问题。原来是文件夹的权限问题。把cache以及compiled文件夹属性设成777也不好使。后来我直接把这俩个都删了。重新建的。就好了。
模板解析过程:首先把dwt中的所有的BeginLibraryItem转换成include file这样的。然后转成fetch形式。这时候就是编译成功。生成编译文件。
那么,入口是什么呢?就是第一步是什么呢。第一步就是is_cached,分析静态缓存的头部的$para['template'],这里的任意一个修改,那么缓存就失效。而这个数组是编译时候写入的。
下面附上文件结构解析
<?php
/*
ECShop 2.5.1 的结构图及各文件相应功能介绍
   ECShop2.5.1_Beta upload 的目录
         ┣ activity.php 活动列表
         ┣ affiche.php 广告处理文件
         ┣ affiliate.php 生成商品列表
         ┣ article.php 文章内容
         ┣ article_cat.php文章分类
         ┣ auction.php 拍卖前台文件
         ┣ brand.php 品牌列表
         ┣ captcha.php 生成验证码
         ┣ catalog.php 列出所以分类及品牌
         ┣ category.php 商品分类
         ┣ comment.php 提交用户评论
         ┣ compare.php 商品比较程序
         ┣ cycle_image.php   轮播图片程序
         ┣ feed.php RSS Feed 生成程序
         ┣ flow.php 购物流程
         ┣ gallery.php 商品相册
         ┣ goods.php 商品详情
         ┣ goods_script.php 生成商品列表
         ┣ group_buy.php 团购商品前台文件
         ┣ index.php 首页文件
         ┣ myship.php 支付配送DEMO
         ┣ pick_out.php 选购中心
         ┣ receive.php 处理收回确认的页面
         ┣ region.php 地区切换程序
         ┣ respond.php 支付响应页面
         ┣ robots.txt
         ┣ search.php 搜索程序
         ┣ sitemaps.php   google sitemap 文件
         ┣ snatch.php 夺宝奇兵前台页面
         ┣ tag_cloud.php 标签云
         ┣ topic.php 专题前台
         ┣ user.php 会员中心
         ┣ vote.php 调查程序
         ┣ wholesale.php 批发前台文件
         ┣ admin文件夹
         ┃ ┣ account_log.php 管理中心帐户变动记录
         ┃ ┣ admin_logs.php 记录管理员操作日志
         ┃ ┣ ads.php 广告管理程序
         ┃ ┣ adsense.php 站外JS投放的统计程序
         ┃ ┣ ad_position.php广告位置管理程序
         ┃ ┣ affiliate.php 程序说明
         ┃ ┣ affiliate_ck.php 程序说明
         ┃ ┣ agency.php 管理中心办事处管理
         ┃ ┣ area_manage.php 地区列表管理文件
         ┃ ┣ article.php 管理中心文章处理程序文件
         ┃ ┣ articlecat.php 文章分类管理程序
         ┃ ┣ article_auto.php
         ┃ ┣ attention_list.php
         ┃ ┣ attribute.php 属性规格管理
         ┃ ┣ auction.php 管理中心拍卖活动管理
         ┃ ┣ bonus.php 红包类型的处理
         ┃ ┣ brand.php管理中心品牌管理
         ┃ ┣ captcha_manage.php
         ┃ ┣ card.php 贺卡管理程序
         ┃ ┣ category.php 商品分类管理程序
         ┃ ┣ check_file_priv.php 系统文件检测
         ┃ ┣ comment_manage.php 用户评论管理程序
         ┃ ┣ convert.php 转换程序
         ┃ ┣ cron.php 计划任务
         ┃ ┣ database.php 数据库管理
         ┃ ┣ ebao_commend.php 易宝推荐
         ┃ ┣ edit_languages.php 管理中心语言项编辑(前台语言项)
         ┃ ┣ email_list.php 邮件列表管理
         ┃ ┣ favourable.php 管理中心优惠活动管理
         ┃ ┣ flashplay.php
         ┃ ┣ flow_stats.php 综合流量统计
         ┃ ┣ friend_link.php 友情链接管理
         ┃ ┣ gen_goods_script.php 生成显示商品的js代码
         ┃ ┣ get_password.php 找回管理员密码
         ┃ ┣ goods.php 商品管理程序
         ┃ ┣ goods_auto.php
         ┃ ┣ goods_batch.php 商品批量上传、修改
         ┃ ┣ goods_booking.php 缺货处理管理程序
         ┃ ┣ goods_export.php
         ┃ ┣ goods_type.php 商品类型管理程序
         ┃ ┣ group_buy.php 管理中心团购商品管理
         ┃ ┣ guest_stats.php 客户统计
         ┃ ┣ index.php 控制台首页
         ┃ ┣ integrate.php 第三方程序会员数据整合插件管理程序
         ┃ ┣ magazine_list.php
         ┃ ┣ mail_template.php 管理中心模版管理程序
         ┃ ┣ message.php 管理中心管理员留言程序
         ┃ ┣ navigator.php

┃ ┣ order.php 订单管理
         ┃ ┣ order_stats.php 订单统计
         ┃ ┣ pack.php 包装管理程序
         ┃ ┣ payment.php 支付方式管理程序
         ┃ ┣ picture_batch.php 图片批量处理程序
         ┃ ┣ privilege.php 管理员信息以及权限管理程序
         ┃ ┣ sale_general.php 销售概况
         ┃ ┣ sale_list.php 销售明细列表程序
         ┃ ┣ sale_order.php 商品销售排行
         ┃ ┣ searchengine_stats.php 搜索引擎关键字统计
         ┃ ┣ search_log.php
         ┃ ┣ shipping.php 配送方式管理程序
         ┃ ┣ shipping_area.php 配送区域管理程序
         ┃ ┣ shophelp.php 帮助信息管理程序
         ┃ ┣ shopinfo.php 网店信息管理页面
         ┃ ┣ shop_config.php   管理中心商店设置
         ┃ ┣ sitemap.php 站点地图生成程序
         ┃ ┣ sms.php 短信模块 之 控制器
         ┃ ┣ snatch.php 夺宝奇兵管理程序
         ┃ ┣ sql.php sql管理程序
         ┃ ┣ tag_manage.php 后台标签管理
         ┃ ┣ template.php 管理中心模版管理程序
         ┃ ┣ topic.php 专题管理
         ┃ ┣ users.php 会员管理程序
         ┃ ┣ users_order.php 会员排行统计程序
         ┃ ┣ user_account.php 会员帐目管理(包括预付款,余额)
         ┃ ┣ user_msg.php 客户留言
         ┃ ┣ user_rank.php 会员等级管理程序
         ┃ ┣ view_sendlist.php
         ┃ ┣ virtual_card.php 虚拟卡商品管理程序
         ┃ ┣ visit_sold.php 访问购买比例
         ┃ ┣ vote.php 调查管理程序
         ┃ ┣ wholesale.php   管理中心批发管理
         ┃ ┣ help 的目录   后台操作帮助文件
         ┃ ┣ images 的目录
         ┃ ┣ includes 的目录
         ┃ ┃   ┣ cls_exchange.php 后台自动操作数据库的类文件
         ┃ ┃   ┣ cls_google_sitemap.php Google sitemap 类
         ┃ ┃   ┣ cls_phpzip.php ZIP 处理类
         ┃ ┃   ┣ cls_sql_dump.php 数据库导出类
         ┃ ┃   ┣ inc_menu.php 管理中心菜单数组
         ┃ ┃   ┣ init.php 管理中心公用文件
         ┃ ┃   ┣ lib_goods.php 管理中心商品相关函数
         ┃ ┃   ┣ lib_main.php 管理中心公用函数库
         ┃ ┃   ┗ lib_template.php 管理中心模版相关公用函数库
         ┃ ┣ styles 的目录
         ┃ ┣ templates 的目录
         ┃ ┗ js 的目录
         ┃    ┣ colorselector.js
         ┃    ┣ common.js
         ┃    ┣ listtable.js
         ┃    ┣ md5.js
         ┃    ┣ selectzone.js
         ┃    ┣ tab.js
         ┃    ┣ todolist.js
         ┃    ┣ topbar.js
         ┃    ┗ validator.js 表单验证类
         ┣ api 的目录
         ┃ ┣ checkorder.php 检查订单 API
         ┃ ┣ cron.php
         ┃ ┗ init.php API 公用初始化文件
         ┣ cert 的目录
         ┣ data 的目录
         ┃ ┣ ffiliate.html
         ┃ ┣ goods_script.html
         ┃ ┣ order_print.html
         ┃ ┣ afficheimg 的目录
         ┃ ┣ brandlogo 的目录
         ┃ ┣ captcha 的目录 验证码背景图片存放位置
         ┃ ┣ cardimg 的目录
         ┃ ┣ feedbackimg 的目录
         ┃ ┣ images 的目录
         ┃ ┣ packimg 的目录
         ┃ ┗ sqldata 的目录
         ┣ images 的目录
         ┃ ┗ upload 的目录
         ┃        ┣ File 文件上传存放处
         ┃        ┣ Flash flash上传存放处
         ┃        ┣ Image 图片上传存放处
         ┃        ┗ Media 视频上传存放处
         ┣ includes 的目录
         ┃ ┣ cls_captcha.php 验证码图片类
         ┃ ┣ cls_ecshop.php 基础类
         ┃ ┣ cls_error.php 用户级错误处理类
         ┃ ┣ cls_iconv.php 字符集转换类
         ┃ ┣ cls_image.php 后台对上传文件的处理类(实现图片上传,图片缩小, 增加水印)
         ┃ ┣ cls_json.php JSON 类
         ┃ ┣ cls_mysql.php MYSQL 公用类库
         ┃ ┣ cls_rss.php RSS 类
         ┃ ┣ cls_session.php SESSION 公用类库
         ┃ ┣ cls_sms.php 短信模块 之 模型(类库)
         ┃ ┣ cls_smtp.php SMTP 邮件类
         ┃ ┣ cls_sql_executor.php SQL语句执行类。
         ┃ ┣ cls_template.php 模版类
         ┃ ┣ cls_transport.php 服务器之间数据传输器
         ┃ ┣ inc_constant.php 常量
         ┃ ┣ init.php 前台公用文件
         ┃ ┣ lib.debug.php
         ┃ ┣ lib_article.php 文章及文章分类相关函数库
         ┃ ┣ lib_clips.php ECSHOP 用户相关函数库
         ┃ ┣ lib_code.php 加密解密类
         ┃ ┣ lib_common.php 公用函数库
         ┃ ┣ lib_goods.php 商品相关函数库
         ┃ ┣ lib_insert.php 动态内容函数库
         ┃ ┣ lib_main.php 前台公用函数库
         ┃ ┣ lib_order.php 购物流程函数库
         ┃ ┣ lib_passport.php 用户帐号相关函数库
         ┃ ┣ lib_payment.php 支付接口函数库
         ┃ ┣ lib_time.php 时间函数
         ┃ ┣ lib_transaction.php ECSHOP 用户交易相关函数库
         ┃ ┣ codetable 的目录
         ┃ ┃ ┣ big5-gb.table
         ┃ ┃ ┣ big5_utf8.php
         ┃ ┃ ┣ gb-big5.table
         ┃ ┃ ┣ gb_utf8.php
         ┃ ┃ ┗ ipdata.dat
         ┃ ┣ fckeditor 的目录 fckeditor编辑器目录
         ┃ ┗ modules 的目录
         ┃       ┣ convert 的目录
         ┃       ┃ ┣ shopex46.php vshopex4.6转换程序插件
         ┃       ┃ ┗ shopex47.php shopex4.7转换程序插件
         ┃       ┣ cron 的目录
         ┃       ┃ ┣ auto_manage.php 自动上下架管理
         ┃       ┃ ┗ ipdel.php 定期删除
         ┃       ┣ integrates 的目录
         ┃       ┃ ┣ bmforum.php 会员数据处理类
         ┃       ┃ ┣ discuz.php
         ┃       ┃ ┣ discuz55.php
         ┃       ┃ ┣ dvbbs.php
         ┃       ┃ ┣ ecshop.php
         ┃       ┃ ┣ integrate.php
         ┃       ┃ ┣ ipb.php
         ┃       ┃ ┣ molyx.php
         ┃       ┃ ┣ phpbb.php
         ┃       ┃ ┣ phpwind.php
         ┃       ┃ ┣ phpwind5.php
         ┃       ┃ ┗ vbb.php
         ┃       ┣ payment 的目录
         ┃       ┃ ┣ alipay.php 支付宝插件
         ┃       ┃ ┣ balance.php 余额支付插件
         ┃       ┃ ┣ bank.php 银行汇款(转帐)插件
         ┃       ┃ ┣ cappay.php 首信易支付插件
         ┃       ┃ ┣ chinabank.php 网银在线插件
         ┃       ┃ ┣ cncard.php 云网支付插件
         ┃       ┃ ┣ cod.php 货到付款插件
         ┃       ┃ ┣ ctopay.php Ctopay 支付插件
         ┃       ┃ ┣ express.php express支付系统插件
         ┃       ┃ ┣ ips.php ips支付系统插件
         ┃       ┃ ┣ kuaiqian.php 快钱插件
         ┃       ┃ ┣ nps.php NPS支付插件
         ┃       ┃ ┣ pay800.php 800pay 支付宝插件
         ┃       ┃ ┣ paypal.php 贝宝插件
         ┃       ┃ ┣ paypalcn.php 贝宝中国插件
         ┃       ┃ ┣ post.php 邮局汇款插件
         ┃       ┃ ┣ tenpay.php 财付通插件
         ┃       ┃ ┣ udpay.php 网汇通插件
         ┃       ┃ ┣ xpay.php 易付通插件
         ┃       ┃ ┗ yeepay.php YeePay易宝插件
         ┃       ┗ shipping 的目录
         ┃             ┣ cac.php 上门取货插件
         ┃             ┣ city_express.php 城际快递插件
         ┃             ┣ ems.php EMS插件
         ┃             ┣ flat.php 邮政包裹插件
         ┃             ┣ fpd.php 到付运费插件
         ┃             ┣ post_express.php 邮政包裹插件
         ┃             ┣ post_mail.php 邮局平邮插件
         ┃             ┣ presswork.php 挂号印刷品插件
         ┃             ┣ sf_express.php 顺丰速运 配送方式插件
         ┃             ┣ sto_express.php 申通快递 配送方式插件
         ┃             ┣ yto.php 圆通速递插件
         ┃             ┗ zto.php 中通速递插件
         ┣ install 的目录   安装文件目录
         ┣ js 的目录
         ┃ ┣ auto_complete.js
         ┃ ┣ calendar.php
         ┃ ┣ common.js
         ┃ ┣ compare.js
         ┃ ┣ global.js
         ┃ ┣ lefttime.js
         ┃ ┣ myship.js
         ┃ ┣ region.js
         ┃ ┣ shopping_flow.js
         ┃ ┣ transport.js
         ┃ ┣ user.js
         ┃ ┣ utils.js
         ┃ ┗ calendar 的目录
         ┣ languages 的目录   语言风格文件
         ┃ ┣ zh_cn 的目录
         ┃ ┃ ┣
         ┃ ┃ ┣ admin 的目录
         ┃ ┃ ┣ convert 的目录
         ┃ ┃ ┣ cron 的目录
         ┃ ┃ ┣ payment 的目录
         ┃ ┃ ┗ shipping 的目录
         ┃ ┗ zh_tw 的目录
         ┃        ┣ admin 的目录
         ┃        ┣ convert 的目录
         ┃        ┣ cron 的目录
         ┃        ┣ payment 的目录
         ┃        ┗ shipping 的目录
         ┣ plugins 的目录
         ┣ templates 的目录
         ┃ ┣ backup 的目录
         ┃ ┃ ┗ ibrary 的目录
         ┃ ┣ caches 的目录
         ┃ ┗ compiled 的目录
         ┃        ┗ admin 的目录

┣ themes 的目录
         ┃ ┣ default 的目录
         ┃ ┃ ┣ images 的目录
         ┃ ┃ ┗ library 的目录
         ┃ ┗ sport 的目录
         ┣ wap 的目录
         ┃ ┣ article.php
         ┃ ┣ brands.php
         ┃ ┣ buy.php
         ┃ ┣ category.php
         ┃ ┣ comment.php
         ┃ ┣ goods.php
         ┃ ┣ goods_list.php
         ┃ ┣ index.php
         ┃ ┣ user.php
         ┃ ┣ includes 的目录
         ┃ ┃ ┣ init.php
         ┃ ┃ ┣ lib_main.php
         ┃ ┗ templates 的目录
         ┃        ┣ article.wml
         ┃        ┣ article_list.wml
         ┃        ┣ brands.wml
         ┃        ┣ buy.wml
         ┃        ┣ category.wml
         ┃        ┣ comment.wml
         ┃        ┣ goods.wml
         ┃        ┣ goods_img.wml
         ┃        ┣ goods_list.wml
         ┃        ┣ index.wml
         ┃        ┣ login.wml
         ┃        ┣ order_list.wml
         ┃        ┗ user.wml
         ┗ widget 的目录
               ┣ blog_sohu.php
               ┣ blog_sohu.xhtml
               ┗ images 的目录

你可能感兴趣的:(数据库,display,insert,ecshop,订单号)