ECSHOP编码命名规范
商品编码编制规则
![商品编码编制规则](https://img.taocdn.com/s3/m/bce06d2383c4bb4cf7ecd15a.png)
零售贸易项目俗称零售商品,主要是指在零售终端通过POS扫描结算的商品。
一听啤酒、一瓶洗发水和一瓶护发素的组合包装都可以视为零售商品。
步骤一:为不同的商品项目编制不同的商品标识代码——零售商品的标识代码结构在我国,零售商品的标识代码主要采用GTIN的三种数据结构,即EAN/UCC-13、EAN/UCC-8和UCC-12。
通常情况下,选用13位的数字代码结构用EAN-13条码表示。
只有当产品出口到北美地区并且客户指定时,才申请使用UCC-12代码(用UPC条码表示)。
中国厂商如需申请UPC商品条码,须经中国物品编码中心统一办理。
EAN/UCC-13和EAN/UCC-8的结构分别如图1、图2、图3所示。
1)EAN/UCC-13的数据结构(1)当前缀码为690、691时,EAN/UCC-13的代码结构如图1所示。
(2)当前缀码为692、693时,EAN/UCC-13的代码结构如图2所示。
A、厂商识别代码厂商识别代码是由中国物品编码中心统一向申请厂商分配。
厂商识别代码左起三位由国际物品编码协会分配给中国物品编码中心的前缀码。
B、商品项目代码商品项目代码由厂商根据有关规定自行分配。
C、校验位用来校验其他代码编码的正误。
它有固定的计算方法,参见GB 12904附录。
2)EAN/UCC-8的代码结构如图3所示。
A、商品项目识别代码是EAN编码组织在EAN分配的前缀码(X8X7X6)的基础上分配给厂商特定商品项目的代码。
为了保证代码的惟一性,商品项目识别代码须由中国物品编码中心统一分配。
B、校验位用来校验其他代码编码的正误。
它有固定的计算方法,参见GB 12904附录。
——零售商品标识代码的编码原则在编制贸易项目的商品标识代码时,应遵守以下基本原则:(1)惟一性惟一性原则是商品编码的基本原则。
是指同一商品项目应分配相同的标识代码,不同的商品项目必须分配不同的标识代码。
不同商品名称、商标、种类、规格、数量、包装类型的商品应视为不同的商品项目,必须编制不同的标识代码,以保证编码的惟一性。
代码规范及编码原则
![代码规范及编码原则](https://img.taocdn.com/s3/m/7ba4d7b4f71fb7360b4c2e3f5727a5e9856a27f4.png)
代码规范及编码原则代码规范和编码原则是为了提高代码的可读性、可维护性和可扩展性而制定的一系列规则和准则。
它们是在软件开发中非常重要的一部分,可以确保团队成员之间的协作,减少潜在的错误和bug,并且降低后期维护的成本。
下面是一些常用的代码规范和编码原则。
1.代码注释在代码中添加适当的注释是一种良好的编程习惯。
注释应该解释代码的意图、算法或者解决问题的思路。
注释不应该只是重复代码的功能,而应该提供更多的上下文和解释。
2.命名规范变量、函数、类等的命名应该有意义且易于理解。
命名应该使用驼峰命名法(CamelCase),并且尽量避免缩写和简写。
命名应该反映出实体的用途和功能,不应该只是简单的描述。
3.代码缩进和格式化使用适当的缩进和格式化可以提高代码的可读性。
通常使用四个空格缩进,并且在适当的位置添加换行符和空行,使代码的结构更清晰。
另外,注意避免代码行过长,应该适当折行。
4.函数和类的长度函数和类的长度应该适中,不应该过长。
过长的函数和类会增加代码的复杂性,降低可读性和可维护性。
应该尽量将函数和类分解为更小的、相互独立的模块,以便于重用和修改。
5.注重代码的可重用性在设计和编写代码时应该注重可重用性。
尽量将功能相似的代码抽象为函数、类或模块,以便于在其他地方进行重用。
重复代码会导致代码冗余,并且增加后续维护的工作量。
6.错误处理和异常处理在编写代码时应该考虑到可能出现的错误情况,并且做适当的错误处理和异常处理。
对于可能引发异常的代码块,应该使用try-catch语句进行捕获和处理。
同时,错误和异常应该有适当的错误消息和日志记录以便后续排查和修复。
7.单一职责原则(SRP)每个函数、类和模块应该只负责一项功能或任务。
单一职责原则可以提高代码的可读性和可维护性,使模块之间更加独立,降低耦合度。
8.开放-封闭原则(OCP)开放-封闭原则要求代码应该对扩展是开放的,对修改是封闭的。
即通过添加新的代码来扩展功能,而不是直接修改已有的代码。
05ecshop项目概述
![05ecshop项目概述](https://img.taocdn.com/s3/m/9120a01ff12d2af90242e6f5.png)
回顾PDO:PHP数据对象,作为了一个数据抽象层来负责向下连接各种指定的数据库。
1.加载PDO扩展2.创建PDO对象(连接数据库):new PDO($dsn,$user,$pass)3.组织SQL并发送a)PDO::exec:没有数据(结果集返回),返回受影响的行数b)PDOStatement PDO::query:有结果集,返回结果集对象4.处理返回结果a)结果集记录数:PDOStatement::rowCount,columnCountb)取出结果集:fetch(PDO::FETCH_BOTH,FETCH_ASSOC,FETCH_NUM),fetchAll,fetchColumn,fetchObject5.关闭PDO(unset(PDO对象))预处理1.发送预处理:PDOStatement PDO::prepare2.准备执行数据a)传入一个参数数据:PDOStatement::execute($array)b)在执行前绑定变量:bindParam,bindValue,使用PDOStatement::executePDO事务处理PDO::beginTransaction:开启事务PDO::commit:确认提交PDO::rollback:回滚PDO异常处理1.设置错误处理模式为异常模式:PDO::setAttribute(PDO::ATTR_ERRORMODE,PDO::ERRMODE_EXCEPTION)2.指定异常语句库去捕捉异常try{//可能出现错误的语句}catch(PDOException $e){//抓取错误并处理$e->getTrace()}反射:Reflection将一个类的内部的结构给反映出来:ReflectionClass获取常量:getConstants获取属性:getProperties获取方法:getMethodsECSHOPEcshop是一个电子购物商城,功能非常完善。
数据库设计编码规范
![数据库设计编码规范](https://img.taocdn.com/s3/m/965458da4793daef5ef7ba0d4a7302768f996f76.png)
数据库设计编码规范SQL Serve数据库设计规范一、数据库命名规范:对象前缀命名:前缀命名一般用小写表的前缀:业务模块组名前缀数据列的前缀:一般采用列的数据类型做前缀存储过程前缀:udp ,系统存储过程(sp)自定义函数前缀:udf(User define function)视图前缀:udv(User Define View)表示用户自定义视图自定义规则前缀:udr(User Define rule)用户自定义规则自定义约束前缀:uck(User Checker)用户自定义约束索引前缀:idx(Index)表示索引主键前缀:pk(primary keys)表示主键数据列的前缀示例:编号 1 2 3 4 5 6 7数据类型char varchar int smallint datetime money numeric 前缀 c vc i si dt m n 编号8 9 10 11 12 13数据类型decimal float bit binary image text前缀 d f b b img tx二、数据库设计规范:1、每个表中都可以考虑添加的的几个有用的字段RecoredID,记录唯一编号,不建议采用业务数据作为记录的唯一编号CreationDate,在SQL Server 下默认为GETDATE()RecordCreator,在SQL Server下默认为NOT NULL DEFAULT USERRecordVersion,记录的版本标记;有助于准确说明记录中出现null 数据或者丢失数据的原因2、数据类型:字符类型一般不建议采用char而采用varchar数据类型,除非当这列数据的长度特别固定时可以考虑用char。
数值类型如果表示金额货币建议用money型数据,如果表示科学记数建议用numeric数据类型记录标识一般采用int类型标识唯一一行记录。
自增or 非自增3、索引:所有的表都应该有一个主键索引,这对提高数据库的性能很有帮助根据使用频率决定哪些字段需要建立索引,选择经常作为连接条件、筛选条件、聚合查询、排序的字段作为索引的候选字段。
消费类电子商务商品编码规范编制说明
![消费类电子商务商品编码规范编制说明](https://img.taocdn.com/s3/m/04c17b4ddd88d0d232d46a06.png)
《消费类电子商务商品编码规范》编制说明一、任务来源目前,我省正积极申建“中国(郑州)跨境电商综合试验区”,方案已报国务院。
电子商务已经成为河南经济的一张新名片,网络经济正成为河南转型升级的动力源、结构优势调整的大枢纽,经济整体转型的新起点。
然而,目前对电子商务产品分类还没有统一的标准,电子商务企业对产品管理多处于随意化状态,造成数据急速膨胀后的分类混乱等问题。
分类标准不统一不仅降低了统计及数据交换和信息共享的效率,还增加了消费者获取目标商品信息的时间,大大降低了用户体验度。
本标准的制定主要依据国家有关法律、法规及河南省地方标准管理办法,并结合我省电子商务具体特点,有针对性的提出消费类电子商务商品编码规范,具有很高的可操作性和指导性。
二、编制目的本标准规定了消费类电子商务商品编码规范,适用于在电子商务活动中对消费类商品进行信息化编码。
标准的实施有助于引导消费者快速选购所需产品,提高消费者购物效率,给消费者提供更便捷的购物体验;为电子商务企业建立内部相对稳定的商品分类编码体系提供了模板,便于做好大数据分析、不同领域电商企业间数据交换、信息共享等工作;规范统一物资分类与编码,是电子商务标准化工作的一项基础,是对政府电子商务管理机制的一大补充,不仅能推进电子商务产业的发展,也有利于推进电子商务标准化工作。
三、编制原则本标准按照GB/T1.1-2009《标准化工作导则第1部分:标准的结构和编写》的要求和规定编写本标准内容。
本标准应具有科学性、先进性。
同时应充分考虑到现阶段我省消费类电子商务商品的编码需求,使其具有可操作性。
四、编制过程2015年5月河南省标准化研究院作为标准的承担单位,组织成立了标准研究起草组。
2015年6月-2015年8月标准起草组首先多方借鉴其它省份地方标准的编制经验,赴上海、杭州和重庆等地调研,全面了解标准的内涵及编制方法。
其次结合生产实际对收集的资料进行分析整理,为标准编制提供技术支撑,采取专家咨询,组织召开座谈会,对标准所涉及的内容、范围、适用性等内容进行了研讨。
ECSHOP编码规范
![ECSHOP编码规范](https://img.taocdn.com/s3/m/6020f6db6f1aff00bed51e37.png)
ECSHOP编码规范v2.1.2 ECSHOP R&D TEAM1.编辑器设定1.1. 缩进所有的缩进使用空格取代Tab制表符。
PHP文件采用4个空格的缩进,HTML文件以及HTML文件中嵌入的Javascript代码采用2个空格的缩进;单独的Javascript以及CSS文件采用4个空格的缩进。
1.2. 字符编码所有PHP、HTML文件均保存为No Bom UTF-8的字符编码。
1.3. EditPlus 和Dreamweaver 相关设定1.3.1.EditPlus相关设定1.3.2.Dreamweaver设定2.命名约定2.1. 变量命名变量名应当全部小写,并且词语之间以单个下划线分隔。
例如:$current_user 是正确的,但是$currentuser 和$currentUser 就不正确。
名称应当是描述性的,并且简明。
我们自然不希望使用冗长的句子作为变量名,但是多输入几个字符总好于疑惑于某个变量到底是干什么用的。
2.2. 循环计数器允许使用一个单字符变量名的唯一情形是当它作为一个循环计数器的时候。
在这种情况下,外层循环的计数器应当始终是$i。
如果有一个循环处于这个循环的内部,它的计数器应当是$j,进而是$k,等等。
如果循环的计数器是一个已经存在并且名字有意义的变量,本规范并不适用。
例如:for ($i = 0; $i < $outer_size; $i++){for ($j = 0; $j < $inner_size; $j++){foo($i, $j);}}2.3. 函数名称函数也应该描述性地命名。
这里我们并非在用C 编程,我们不希望写出诸如“stristr()”此类的函数来。
同上,使用单词间用单下划线分隔的小写名称。
函数名称中某处最好有一个动词。
较好的函数名称如print_login_status(),get_user_data(),等等。
2.4. 函数参数参数遵循和变量名字相同的约定。
ECSHOP数据库结构详细说明
![ECSHOP数据库结构详细说明](https://img.taocdn.com/s3/m/0e0c0976bf23482fb4daa58da0116c175e0e1e50.png)
ECSHOP数据库结构详细说明ECSHOP数据库结构详细说明(1)表的结构`ecs_account_log`==用户账目日志表CREATE TABLE IF NOT EXISTS `ecs_account_log` (`log_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID号',`user_id` mediumint(8) unsigned NOT NULL COMMENT '用户登录后保存在session中的id号,跟users表中的user_id对应', `user_money` decimal(10,2) NOT NULL COMMENT '用户该笔记录的余额',`frozen_money` decimal(10,2) NOT NULL COMMENT '被冻结的资金',`rank_points` mediumint(9) NOT NULL COMMENT '等级积分,跟消费积分是分开的',`pay_points` mediumint(9) NOT NULL COMMENT '消费积分,跟等级积分是分开的',`change_time` int(10) unsigned NOT NULL COMMENT '该笔操作发生的时间',`change_desc` varchar(255) NOT NULL COMMENT '该笔操作的备注,一般是,充值或者提现。
也可是是管理员后台写的任何在备注',`change_type` tinyint(3) unsigned NOT NULL COMMENT '操作类型,0为充值,1为提现,2为管理员调节,99为其他类型', PRIMARY KEY (`log_id`),KEY `user_id` (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='用户帐号情况记录表,包括资金和积分等' AUTO_INCREMENT=42 ;-- --------------------------------------------------------------------------------------------------------------------------------------------------------------------表的结构`ecs_ad` 广告表(位置,类型,名称,链接,图片,开始,结束,广告主相关信息,点击,是否显示)CREATE TABLE IF NOT EXISTS `ecs_ad` (`ad_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID号',`position_id` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT '0,站外广告;从1开始代表的是该广告所处的广告位,同表ad_position中的字段position_id的值',`media_type` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '广告类型,0,图片;1,flash;2,代码;3,文字', `ad_name` varchar(60) NOT NULL COMMENT '该条广告记录的广告名称',`ad_link` varchar(255) NOT NULL COMMENT '广告链接地址', `ad_code` text NOT NULL COMMENT '广告链接的表现,文字广告就是文字或图片和flash就是它们的地址,代码广告就是代码内容',`start_time` int(11) NOT NULL DEFAULT '0' COMMENT '广告开始时间',`end_time` int(11) NOT NULL DEFAULT '0' COMMENT '广告结束时间',`link_man` varchar(60) NOT NULL COMMENT '广告联系人',`link_email` varchar(60) NOT NULL COMMENT '广告联系人的邮箱',`link_phone` varchar(60) NOT NULL COMMENT '广告联系人的电话',`click_count` mediumint(8) unsigned NOT NULL DEFAULT '0' COMMENT '该广告点击数',`enabled` tinyint(3) unsigned NOT NULL DEFAULT '1'COMMENT '该广告是否关闭,1,开启;0,关闭;关闭后广告将不再有效,直至重新开启',PRIMARY KEY (`ad_id`),KEY `position_id` (`position_id`),KEY `enabled` (`enabled`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='广告列表配置表,包括站内站外的图片,文字,flash,代码广告' AUTO_INCREMENT=6 ;-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------表的结构`ecs_admin_action`==管理权限分配(父类ID,权限代码)CREATE TABLE IF NOT EXISTS `ecs_admin_action` (`action_id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID号',`parent_id` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '该id项的父id,对应本表的action_id字段', `action_code` varchar(20) NOT NULL COMMENT '代表权限的英文字符串,对应汉文在语言文件中,如果该字段有某个字符串,就表示有该权限',PRIMARY KEY (`action_id`),KEY `parent_id` (`parent_id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='管理员权限列表树' AUTO_INCREMENT=104 ;-- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------表的结构`ecs_admin_log`==管理日志(登陆时间,登陆管理员ID,操作描述,IP)CREATE TABLE IF NOT EXISTS `ecs_admin_log` (`log_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID号',`log_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '写日志时间',`user_id` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '该日志所记录的操作者id,同ecs_admin_user的user_id',`log_info` varchar(255) NOT NULL COMMENT '管理操作内容', `ip_address` varchar(15) NOT NULL COMMENT '管理者登录ip', PRIMARY KEY (`log_id`),KEY `log_time` (`log_time`),KEY `user_id` (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='管理员操作日志表' AUTO_INCREMENT=158 ;-- -----------------------------------------------------------------------------------------------------------------------------------------------------------------------表的结构`ecs_admin_message`==管理员留言(发送者ID,接收者ID,发送日期,阅读日期,是否已读,是否删除,标题,内CREATE TABLE IF NOT EXISTS `ecs_admin_message` (`message_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID号',`sender_id` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '发送该留言的管理员id,同ecs_admin_user的user_id', `receiver_id` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '接收消息的管理员id,同ecs_admin_user的user_id,如果是给多个管理员发送,则同一个消息给每个管理员id发送一条',`sent_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '留言发送时间',`read_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '留言阅读时间',`readed` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '留言是否阅读,1,已阅读;0,未阅读',`deleted` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '留言是否已经是否已经被删除,1,已删除;0,未删除', `title` varchar(150) NOT NULL COMMENT '留言的主题',`message` text NOT NULL COMMENT '留言的内容',PRIMARY KEY (`message_id`),KEY `sender_id` (`sender_id`,`receiver_id`),KEY `receiver_id` (`receiver_id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='管理员留言记录表' AUTO_INCREMENT=7 ;-- -------------------------------------------------------- 表的结构`ecs_admin_user`==管理员管理(用户名,email ,密码,加入时间,最后登陆时间,最后登陆IP,权限等)CREATE TABLE IF NOT EXISTS `ecs_admin_user` (`user_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID号,管理员代号',`user_name` varchar(60) NOT NULL COMMENT '管理员登录名',`email` varchar(60) NOT NULL COMMENT '管理员邮箱',`password` varchar(32) NOT NULL COMMENT '管理员登录秘密加密串',`add_time` int(11) NOT NULL DEFAULT '0' COMMENT '管理员添加时间',`last_login` int(11) NOT NULL DEFAULT '0' COMMENT '管理员最后一次登录时间',`last_ip` varchar(15) NOT NULL COMMENT '管理员最后一次登录ip',`action_list` text NOT NULL COMMENT '管理员管理权限列表', `nav_list` text NOT NULL COMMENT '管理员导航栏配置项',`lang_type` varchar(50) NOT NULL,`agency_id` smallint(5) unsigned NOT NULL COMMENT '该管理员负责的办事处的id,同ecs_agency的agency_id字段。
ecshop_v2.7.3数据库表结构
![ecshop_v2.7.3数据库表结构](https://img.taocdn.com/s3/m/8be8e4c40c22590102029dea.png)
ECShop 2.7.2版本,数据库表注:1、颜色为蓝色的字,是本人所写,有待讨论验证的地方。
2、颜色为红色的字,是新增的字段。
(改文档是基于网上下载的老版本的数据字典修改而成,已经检查了所有字段,修改的修改,增加的增加)。
ecs_account_log //用户账目日志表ecs_ad //广告表(位置,类型,名称,链接,图片,开始,结束,广告主相关信息,点击是否显示)ecs_admin_action //管理权限分配(父类ID,权限代码)(感觉像是规定好的一些数据,安装的时候就有)ecs_admin_log //管理日志(登陆时间,登陆ID,操作描述,IP)ecs_admin_message //管理留言(发送id,接收id,发送日期,阅读日期,是否已读,是否删除,标题,内容)ecs_admin_user //管理员管理(用户名,email,密码,加入时间,最后登陆时间,最后登陆IP,权限等)ecs_adsense //广告相关统计(来源广告,来源位置,点击)ecs_ad_custom //ecs_ad_position //广告位(名称,宽,高,描述,样式)ecs_affiliate_log //(用户推荐的操作日志?)ecs_agency //广告相关统计(来源广告,来源位置,点击)ecs_area_region //配送区域关联(配送区域ID,具体地址ID)ecs_article //文章(分类ID,标题,内容,作者,作者email,关键字, 类型,是否显示,添加时间,文件地址,打开类型)ecs_article_cat //文章分类(名称,类型,关键字,描述,排序,是否导航显示)ecs_attribute //商品属性ecs_auction_log //商品拍卖表ecs_auto_manage //自动上下架表ecs_back_goods //ecs_back_order //ecs_bonus_type //红包类型(名称,金额, 发放起日期,发放结束期,使用起始日期, 使用结束日期, 发放类型, 金额下限,(按订单发放),金额上限)ecs_booking_goods //缺货登记(登记用户ID,email,电话,商品ID,描述,数量,登记时间,是否已处理,处理管理员,处理时间,处理备注)ecs_brand //品牌(名称,logo,描述, 链接,排序,是否显示)ecs_card // 祝福贺卡(名称,图片,费用,免费额度,描述)ecs_cart//购物车(用户ID,session_id,商品ID,商品编号,商品名称,市场价,购买价,数量,属性,是否真实商品,扩展代码,父类ID, 类型,是否赠品,能否处理)ecs_category //商品分类(名称,关键字,描述,父类ID,排序,是否有子类,模板文件,数量单位,是否导航显示)ecs_cat_recommend // 什么推荐?ecs_collect_goods //收藏(用户ID,商品ID,收藏时间)ecs_comment //评论(类型,类型ID,email,用户名,内容,评星,添加时间,IP,状态, 父类ID)ecs_crons //计划任务ecs_delivery_goods //ecs_delivery_order //ecs_email_list //邮件订阅列表ecs_email_sendlist //邮件队列ecs_error_logecs_exchange_goods //交换商品??ecs_favourable_activity //优惠活动ecs_feedback //用户留言(父类ID,用户ID,用户名,内容,评星,添加时间,IP,状态,父类ID)ecs_friend_link//友情链接(名称,链接,logo,排序)ecs_goods //商品(分类ID,名称,点击,品牌ID,供应商名称,库存,重量,市场价,售价,fitting_price(?), 促销开始日期,结束日期, 警告数量,关键字, 简介,描述,缩略图,图, 原图,是否成为赠品,扩展代码,是否上架,是否单独销售,是否关联,配件关联,是否赠品,能否世为赠品,单位,添加时间,排序,是否回收,精品,新品,推荐,热销,红包ID,更新日期,商品类型, 商品备注,首页轮播)ecs_goods //商品信息ecs_goods_activity //促销活动ecs_goods_article //商品文章关联(gid,aid)ecs_goods_attr //商品属性(商品ID,图片,描述,缩略图, 原图)ecs_goods_catecs_goods_gallery //商品相册(商品ID,图片,描述,缩略图,原图)ecs_goods_type //商品类型(名称,状态)ecs_group_goodsecs_keywordsecs_link_goods //商品关联(商品ID,关联ID,单双向)ecs_mail_templates //邮件样式(代码,是否html,名称, 样式,最后修改日期)ecs_member_price //会员价(商品ID,会员等级,会员价)ecs_navecs_order_action //订单处理(订单ID,商品ID,商品名称,商品编号,商品数量,市场价,订单价,商品属性,配送数量,是否真实商品,扩展代码,父类ID,是否赠品)ecs_order_goods //订单一商品(订单ID,商品ID,商品名称,商品编号,商品数量,市场价,订单价,商品属性,配送数量,是否真实商品,扩展代码, 父类ID,是否赠品)ecs_order_info //订单详细信息ecs_pack // 包装(名称,图片,费用,免费额,描述)ecs_package_goods //包装商品ecs_payment //支付工具(代码,名称,费用,描述,排序, 配置,状态,is_cod(?))ecs_pay_log //支付记录ecs_plugins //插件(代码,版本,库,签名, 安装日期)ecs_productsecs_region //地方数据ecs_reg_extend_infoecs_reg_fieldsecs_roleecs_searchengineecs_sessions //保存session的ecs_sessions_dataecs_shipping //配送(代码,名称,描述,保价费,状态)ecs_shipping_area //配送区域(序列配置)ecs_shop_config //设置(父类ID,代码,类型,范围,文件夹,值)ecs_snatch_log // 夺宝奇兵出价记录ecs_stats //访问记录(时间,IP,访问次数,浏览器,系统,语言,地区,来源域名,来源地址,关键字,进入链接)ecs_suppliersecs_tag //用户标签ecs_template //模板区域(文件名,区域,模板库,排序,id,数量,类型,模板)ecs_topicecs_usersecs_user_account //会员账户(用户ID,管理员,总额,添加时间,支付时间,管理备注,用户备注,处理类型,支付工具,是否支付)ecs_user_addressecs_user_bonus //红包ecs_user_feedecs_user_rankecs_virtual_cardecs_volume_priceecs_vote //在线调查。
ecshop模板
![ecshop模板](https://img.taocdn.com/s3/m/053fdf0ccd7931b765ce0508763231126edb7732.png)
ecshop模板ecshop模板中的运算符(1)== 为"eq"(2)!= 为"neq"(3)< 为"lt"(4)<= 为"lte"(5)> 为"gt"(6)>= 为"gte"(7)&&为"and"(8)||为"or"(9)! 为"!"(10)% 为"%"ecshop模板之文件包含在ecshop的模板中,文件的包含也极其重要。
总共有以下几种。
1:{insert_scriptsfiles="文件名称"},主要是包含JS之类的。
比如{insert_scriptsfiles='common.js'}2:,这个主要是包含ecshop 模板中的库文件lbi.用来做公共模板。
3:{insertname='名称'type=参数id=参数},通过调用includes/lib_insert.php文件中的模板显示函数。
格式为insert_名称()函数中smaryt的display和assign方式来显示包含库,通常结合ajax来局部刷新或者是显示结果.ecshop模板之标量声明ecshop模板中,变量或者是模板语句,都是用{}括弧加$变量名称组成的。
比如$name.在ecshop模板中,我们该使用{$name}的写法。
如果是程序的语句段,那么要从{}开始,用{/}结束。
比如模板中的if判断。
{$if条件}执行条件{/if}如果是数组,在ecshop的模板里面,同样是如此写法{$/doc/9f5538311.html,}.你可以直接取得某个数组的值。
不管是多么复杂的数组,多唯数组也可以。
在ecshop模板中,你可以用ecshop 本身的语法,下标的方式来引用变量的值。
编码命名规范(.NET)(很全,很实用)1
![编码命名规范(.NET)(很全,很实用)1](https://img.taocdn.com/s3/m/03d7fd2543323968011c9230.png)
编码命名规范(.NET)(很全,很实用)一、命名约定1.常用命名术语说明Pascal命名格式将标识符的首字母和后面连接的每个单词的首字母都大写。
可以对三字符或更多字符的标识符使用Pascal 大小写。
例如:BackColorCamel命名格式标识符的首字母小写,而每个后面连接的单词的首字母都大写。
例如:backColor2.名称空间命名创建命名空间的名称时应使用以下原则:“公司名称.技术名称.软件产品代号”或“公司名称.产品技术代号”例如:Nd.ClassLibrary.Charting 命名空间就表示Nd公司里的公用类库里的Charting画图类库。
又如:Net91com.Movies.DataAccess 名称空间标识 电影站的数据访问层程序集。
3.类命名使用完整的单词,避免用缩写。
比如ButtonGrid比BtnGrd要长,但是完整从而可读性好。
一般使用名词。
类通常表示一种对象,而对象一般使用具有名词性质的名称。
异常类命名:类以Exception结尾,比如class EQException: Exception{}4.局部变量命名私有字段、函数参数和函数内部声明的变量使用camel Casing不使用的是用以指明字段作用域的前缀。
如s_作为共享字段或静态字段的前缀,以及把g_作为全局变量的前缀。
不使用用以指明数据类型的匈牙利前缀表示法,如(strReturn)。
在Microsoft Visual Studio .NET环境中,只要在代码编辑器中将鼠标移到域名上,就可以得到关于字段或变量的类型信息。
另外,类型前缀限制了开发者在需要时改变变量的类型的能力,或者更糟糕的是,开发者改变了变量的类型,却没有为变量重新命名,从而产生具有误导性的代码。
5.只读静态变量Pascal大小写6.类私有变量_ + Pascal大小写。
如:_BackColor7.属性命名使用Pascal Casing。
属性名称通常都是名词。
PHP基础-04 编码规范 PHP实训教程(安博教育)
![PHP基础-04 编码规范 PHP实训教程(安博教育)](https://img.taocdn.com/s3/m/bd91ab7c27284b73f24250bf.png)
2 代码布局
较长的语句要分成多行书写 一行程序需小于80字符
较长的语句要分成多行书写,长表达式要在低优先级 操作符处划分新行,操作符放在新行之首,划分出的 新行要进行适当的缩进,使排版整齐,语句可读。
2 代码布局
断行的例子
$perm_count_msg->len = NO7_TO_STAT_PERM_COUNT_LEN
3 注释
结构体声明
代码中代表结构体的数组变量,要提前声明。 示例: function example_fun(){
$student = array( 'name' => '小明', //名称 'addr' => '详细地址', //地址 'sex' => '男', //性别 'city' => '上海' //城市
) }
3 注释
注释以中文为主
注释应考虑程序易读及外观排版的因素,使用的语言若是中、 英兼有的,建议多使用中文,除非能用非常流利准确的英文表 达。
4 命名约定
禁止拼音命名法
代码中禁止用拼音命名法。
变量命名
变量名应当全部小写,并且词语之间以单个下划线分隔。 名称应当是描述性的,并且简明
例如: $current_user 是正确的, 但是 $currentuser 和 $currentUser 就不正确。
谁也不愿意看到挤在一堆的无序的代码。我们在写代码的时候总 是会利用一些空行来增加代码可读性。合理的利用空格来区分代 码段会使代码的逻辑思路更加明确。我们强行规定的空行有以下 两种情况: 1、<?php 之后必须有且只有 个空行 、 之后必须有且只有1个空行 2、?> 之前必须有且只有1个空行 3、两个函数之间必须有1个空行。 4、return、die、exit之前如果有其他语句的情况下应加上一个空行。 在代码中我们不允许在行尾有多余的空格。
软件开发实习报告的编码规范遵循
![软件开发实习报告的编码规范遵循](https://img.taocdn.com/s3/m/d9410514443610661ed9ad51f01dc281e53a56cc.png)
软件开发实习报告的编码规范遵循引言在软件开发实习过程中,编码规范的遵循对于项目的成功实施至关重要。
良好的编码规范能够提高代码的可读性、可维护性和可扩展性,减少错误发生的概率,提高团队协作效率。
本文将以实习报告为背景,探讨软件开发实习过程中应遵循的编码规范。
一、命名规范良好的命名规范可以使代码更易读,降低理解代码的成本。
在软件开发实习报告中,命名规范应遵循以下几个原则:1. 变量、函数和类名的命名应具备清晰的含义,避免使用过于简单或者难以理解的命名。
2. 变量名应该使用小写字母,采用驼峰命名法,如:studentName,而不是studentname。
3. 函数名应该使用动词开头,以表达其功能,如:updateData,而不是dataUpdate。
4. 类名应使用大写字母开头,采用驼峰命名法,如:StudentManager。
5. 常量名应该全部大写,并使用下划线分隔单词,如:MAX_LENGTH。
二、缩进和空格良好的缩进和空格规范可以提高代码的可读性和可维护性。
在软件开发实习报告中,缩进和空格规范应遵循以下几个原则:1. 使用4个空格作为缩进的标准,而不是制表符。
2. 在每个逻辑块之间留出空行,以提高代码的可读性。
3. 在运算符两侧和逗号后面加上空格,以提高代码的可读性。
三、注释规范良好的注释规范可以增加代码的易理解性和可维护性。
在软件开发实习报告中,注释规范应遵循以下几个原则:1. 在关键的代码段之前添加注释,解释代码的意图和实现方法。
2. 注释应该是简洁明了的,避免使用无用的注释。
3. 注释应该是清晰的,使用易于理解的语言描述代码的功能和逻辑。
四、代码复用代码复用是软件开发中的一项重要技术,它能够减少冗余代码的出现,提高开发效率。
在软件开发实习报告中,代码复用应遵循以下几个原则:1. 尽量避免复制和粘贴代码,而是将可复用的代码抽象成函数或者类。
2. 在项目中建立代码库或者模块,存放可复用的代码片段。
网络会议系统编码命名规范
![网络会议系统编码命名规范](https://img.taocdn.com/s3/m/624e47ad19e8b8f67d1cb90a.png)
网络会议系统编码命名规范作者:马威一.类命名 (1)二.接口设计 (1)三.参数命名 (1)四.其他注意事项 (2)一.类命名1.类名由大写字母开头的单词组合而成。
2.避免使用动词命名类。
3.类的命名要反映类的职责。
4.类名中不要出现数字。
5. 任何情况下,不允许使用拼音。
二.接口设计1.接口的可见范围要严格控制,尽可能少的暴露接口和实现。
2.接口命名要具有抽象性,反映这个接口做什么,而不是怎么做。
3.接口的形参按照输入,修改,输出的顺序排列。
4.如果几个子程序都用了类似的一些参数,应该让这些参数的排列保持一致性。
5.要保证传入的参数都是需要使用的,去掉没有使用的参数。
6.把状态或者出错变量放在最后。
这些是仅用于输出的参数。
7.不要把子程序的参数用做工作变量。
8.接口的参数的个数<=7。
9.使用具名参数。
10.任何情况下,不允许使用拼音。
11.类的接口的设计要具有功能内聚性。
12.接口名由大写字母开头的单词组合而成。
三.参数命名1.不允许使用拼音。
2.不允许出现数字。
3.避免在名字中拼错单词。
4.枚举类型由大写字母开头的单词组合而成。
5.变量声时要初始化。
6.类的数据成员,在构造函数里初始化。
7.方法的变量,理想情况下,在靠近第一次使用变量的位置声明和定义该变量。
8.是变量引用局部化,减少变量跨度和存活时间。
9.变量命名要准确描述出该变量所代表的事物。
10.变量命名平均长度在10~16个字符之间。
这个并不需要严格遵守,但是当变量过短时,要检查该变量命名是否准确反应了该变量代表了什么。
11.变量中使用常用的对账词。
begin/endfirst/lastlocked/unlockedmin/maxnext/previousold/newopened/closedvisible/invisiblesource/targetup/down12.计算变量的限定词(total,sum,average,max,min,record,string,pointer),要放在名字最后。
ecshop模板编码转换工具教程
![ecshop模板编码转换工具教程](https://img.taocdn.com/s3/m/de6f2903a6c30c2259019e72.png)
本帖最后由EC助理于2009-10-4 16:53 编辑
ecshop模板编码转换工具(gbk,utf8任意转换)
论坛上大多数发布的模板都只提供单一编码,很多用户需要另一种编码的时候,
不懂得如何处理,手工转码也加大了工作量,容易出错,为此,我们公布了51ec内部专用的转码工具,可以很快速的在gbk,utf8中互转,转码工具不仅仅只适用在模板这块,很多程序都可以用这个工具进行转换,这个用户自己体验。
转码工具下载:51EC模板转码专用工具1.0.rar (640.02 KB)
51EC模板转码专用工具帮助明说
(图一)
注:模板文件夹名,最好不要去修改(即:原模板文件夹名等于新模板文件夹名)如:原模板文件夹名为:51ecshop;新模板文件夹名为也要为:51ecshop; 当然如果你对你的【原模板】很了解,那么可以随意重新命名【新模板文件夹名】,反之尽量使用相同的名称,以防转码后使用新模板名字后不能正常使用。
(图二)
下载 (69.27 KB)
2009-9-30 09:59
(图三)。
php 代码规范 标准
![php 代码规范 标准](https://img.taocdn.com/s3/m/cdf2bbf01b37f111f18583d049649b6648d709b9.png)
php 代码规范标准PHP代码规范标准。
在进行PHP编程时,遵循一定的代码规范标准是非常重要的。
良好的代码规范可以提高代码的可读性、可维护性,有助于团队协作和代码质量的提升。
下面将介绍一些PHP代码规范标准的内容,希望能够对大家有所帮助。
1. 缩进和空格。
在PHP代码中,通常使用4个空格来进行缩进,而不是使用Tab键。
这样可以保持不同编辑器之间的一致性,并且可以避免在不同编辑器中出现排版混乱的情况。
另外,在运算符和逗号后面应该留一个空格,这样可以增加代码的可读性。
2. 命名规范。
在PHP代码中,变量、函数和类的命名应该具有一定的规范性。
通常情况下,变量名采用小写字母和下划线的组合,函数名采用小驼峰式命名法,而类名采用大驼峰式命名法。
这样可以使命名更加清晰明了,方便他人阅读和理解代码。
3. 注释。
良好的注释可以让他人更容易理解你的代码。
在PHP代码中,应该养成良好的注释习惯,对关键的代码逻辑进行注释说明,特别是一些复杂的算法和业务逻辑。
另外,注释应该使用英文书写,避免使用中文注释,以免出现乱码问题。
4. 代码结构。
在PHP代码中,应该遵循一定的代码结构规范,例如合理的文件目录结构、文件命名规范等。
另外,应该避免在一个文件中编写过多的代码,可以将一些相关的功能进行拆分,形成独立的模块,这样可以提高代码的可维护性。
5. 安全性。
在PHP编程中,安全性是非常重要的一个方面。
应该避免使用过时的PHP版本,及时更新代码中存在的安全漏洞,对用户输入的数据进行有效的过滤和验证,以防止SQL注入、XSS攻击等安全问题。
6. 错误处理。
良好的错误处理可以提高代码的健壮性和稳定性。
在PHP代码中,应该养成良好的错误处理习惯,对可能出现的异常情况进行适当的处理,避免出现未捕获的异常导致程序崩溃的情况。
7. 性能优化。
在PHP编程中,性能优化也是非常重要的一个方面。
应该避免在循环中进行大量的数据库查询和文件操作,尽量减少不必要的资源消耗,优化SQL查询语句,合理使用缓存等手段来提高程序的性能。
水晶阁网上购物商城项目命名规范
![水晶阁网上购物商城项目命名规范](https://img.taocdn.com/s3/m/9e41e8c0d5bbfd0a7956738f.png)
水晶阁网上购物商城项目命名规范1.包的命名:全由小写单词组成,为了在互联网的唯一性,在包前面加上前缀――项目名。
例如:com.onlineshopping.register2.类的命名:头字母大写,若类名由几个有意义的单词组成,则每个单词的第一个字母大字。
例如:Public class DataBase(){}3.方法的命名:头字母小写,若类名由几个有意义的单词组成,则每个单词的第一个字母大字。
例如:Public string getUserName(){}4.常量的命名:常量的名字应该都使用大写字母,并且指出该常量完整含义。
如果一个常量名称由多个单词组成,则应该用下划线来分割这些单词。
例如: MAX_VALUE5. 参数的命名:参数的命名规范和方法的命名规范相同。
6.Javadoc注释:它是用来记录我们代码中的API的。
Javadoc注释是一种多行注释,以/**开头,而以*/结束,使用Javadoc注释的好处是编写的注释可以被自动转为在线文档,省去了单独编写程序文档的麻烦。
例如:/*** 这是个例子 **/7.函数注释:例如:/*** 函数名:* 编写者:* 参考资料:* 功能:* 输入参数:* 输出参数:* 备注:*/8. 变量和常量命名变量命名的方法采用匈牙利命名法,基本结构为scope_typeVariableName,它使用3字符前缀来表示数据类型,3个字符的前缀必须小写,前缀后面是由表意性强的一个单词或多个单词组成的名字,而且每个单词的首写字母大写,其它字母小写,这样保证了对变量名能够进行正确的断句。
例如,定义一个整形变量,用来记录文档数量:intDocCount,其中int表明数据类型,后面为表意的英文名,每个单词首字母大写。
这样,在一个变量名就可以反映出变量类型和变量所存储的值的意义两方面内容,这使得代码语句可读性强、更加容易理解。
byte、int、char、long、float、double、boolean和short。
代码风格:遵循规范化的编码规则
![代码风格:遵循规范化的编码规则](https://img.taocdn.com/s3/m/3544d48b4128915f804d2b160b4e767f5acf8099.png)
代码风格:遵循规范化的编码规则代码风格是指在编写代码时遵循的一套规范化的编码规则。
良好的代码风格可以提高代码的可读性、可维护性和可扩展性,同时也有助于减少错误和提高代码的质量。
下面将介绍一些常见的代码风格规范。
1.缩进和空格:在编写代码时,应当使用一致的缩进风格,通常为4个空格或者一个Tab。
不同语言的习惯可能略有不同,但一般都要求一致性。
另外,应当在运算符之间和逗号后面添加空格,以增加代码可读性。
2.命名规范:变量、函数、类等的命名应该具有一定的描述性,能够清楚地表达其用途和含义。
命名应当采用驼峰命名法或者下划线命名法,并避免使用缩写或者单个字母作为命名。
3.注释:注释是一种很重要的代码文档形式,能够帮助人们理解代码的功能和实现方式。
合理的注释能够提高代码的可读性,建议在代码中添加适当的注释,解释一些复杂的逻辑、算法或者关键的业务逻辑。
4.函数和方法:函数和方法应当具有合适的命名,并且实现单一职责原则,即一个函数或方法只负责完成一个具体的功能。
函数和方法应该尽量简短,不超过20行,避免嵌套过深。
每个函数和方法应该有明确的输入和输出,避免不必要的副作用。
5.条件语句和循环:条件语句和循环应该使用括号包裹起来,即使只有一行代码。
在if语句中,应当使用大括号(即使只有一行代码)来避免可能的错误。
在循环中,应当避免无限循环或者循环条件不明确。
6.错误处理:在编写代码时,应当考虑异常和错误处理,避免在代码中出现潜在的错误。
对于可能抛出异常的代码,应当使用try-catch语句进行异常处理,或者在适当的地方进行错误检查和处理。
7.模块和包:在组织代码时,应当将相关的功能组织成模块和包,在代码文件之间进行逻辑和功能分离。
模块和包应当有明确的功能和用途,并且应该尽量避免循环依赖和没有用到的代码。
8.代码复用:避免重复编写相同或者类似的代码,尽可能地重用已有的代码。
可以使用函数、类、库、框架等方式来实现代码的复用性,并且要保持代码的清晰性和可读性。
手机商城销售系统编码规范及其代码
![手机商城销售系统编码规范及其代码](https://img.taocdn.com/s3/m/ca90c38e8762caaedd33d424.png)
手机商城销售系统编码规范2012年12月目录1.导言 (2)1.1目的 (2)1.2范围 (2)1.3术语定义 (2)1.4引用标准 (2)1.5参考资料 (3)1.6版本更新信息 (3)2. 编码格式规范 (3)2. 1缩进排版 (3)2. 2行长度 (3)2. 3断行规则: (3)2. 4空行 (4)3.命名规范 (4)3. 1包(Packages) (4)3. 2类(Classes) (5)3. 3接口(Interfaces) (5)3. 4方法(Methods) (5)3. 5变量(Variables) (5)3. 6实例变量(Instance Variables) (5)3. 7常量(Constants) (5)4.声明规范 (5)4.1每行声明变量的数量 (5)4.2初始化 (6)4.3布局 (6)4.4包的声明 (6)4.5类和接口的声明 (7)5.语句规范 (7)5.1简单语句 (7)5.2复合语句 (7)6.注释规范 (8)6. 1注释的方法 (8)6. 2开头注释 (9)6. 3类和接口的注释 (9)7. 代码范例 (9)8. 目录规范 (11)1.导言1.1目的该文档的目的是描述网上招聘系统项目的编码规范和对代码的说明,其主要内容包括:●编码规范●命名规范●注释规范●语句规范●声明规范●目录设置●代码说明本文档的预期的读者是:●开发人员●项目管理人员●质量保证人员1.2范围该文档定义了本项目的代码编写规范,以及部分代码描述和所有代码的说明。
1.3术语定义ClassJava程序中的一个程序单位,可以生成很多的实例。
Packages由很多的类组成的工作包。
1.4引用标准[1] 《企业文档格式标准》北京长江软件有限公司[2] 《Java语言编写规范》北京长江软件有限公司软件工程过程化组织1.5参考资料[1] 《IBM RedBook》IBM官网[2] 《软件重构》清华大学出版社1.6版本更新信息本文档的更新记录如表D-1所示。
ecshop的IIS7.5上的伪静态规则web.config
![ecshop的IIS7.5上的伪静态规则web.config](https://img.taocdn.com/s3/m/086fa612366baf1ffc4ffe4733687e21af45ff9f.png)
ecshop的IIS7.5上的伪静态规则web.config ecshop的 web.config 规则1.<?xml version="1.0" encoding="UTF-8"?>2.<configuration>3.<system.webServer>4.<rewrite>5.<rules>6.<rule name="Index" stopProcessing="true">7.<match url="^index.html" />8.<action type="Rewrite" url="index.php" />9.</rule>10.<rule name="Feed-C" stopProcessing="true">11.<match url="^feed-c([0-9]+).xml" />12.<action type="Rewrite" url="feed.php?cat={R:1}" />13.</rule>14.<rule name="Feed-B" stopProcessing="true">15.<match url="^feed-b([0-9]+).xml" />16.<action type="Rewrite" url="feed.php?brand={R:1}" />17.</rule>18.<rule name="Feed" stopProcessing="true">19.<match url="^feed.xml" />20.<action type="Rewrite" url="feed.php" />21.</rule>22.<rule name="Category6" stopProcessing="true">23.<match url="^category-([0-9]+)-b([0-9]+)-min([0-9]+)-max([0-9]+)-attr([^-]*)-([0-9]+)-(.+)-([_0-9a-z-]+).html" />24.<action type="Rewrite" url="category.php?id={R:1}&brand={R:2}&price_min={R:3}&pric e_max={R:4}&filter_attr={R:5}&page={R:6}&sort={R:7}&order={R:8}" />25.</rule>26.<rule name="Category5" stopProcessing="true">27.<match url="^category-([0-9]+)-b([0-9]+)-min([0-9]+)-max([0-9]+)-attr([^-]*).html" />28.<action type="Rewrite" url="category.php?id={R:1}&brand={R:2}&price_min={R:3}&pric e_max={R:4}&filter_attr={R:5}" />29.</rule>30.<rule name="Category4" stopProcessing="true">31.<match url="^category-([0-9]+)-b([0-9]+)-([0-9]+)-(.+)-([_0-9a-z-]+).html" />32.<action type="Rewrite" url="category.php?id={R:1}&brand={R:2}&page={R:3}&sort={R: 4}&order={R:5}" />33.</rule>34.<rule name="Category3" stopProcessing="true">35.<match url="^category-([0-9]+)-b([0-9]+)-([0-9]+).html" />36.<action type="Rewrite" url="category.php?id={R:1}&brand={R:2}&page={R:3}" />37.</rule>38.<rule name="Category2" stopProcessing="true">39.<match url="^category-([0-9]+)-b([0-9]+).html" />40.<action type="Rewrite" url="category.php?id={R:1}&brand={R:2}" />41.</rule>42.<rule name="Category1" stopProcessing="true">43.<match url="^category-([0-9]+).html" />44.<action type="Rewrite" url="category.php?id={R:1}" />45.</rule>46.<rule name="Goods" stopProcessing="true">47.<match url="^goods-([0-9]+).html" />48.<action type="Rewrite" url="goods.php?id={R:1}" />49.</rule>50.<rule name="Cat3" stopProcessing="true">51.<match url="^article_cat-([0-9]+)-([0-9]+)-(.+)-([_0-9a-z-]+).html" />52.<action type="Rewrite" url="article_cat.php?id={R:1}&page={R:2}&sort={R:3}&order={R :4}" />53.</rule>54.<rule name="Cat2" stopProcessing="true">55.<match url="^article_cat-([0-9]+)-([0-9]+).html" />56.<action type="Rewrite" url="article_cat.php?id={R:1}&page={R:2}" />57.</rule>58.<rule name="Cat1" stopProcessing="true">59.<match url="^article_cat-([0-9]+).html" />60.<action type="Rewrite" url="article_cat.php?id={R:1}" />61.</rule>62.<rule name="Articles" stopProcessing="true">63.<match url="^article-([0-9]+).html" />64.<action type="Rewrite" url="article.php?id={R:1}" />65.</rule>66.<rule name="Brand4" stopProcessing="true">67.<match url="^brand-([0-9]+)-c([0-9]+)-([0-9]+)-(.+)-([_0-9a-z-]+).html" />68.<action type="Rewrite"url="brand.php?id={R:1}&cat={R:2}&page={R:3}&sort={R:4}&or der={R:5}" />69.</rule>70.<rule name="Brand3" stopProcessing="true">71.<match url="^brand-([0-9]+)-c([0-9]+)-([0-9]+).html" />72.<action type="Rewrite" url="brand.php?id={R:1}&cat={R:2}&page={R:3}" />73.</rule>74.<rule name="Brand2" stopProcessing="true">75.<match url="^brand-([0-9]+)-c([0-9]+).html" />76.<action type="Rewrite" url="brand.php?id={R:1}&cat={R:2}" />77.</rule>78.<rule name="Brand1" stopProcessing="true">79.<match url="^brand-([0-9]+).html" />80.<action type="Rewrite" url="brand.php?id={R:1}" />81.</rule>82.<rule name="Search" stopProcessing="true">83.<match url="^tag-([_0-9a-z-]+).html" />84.<action type="Rewrite" url="search.php?keywords={R:1}" />85.</rule>86.<rule name="Snatch" stopProcessing="true">87.<match url="^snatch-([0-9]+).html" />88.<action type="Rewrite" url="snatch.php?id={R:1}" />89.</rule>90.<rule name="Group_Buy" stopProcessing="true">91.<match url="^group_buy-([0-9]+).html" />92.<action type="Rewrite"url="group_buy.php?act=view&id={R:1}" />93.</rule>94.<rule name="Auction" stopProcessing="true">95.<match url="^auction-([0-9]+).html" />96.<action type="Rewrite" url="auction.php?act=view&id={R:1}" />97.</rule>98.<rule name="Exchange5" stopProcessing="true">99.<match url="^exchange-id([0-9]+).html" />100.<action type="Rewrite" url="exchange.php?id={R:1}&act=view" />101.</rule>102.<rule name="Exchange4" stopProcessing="true">103.<match url="^exchange-([0-9]+)-min([0-9]+)-max([0-9]+)-([0-9]+)-(.+)-([_0-9a-z-]+).html" />104.<action type="Rewrite" url="exchange.php?cat_id={R:1}&integral_min={R:2}&integral_ max={R:3}&page={R:4}&sort={R:5}&order={R:6}" />105.</rule>106.<rule name="Exchange3" stopProcessing="true">107.<match url="^exchange-([0-9]+)-([0-9]+)-(.+)-([_0-9a-z-]+).html" />108.<action type="Rewrite" url="exchange.php?cat_id={R:1}&page={R:2}&sort={R:3}&order ={R:4}" />109.</rule>110.<rule name="Exchange2" stopProcessing="true">111.<match url="^exchange-([0-9]+)-([0-9]+).html" />112.<action type="Rewrite" url="exchange.php?cat_id={R:1}&page={R:2}" />113.</rule>114.<rule name="Exchange1" stopProcessing="true">115.<match url="^exchange-([0-9]+).html" />116.<action type="Rewrite" url="exchange.php?cat_id={R:1}" />117.</rule>118.<rule name="Topic" stopProcessing="true">119.<match url="^topic-([0-9]+).html" />120.<action type="Rewrite" url="topic.php?topic_id={R:1}" />121.</rule>122.</rules>123.</rewrite>124.</system.webServer>125.</configuration>复制代码复制以上代码,重命名成web.config,放于网站根目录下,后台启用伪静态,就可用了!转载注明处处:。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ECSHOP编码规范1.编辑器设定1.1. 缩进所有的缩进使用空格取代Tab制表符。
PHP文件采用4个空格的缩进,HTML文件以及HTML文件中嵌入的Javascript代码采用2个空格的缩进;单独的Javascript以及CSS文件采用4个空格的缩进。
1.2. 字符编码所有PHP、HTML文件均保存为No Bom UTF-8的字符编码。
变量名应当全部小写,并且词语之间以单个下划线分隔。
例如:$current_user 是正确的,但是$currentuser 和$CurrentUser 就不正确。
名称应当是描述性的,并且简明。
我们自然不希望使用冗长的句子作为变量名,但是多输入几个字符总好于疑惑于某个变量到底是干什么用的。
1.3. 循环计数器允许使用一个单字符变量名的唯一情形是当它作为一个循环计数器的时候。
在这种情况下,外层循环的计数器应当始终是$i。
如果有一个循环处于这个循环的内部,它的计数器应当是$j,进而是$k,等等。
如果循环的计数器是一个已经存在并且名字有意义的变量,本规范并不适用。
例如:for ($i = 0; $i < $outer_size; $i++){for ($j = 0; $j < $inner_size; $j++){foo($i, $j);}}1.4. 函数名称函数也应该描述性地命名。
这里我们并非在用C 编程,我们不希望写出诸如“stristr()”此类的函数来。
同上,使用单词间用单下划线分隔的小写名称。
函数名称中某处最好有一个动词。
较好的函数名称如print_login_status(),get_user_data(),等等。
1.5. 函数参数参数遵循和变量名字相同的约定。
我们不希望一堆这样的函数:do_stuff($a, $b, $c)。
在大部分情况下,我们希望仅仅看看函数的声明,就知道怎样使用它。
1.6. 类的名称类的名称首先必须是一个有意义的英文单词或者词组。
同时在书写格式上为了使类名和函数、变量有一个区别,我们要求类的名称全小写的写法,并且加上cls_作为前缀。
例如:/* 错误的写法 *class image_handle {}class imagehandle {}class imageHandle {}/* 正确的写法 *class cls_imagehandle {}1.7. 总结这里的基本哲学是不要为了偷懒而伤害了代码的清晰。
但是,必须由一些常识来掌握这种平衡;例如,print_login_status_for_a_given_user() 做得就过火了——这个函数命名为print_user_login_status() 更好些,或只是print_login_status()。
2.代码布局这里是一个头部的模板,所有的PHP文件的开始都必须包含下面的内容:/*** ECSHOP 升级程序之控制器*================================================================= ===========* 版权所有 (C) 2005-2007 康盛创想(北京)科技有限公司,并保留所有权利。
* 网站地址: *----------------------------------------------------------------------------* 这是一个免费开源的软件;这意味着您可以在不用于商业目的的前提下对程序代码 * 进行修改、使用和再发布。
*================================================================= ===========* $Author$* $Date$* $Id$*/2.1. 注释的写法根据流行的注释写法我们要求对于代码段的注释采用以下的方式来书写:/* 注释内容 */对于单行的注释则使用下面的注释形式,注意在//之后有一个空格:define(…IN_ECS‟, ture); // 注释内容2.2. 始终包含大括号这是因为懒于多敲两个字符而给代码清晰带来问题的又一个情形。
尽管有些结构的主体部分只有一行,千万不要丢掉大括号。
绝对不要。
例如:/* 这些都错了 */if (condition) do_stuff();if (condition)do_stuff();while (condition)do_stuff();for ($i = 0; $i < size; $i++)do_stuff($i);/* 这些是对的 */if (condition){do_stuff();}while (condition){do_stuff();}for ($i = 0; $i < size; $i++){do_stuff();}2.3. 大括号放在哪儿这一点是网络上争论比较多的一部分,但是我们将使用一种可以用一句话总结的风格:大括号始终独占一行。
终止大括号还应当与起始大括号处在同一列上。
例如:if (condition){while (condition2){...}}else{...}for ($i = 0; $i < $size; $i++){...}while (condition){...}function do_stuff(){...}2.4. 符号之间使用空格这是不用太费事就可以保持代码可读性的另一个简单,容易的步骤。
无论何时你写一个赋值,表达式,等等,始终在符号之间保留一个空格。
基本上,把代码当作英语来写。
在变量名和运算符之间插入空格。
不要在起始括弧后或者终止括弧前加空格。
不要在逗号或者分号之前加空格。
一些例子很好地展示了这一点。
例如:/* 每一对给出了错误方式,紧跟正确方式。
*/$i=0;$i = 0;if($i<7) ...if ($i < 7) ...if ( ($i < 7)&&($j > 8) ) ...if (($i < 7) && ($j > 8)) ...do_stuff( $i, "foo", $b );do_stuff($i, "foo", $b);for($i=0; $i<$size; $i++) ...for($i = 0; $i < $size; $i++) ...$i=($j < $size)?0:1;$i = ($j < $size) ? 0 : 1;2.4.1.字符串连接符当使用字符串连接符时必须在句点(.)两侧加上空格。
// 错误的写法$str = …<img src=”‟.$thumb_url.‟” />‟;$str = …<img src=”‟ .$thumb_url. …”/>‟;// 正确的写法$str = …<img src=”‟ . $thumb_url . …” />‟;2.5. 运算符优先级你知道PHP 中所有运算符的详细的优先级吗?我也不知道。
不要猜。
始终用括号强制一个表达式的优先级可以使优先级明显,这样你知道它会做些什么。
例如:/* 结果是什么?谁知道? */$bool = ($i < 7 && $j > 8 || $k == 4);/* 现在你确定这里我在做什么了。
*/$bool = (($i < 7) && (($j < 8) || ($k == 4)))2.6. 空行的使用谁也不愿意看到挤在一堆的无序的代码。
我们在写代码的时候总是会利用一些空行来增加代码可读性。
合理的利用空格来区分代码段会使代码的逻辑思路更加明确。
我们强行规定的空行有以下两种情况:1、<?php 之后必须有且只有1个空行2、?> 之前必须有且只有1个空行3、两个函数之间必须有1个空行。
4、return、die、exit之前如果有其他语句的情况下应加上一个空行。
在代码中我们不允许仅有空格的空行,并且不允许在行尾有多余的空格。
3.SQL 语句3.1. SQL 代码布局既然我们都在使用不同的编辑器设置,不要尝试去做诸如在SQL 代码中实现列对齐此类的麻烦事。
要做的是,不管用何种方法,把语句断行到它们单独的行上去。
这里有一个SQL 代码看上去应该是什么样子的示例。
注意在哪里断行,大写,和括号的用法。
例如:SELECT field1 AS something, field2, field3FROM `table` a, `table` bWHERE (this = that) AND (this2 = that2)3.2. 表名和字段值SQL语句中的表名必须使用`符号包含起来;同时所有字段值的变量名必须包含在单引号之内,即便是整数值也必须有单引号。
例如:// 这是错误的INSERT INTO mytable (col1, col2, col3)VALUES ($val1, $val2, $val3)// 这是正确的INSERT INTO `mytable` (col1, col2, col3)VALUES (…$val1‟, …$val2‟, …$val3‟)3.3. SQL select 语句在已知需要查询的字段的前提下,不允许使用如下的代码:SELECT * FROM `mytable`取而代之的写法是将每一个字段名写上去,请不要偷懒。
SELECT col1, col2, col3 FROM `mytable`在需要获得已知记录数量情况下,请使用LIMIT offset, count 的方式,尽量不要使用无LIMIT 的SELECT 语句。
在需要或者满足条件的记录数量的情况下,请使用SELECT count(*|expr) FROM 的方式,尽量不要使用SELECT expr FROM 的方式。
需要进行逻辑运算的时候,尽量不要使用不等于,可以使用大于或者小于的方式。
3.4. SQL insert 语句SQL INSERT 语句可以写成两种不同方式。
或者你明确指明要插入的列,或者你已经知道数据中各列的顺序,不用详细指定它们。
我们希望使用前一种方法,也就是详细说明插入哪些列。
这意味着应用程序代码不会依赖于数据库中字段的顺序,也不会因为我们增加另外的字段而崩溃(当然,除非它们被指定为NOT NULL)。
例如:# 这不是我们想要的INSERT INTO `mytable`VALUES ('something', 1, 'else')# 这是正确的。