18
眯眯眯眯眯眯眯眯眯 Author: [email protected] http:// www.mimigou.com 2013-01-10

Php study.20130110

Embed Size (px)

DESCRIPTION

ABOUT php study.

Citation preview

Page 1: Php study.20130110

眯眯购站点开发分享Author:

[email protected] http://www.mimigou.com2013-01-10

Page 2: Php study.20130110

TOPIC

• 眯眯购站点简介

• 眯眯购架构

• PHP 语言

• 数据库设计介绍

Page 3: Php study.20130110

眯眯购

• 一、定位• 大型导购互动分享社区。

• 二、用户情况:• PV 3 K; IP:500

• 注册用户: 3K

Page 4: Php study.20130110

眯眯购站点各阶段版本进化

• 1.0 版;第一版本; 基础模块建立,商品、好店、名牌、活动,用户;

• 2.0 版;前台页面重新设计。对模块进行升级。

• 后台操作功能更多,更方便。

• 3.0 版;对部分小模块进行升级,如用户账户(发邮件找回密码,第三方登录激活本地账户),礼品管理,积分管理,短信息管理。

• 4.0 用户宝贝分享,明星搭配……

• ………

Page 5: Php study.20130110

眯眯购 web 1.0

• 一

Page 6: Php study.20130110

眯眯购 web 2.0

• 一、

Page 7: Php study.20130110

站点架构 - 基础

• LNMP =

(Linux 、 Nginx 、 MySQL 、 PHP)

• Linux : centos6

• Nginx :

• Mysql : 5.0+

• PHP: 5.3.5

• 搜索: lucene

Page 8: Php study.20130110

使用的框架

• Mxigniter

• Mxigniter 是什么? Codeingiter 的

super 版 ; 兼容 codeigniter.

• Codeigniter 是什么? 流行的 PHP 开源开发框架。

Page 9: Php study.20130110

为什么选择 mxigniter ?• 架构清晰: 基于 HMVC 的架构

• 数据库支持 ORM 操作;

• 工具类库丰富。

• Codeigniter 中文文档齐全,学习低成本,高效率。

• Template (模板引擎) , route( 路由 ),

theme (主题), httpsqs (队列), email……

Page 10: Php study.20130110

Mxigniter 和 Codeigniter的对比

• HMVC VS MVC

• 明确各种资源路径存放

• 完善的 ORM

• 丰富的开源软件支持;httpsqs , memcache , scws

• …….

Page 11: Php study.20130110

框架文件目录•

Page 12: Php study.20130110

1 个简单的数据操作范例• $this->load->model(‘goods_m’); // 载

入商品类

• $list=$this->goods_m->limit(10)-

>get_all(); // 获取数据

• $this->load->library(‘cache’); // 载入缓存类

• $this->cache->set(‘goods_list’, $list);//

存缓存

• $this->cache->get(‘goods_list’); // 取缓存

Page 13: Php study.20130110

程序发布流程

Page 14: Php study.20130110

编程细节

• 内存的使用。不在代码里进行复杂的计算。

• 使用类 (虽然也支持函数),使代码清晰。

• 语法方面参考手册;中文手册下载

• 用 if(){

• } 还是 if()

• {

• }

Page 15: Php study.20130110

数据表设计规则

• 1 不要去设计完全符合三大范式的数据库;

• 2 、减少使用 join 去全局搜索。 why ?当水平分表的时候,该方式的语句都要改掉。

• 3 、必要的字段冗余。

• 4 、良好的数据库索引;涉及到前台经常使用的查询和 join 的字段,要给其加上索引。

Page 16: Php study.20130110

数据表设计规则

• 5 尽量 cache ,少 sql; sql 是涉及到 IO 的瓶颈。

• 6 数据库撑不了,就用缓存。

• 7 只取自己需要了,例如列表中,新闻的 description就不要取出来。

Page 17: Php study.20130110

数据表设计规则

• 8 、字段定义不要默认设置为 null ,而是这样 'name' varchar(30) not null default ''; 。 why ? null占用空间, '' 不占用;其次,会混淆。比如 0 和 null以及 '' 是否一致, php这种弱类型语言,会认为是一致了,但有些数据库不这么认为。

• 9 、写高效的 mysql 。避免多次读取数据库,最好是一两次查询解决问题,而不是多次循环。目的还是 IO 的性能。

• 10 、把表设置为 innodb 类型。 why ?支持事务、行锁;当然如果,你的表是读取很多,写入很少,还是用 myisam 更合适。

Page 18: Php study.20130110

谢谢

一切都很美好,我们幻想着春天来了。春天没有来。