高新技术企业编号:GR201534000866 | 软件企业编号:皖R-2014-0096

购买咨询

EcShop二次开发教程

 
2020-04-17所属分类: 行业动态

互联网3年一轮回,京东凡客等电商品牌在三年之前也不过是小打小闹,而如今却成为电商的风向标。可以看出互联网的变化是巨大的,B2B,C2C,B2C的电子商务模式也不断的成熟。这时催生出了众多电子商务相关的PHP开源产品。B2C方面有Ecshop,pigcms等国内外知名产品。

EcShop二次开发教程

ECShop是一款B2C独立网店系统,适合企业及个人快速构建个性化网上商店,ECShop系统是基于PHP语言及MYSQL数据库构架开发的跨平台开源程序。下面我们就来简单介绍一下学习Ecshop二次开发教程和要注意的一些东西:

Ecshop二次开发必备基础

· 非常熟悉HTML

· 熟悉DIV+CSS的布局

· 扎实的PHP基础,熟悉结构化编程,了解OOP,并能看懂和使用

· 熟悉Smarty模板引擎

· 熟悉MYSQL,掌握SQL语言

Ecshop二次开发学习过程

· 熟悉电子商务基本概念

· 熟悉EcShop 的基本功能使用(商品类型,商品分类,商品属性设置,促销活动使用等)

· 掌握Ecshop的数据库结构和数据库设计思想

· 熟悉ER的模式,实体与关系的建立

熟悉每个表的作用,了解几个核心表的设计及字段的含义,方便拿到新的需求之后,能快速的判断是否加字

段,还是新建表来处理。同时也能理解Ecshop的数据库设计思想,把有用的设计思路加到自己的系统中

· 文件结构分析及代码分析

熟悉一些登陆,注册,文档管理,权限控制,分类管理,商品类型等一些常用流程控制。对几个核心文件进

行解剖,了解其编程技巧及安全机制

· Ecshop文件结构分析:

\includes\cls_captcha.php: 验证码图片类

\includes\cls_ecshop.php: 基础类

\includes\cls_ecshop.php(56): 密码编译方法;

\includes\cls_rss.php: RSS 类

\includes\cls_smtp.php: SMTP 邮件类

\includes\inc_constant.php: 常量

\includes\init.php: 前台公用文件

\includes\lib_common.php: 公用函数库

\includes\lib_goodscat.php: 前台公用函数库

\includes\lib_insert.php: 动态内容函数库

\includes\lib_main.php: 前台公用函数库

\includes\lib_payment.php: 支付接口函数库

\includes\iconv\cls_iconv.php: 字符集转换类

\includes\ip\cls_ip.php: IP 归属地查询类

\includes\modules\integrates\discuz.php: 会员数据处理类

\includes\modules\integrates\ecshop.php: 会员数据处理类

Ecshop模板更换

熟悉Smarty的精简版的使用,嵌入自己的界面,EcShop模板的跟换技巧

Ecshop二次开发实例

中英文切换的功能,秒杀功能,京东商城模板的制作等

学习目的:

1,会使用Ecshop进行二次开发

2,会换普通的模板及一些功能的修改

3,吸取里面的开发经验

掌握基础知识-》模仿里面的一些写法-》修改里面的模式(形成自己的开发模式)

掌握Ecshop里面的编程技巧及系统设计技巧

◆缓存技术分析

常见的PHP缓存技术分析[概念版]

在大部份情况下我们的网站都会使用数据库作为站点数据存储的容器。当你执行一个SQL查询时,典型的处

理过程是:连接数据库->准备SQL查询->发送查询到数据库->取得数据库返回结果->关闭数据库连接。但数据库

中有些数据是完全静态的或不太经常变动的,缓存系统会通过把SQL查询的结果缓存到一个更快的存储系统中存

储,从而避免频繁操作数据库而很大程度上提高了程序执行时间,而且缓存查询结果也允许你后期处理。

普遍使用的缓存技术

数据缓存:这里所说的数据缓存是指数据库查询缓存,每次访问页面的时候,都会先检测相应的缓存数据是

否存在,如果不存在,就连接数据库,得到数据,并把查询结果序列化后保存到文件

中,以后同样的查询结果就直接从缓存文件中获得。

页面缓存:

每次访问页面的时候,都会先检测相应的缓存页面文件是否存在,如果不存在,就连接数据库,得到数据,

显示页面并同时生成缓存页面文件,这样下次访问的时候页面文件就发挥作用了。(模板引擎和网上常见的一些

缓存类通常有此功能)

内存缓存:

在里就不介绍了,不是本文所要讨论的,只简单提一下:

Memcached是高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。

dbcached 是一款基于 Memcached 和 NMDB 的分布式 key-value 数据库内存缓存系统。

以上的缓存技术虽然能很好的解决频繁查询数据库的问题,但其缺点在在于数据无时效性,下面我给出我在

项目中常用的方法:

时间触发缓存:

检查文件是否存在并且时间戳小于设置的过期时间,如果文件修改的时间戳比当前时间戳减去过期时间戳

大,那么就用缓存,否则更新缓存。

设定时间内不去判断数据是否要更新,过了设定时间再更新缓存。以上只适合对时效性要求不高的情况下使

用 ,否则请看下面。

内容触发缓存:

当插入数据或更新数据时,强制更新缓存。

在这里我们可以看到,当有大量数据频繁需要更新时,最后都要涉及磁盘读写操作。怎么解决呢?我在日常

项目中,通常并不缓存所有内容,而是缓存一部分不经常变的内容来解决。但在大负荷的情况下,最好要用共享

内存做缓存系统。

到这里PHP缓存也许有点解决方案了,但其缺点是,因为每次请求仍然要经过PHP解析,在大负荷的情况下效

率问题还是比效严重,在这种情况下,也许会用到静态缓存。

静态缓存

这里所说的静态缓存是指HTML缓存,HTML缓存一般是无需判断数据是否要更新的,因为通常在使用HTML的场

合一般是不经常变动内容的页面。数据更新的时候把HTML也强制更新一下就可以了。

其实一个缓存系统涉及的问题是比较多的,我在这里只介绍一下我平时的缓存思路,并没有介绍利用软件来

实现缓存和写出具体代码。

如果您有什么好的解决方案也请在下面提出,让我们一起互相探讨。

copyright@合肥彼岸互联信息技术有限公司

电话:400-893-5552 0551-65371998

地址:合肥市高新区亚夏汽车城12楼