TP开发小技巧
原文地址
http://wp.chenyuanzhao.com/wp/2016/07/23/tp%E5%BC%80%E5%8F%91%E5%B0%8F%E6%8A%80%E5%B7%A7/

http://wp.chenyuanzhao.com/wp/2016/07/23/tp%E5%BC%80%E5%8F%91%E5%B0%8F%E6%8A%80%E5%B7%A7/

一、前端
1、开发时间段禁止js,和css缓存,使用模板引擎在固定后缀加版本号或随机数

/* 模板相关配置 */
'TMPL_PARSE_STRING' => array(
'__PUBLIC__' => __ROOT__ . '/Public',
'.css"' => '.css?v='.time().'"',
'.js"' => '.js?v='.time().'"',
),
2、上传图片,最好使用base64,后台容易接收和保存

3、页面模板跟后台输出方法名一致,容易记忆不会歧义

4、上传表单时,键值名跟数据表一致,容易记忆不会歧义,安全问题不在字段名称上,别名不会更安全

二、后端
1、index.php设置

1
define("RUNTIME_PATH", './Runtime/');
2、配置一个上传目录 ,方便迁移
‘Uploads’=>’./Public/Uploads’,
3、上传的图片,本地保存不需要后缀

4、控制器最后不要写太多逻辑(少代码可以),逻辑写到model里面

5、不需要对多种url模式提供支持,现代搜索引擎没有那么低能,url已经没有seo作用

6、使用行为做权限控制,比继承控制器好用

7、可以对框架直接修改,但只能辅助性修改,新增删除都不会对业务逻辑影响

8、调试,修改tp的\ThinkPHP\Library\Think\controllerclass.php

protected function display($templateFile='',$charset='',$contentType='',$content='',$prefix='') {
trace($this->view);
$this->view->display($templateFile,$charset,$contentType,$content,$prefix);
}
配置文件 添加

1
'SHOW_PAGE_TRACE' =>true,
可以trace直接看到控制器赋值给模板的参数

9、session 不要放太多信息,除了user_id外,其他信息只能作为缓存类信息,不能直接获取
(保存在session不会更方便,如果保存很多信息,会造成混乱)

10、不要太多全局方法,最好写成对象,除了每个页面都要用到的,可以直接写成全局方法

11、修改tp的Build.class.php类,修改继承类为一个总控制器,方便显示404页面

12、A()、R()、D()是快捷实例对象,但他们会对新手误导,以为只能用他们实例化,对于静态方法,他们就没用了
勇敢用命名空间实例自己的类吧

三、数据库设计

1、禁忌过度的设计,例如总想分表,大数据的。

如果是log类型的分表的好的。

但是,对于有关系的数据表,一旦分表,意味着,你的代码量,复杂度,对成倍增加,拖慢项目速度。
而且,哪有这么多大数据,大流量,不要一开口就是淘宝天猫,人家淘宝刚开始开发时候有吗?
用户都是慢慢增长的,网站也不可能完成后都不维护。

随着用户增长,到了大流量时候,完全有时间金钱,升级、分流。
在不修改代码下,也可以升级硬件,对数据库分区分库,还可以变成meger表。
N多工具可以提升速度

TP开发小技巧的更多相关文章

  1. Windows统一平台: 开发小技巧

    Windows统一平台: 开发小技巧 技巧一: 在手机端拓展你应用的显示区域.(WP8.1中也适用) 对于Windows Phone系统的手机, 手机屏幕最上方为系统状态栏(System Tray), ...

  2. flex开发小技巧集锦

    关于flex开发网上有非常多的相关信息介绍,因此我们要想学习关于flex开发的知识信息技能是一件非常简单和方便的事情.而针对于flex开发小编要告诉大家的是一些flex开发小技巧.利用这些小技巧能够有 ...

  3. 移动Web开发小技巧

    移动Web开发小技巧 添加到主屏后的标题(IOS) name="apple-mobile-web-app-title" content="标题"> 启用  ...

  4. BizTalk开发小技巧

    BizTalk开发小技巧 随笔分类 - Biztalk Biztalk 使用BizTalk实现RosettaNet B2B So Easy 摘要: 使用BizTalk实现RosettaNet B2B ...

  5. Java开发小技巧(三):Maven多工程依赖项目

    前言 本篇文章基于Java开发小技巧(二):自定义Maven依赖中创建的父工程project-monitor实现,运用我们自定义的依赖包进行多工程依赖项目的开发. 下面以多可执行Jar包项目的开发为例 ...

  6. iOS开发小技巧 - UILabel添加中划线

    iOS开发小技巧 遇到的问题: 给Label添加中划线,然后并没有效果 NSString *str = [NSString stringWithFormat:@"合计金额 ¥%.2f&quo ...

  7. PHP开发小技巧②—实现二维数组根据key进行排序

    在PHP中内置了很多对数组进行处理的函数,有很多时候我们直接使用其内置函数就能达到我们的需求,得到我们所想要的结果:但是,有的时候我们却不能通过使用内置函数实现我们的要求,这就需要我们自己去编写算法来 ...

  8. PHP开发小技巧③—实现多维数组转化为一维数组

    在平常的项目开发中我们多会用到让多维数组转化为一维数组的情况,但是很多Programmer不会将其进行转化,也有些没有想到很好的算法然后经过乱起八糟的运算方式将其勉强转化好,但是所写的程序代码冗余非常 ...

  9. PHP开发小技巧①①—php实现手机号码显示部分

    从个人信息保护性的角度来讲,我们在开发过程中总会想办法去保护用户的一些个人信息.就如本篇博文所讲,我们有时会将用户的手机号码只显示出部分,这是很多网站都有做的功能.这个功能实现起来也是特别的简单,只需 ...

随机推荐

  1. 【宽搜】ECNA 2015 E Squawk Virus (Codeforces GYM 100825)

    题目链接: http://codeforces.com/gym/100825 题目大意: N个点M条无向边,(N<=100,M<=N(N-1)/2),起始感染源S,时间T(T<10) ...

  2. 【动态规划】【归并】Vijos P1412 多人背包

    题目链接: https://vijos.org/p/1412 题目大意: 求01背包的前K优解,要求必须装满(1<=K<=50 0<=V<=5000 1<=N<=2 ...

  3. Nodejs in Visual Studio Code 08.IIS

    1.开始 本文部分内容均转载自文章: http://www.hanselman.com/blog/InstallingAndRunningNodejsApplicationsWithinIISOnWi ...

  4. nyoj 222 整数中的1个数以及这类问题

    之前也写过一篇这样的文章,但是隔了这么久,竟然忘了.还是要有清晰的思路,才能真正的掌握. 这道题是这样的: 给出两个非负32位整型范围内的数a,b,请输出闭区间[a,b]内所有数二进制中各个位的1的总 ...

  5. hdu 4579 博弈+区间dp

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4597 #include <cstdio> #include <cstring> ...

  6. selenium webdriver python 操作Chrome浏览器

    Step1: 下载chromedriver. 下载路径: http://chromedriver.storage.googleapis.com/index.html 选择一个合适的下载即可.我下载的是 ...

  7. 吉哥系列故事--完美队形 - HDU 4513 (Manacher)

    分析:刚开始的想法是匹配出来每个点的最大回文串,然后用每个点的最大不下降序找一个最小值,不过不明白为什么不对....很无奈,再匹配的时候加一些判断就可以过,或许还有什么没想到的地方吧.....   代 ...

  8. 关于lucene的IndexSearcher单实例,对于索引的实时搜索

    Lucene版本:3.0 一般情况下,lucene的IndexSearcher都要写成单实例,因为每次创建IndexSearcher对象的时候,它都需要把索引文件加载进来,如果访问量比较大,而索引也比 ...

  9. 实战:sqlserver 数据实时同步到mysql

    1.安装安装mysqlconnector 2.配置mysqlconnector ODBC数据管理器->系统DSN->加入->mysql ODBC 5.3 ANSI driver-&g ...

  10. ScriptManager的使用方法

    脚本管理控件(ScriptManger)是ASP.NET AJAX中很重要的控件,通过使用ScriptManger可以进行整个页面的局部更新的管理.ScriptManger用来处理页面上局部更新,同一 ...