ThinkPHP 3.2.3心得
个人还是蛮喜欢tp的比其他的php框架轻(只接触过drupal、tp),而且上手容易(struts这种action的方式,对于java程序员来说)。目录结构也比较简单易懂,提供的一些函数也比较实用。对初学者来说还是蛮容易的,只是有点反感文件命名XXXX.class.php,感觉有点像是在宣誓作者是java从业者一样。默认的thinkphp模板引擎也还不错,感觉比drupal的theme函数要容易上手。
关键目录说明
/index.php 入口文件,自定义的常量可以在这里进行定义。
/ThinkPHP 目录为tp的核心目录,里面包括lib,mode,lang,conf,common等目录,配置,模板处理等等相关的函数都在该目录。
/Application 应用目录,自己的应用目录,Common/Common/function.php公共函数定义文件,Common/Conf/conf.php应用配置文件(变量参考核心目录的conf/convention.php),
Runtime 运行时目录,会生成相应的运行时文件,有些错误可以通过查看对应的运行时文件寻找。
e.g入口文件index.php
// 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false
//define('APP_DEBUG',True); // 定义应用目录
define('APP_PATH','./Application/'); header("content-type:text/html;charset=utf-8"); /***此处代码为自定义的一些常量 begin***/
define('WEB_PATH','/');//站点路径
define('WEB_NAME','文件管理系统');//站点名称
define('SOURCE_PATH','/resource/');//资料路径
define('SOURCE_CSS_PATH',SOURCE_PATH.'css/');//css路径
define('SOURCE_JS_PATH',SOURCE_PATH.'js/');//js路径
define('SOURCE_IMG_PATH',SOURCE_PATH.'images/');//图片路径
define('UPLOAD_ROOT', 'Upload');//根目录文件名
define('UPLOAD_ROOT_PATH','E:/var/www.tp.com/'.UPLOAD_ROOT);//文件创建路径
define('PAGE_SIZE', 13);//分页设置
e.g应用配置文件
//'配置项'=>'配置值'
//使用url重写模式
'URL_MODEL' => 2, //开启页面trace
'SHOW_PAGE_TRACE' => false, /* 数据库设置 */
'DB_TYPE' => 'mysql', // 数据库类型
'DB_HOST' => 'localhost', // 服务器地址
'DB_NAME' => 'filesystem', // 数据库名
'DB_USER' => 'root', // 用户名
'DB_PWD' => '', // 密码
'DB_PORT' => '3306', // 端口
'DB_PREFIX' => 'fs_', // 数据库表前缀
'DB_PARAMS' => array(\PDO::ATTR_CASE => \PDO::CASE_NATURAL), // 数据库连接参数
'DB_DEBUG' => TRUE, // 数据库调试模式 开启后可以记录SQL日志
'DB_FIELDS_CACHE' => false, // 启用字段缓存
'DB_CHARSET' => 'utf8', // 数据库编码默认采用utf8
'DB_DEPLOY_TYPE' => 0, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
'DB_RW_SEPARATE' => false, // 数据库读写是否分离 主从式有效
'DB_MASTER_NUM' => 1, // 读写分离后 主服务器数量
'DB_SLAVE_NO' => '', // 指定从服务器序号 /* SESSION设置 */
'SESSION_AUTO_START' => true, // 是否自动开启Session
'SESSION_OPTIONS' => array('name' => 'session', //设置session名
'expire' => 3600*2, //SESSION保存2小时
'use_trans_sid' => 1, //跨页传递
'use_only_cookies' => 0, //是否只开启基于cookies的session的会话方式
), // session 配置数组 支持type name id path expire domain 等参数
'SESSION_TYPE' => '', // session hander类型 默认无需设置 除非扩展了session hander驱动
'SESSION_PREFIX' => '', // session 前缀 'TMPL_CACHE_ON' => false, // 默认开启模板编译缓存 false 的话每次都重新编译模板
'ACTION_CACHE_ON' => false, // 默认关闭Action 缓存
ThinkPHP 3.2.3心得的更多相关文章
- ThinkPHP使用方法与心得
ThinkPHP相信PHP程序员对它并不陌生,通过自己的学习在此发表个人看法,也为以后自己查找ThinkPHP方面的知识更加方便. 一.mvc及数据库CURD操作流程: 1.新建数据库:数据库名称:1 ...
- ThinkPhp 源码阅读心得
php 中header 函数 我可能见多了,只要用来跳转.今天在阅读TP源码的时候发现,header函数有第三个参数.有些困惑所以找到手册查阅下,发现 void header ( string $st ...
- thinkphp框架使用心得
接触的第一个PHP框架就是TP,在使用的了一段时间后就放弃了,说实话TP的弊端挺多,之后又接触laravel框架,慢慢的就爱上laravel这个框架了.这段时间由于公司的原因,又不得不使用thinkp ...
- thinkphp新的心得
1,代码的高度复用 1,js的删除,弹出框都可以用嵌入的js,不用每个页面都写 2,控制器的初始化函数可以实现配置某些变量,比如admin模块的topic控制器的初始化函数可以 $this->o ...
- (转)ThinkPHP使用心得分享-分页类Page的用法
转之--http://www.jb51.net/article/50138.htm ThinkPHP中的Page类在ThinkPHP/Extend/Library/ORG/Util/Page.clas ...
- Yii和ThinkPHP对比心得
本人小菜鸟一只,为了自我学习和交流PHP(jquery,linux,lamp,shell,javascript,服务器)等一系列的知识,小菜鸟创建了一个群.希望光临本博客的人可以进来交流.寻求共同发展 ...
- thinkphp中field方法
hinkPHP的CURD操作中有很多非常实用的方法,从这篇开始,我们会为大家一一介绍. 首先为大家介绍下field方法的用法.field属于模型的连贯操作方法之一,主要目的是标识要返回或者操作的字段, ...
- 转载--thinkphp框架的路径问题 - 总结
转自:http://blog.sina.com.cn/s/blog_827ddd950100ulyv.html TP中有不少路径的便捷使用方法,比如模板中使用的__URL__,__ACTION__等, ...
- ThinkPHP CURD方法盘点:field方法
ThinkPHP的CURD操作中有很多非常实用的方法,从这篇开始,我们会为大家一一介绍. 首先为大家介绍下field方法的用法.field属于模型的连贯操作方法之一,主要目的是标识要返回或者操作的字段 ...
随机推荐
- genymotion模拟器相关知识
最近学react用到了Genymotion模拟器,但是因为墙的原因,遇到了很多阻碍,例如以下几种: 这里分享一个手动下载模拟器的方法. 1. 找到以下路径:C:\Users\Administrato ...
- cmd 打开gitshell
C:\Users\Username\AppData\Local\GitHub\GitHub.appref-ms --open-shell
- eclipse快捷键用不了
ctrl+shift+R是eclipse最常用的快捷键之一,用于打开资源,输入文件名或文件名中的前几个字母,就可以打开工作区中任意文件 今天在打开eclipse,使用该快捷键时,提示“该快捷方式所指向 ...
- 验证页面多个input文本的必填项
前台页面 JS : function CheckMustWrite(){ var count = $("input[mustwrite = 'true']", document.f ...
- Get IP Address in Android 4.0+
在android2.3以下的系统中,可以使用如下的代码来获取Android系统的本地IP地址: [java] private String getLocalIPAddress() throws So ...
- 探索javascript----我对渐变轮播图的理解
对于一个没有编程基础的人来说,我时常希望能有人告诉我,当我们看到一个效果的时候,该怎样有条理地分析出它的行为,而我自己有必要加强这方面的 自省,对于一个轮播图我是这样看的,自动播放必然带有一个定时器, ...
- Android常见控件— — —ProgressBar
ProgressBar用于在界面上显示一个进度条,表示我们的程序正在加载一些数据. <?xml version="1.0" encoding="utf-8" ...
- 关于jquery中的事件绑定bind()和live()
live可以说是bind是方法的变种. 二者的主要区别就是live方法的作用机理是事件委托,live方法的作用机理是将事件绑定DOM的根节点上. live方法的处理机制就是把事件绑定在DOM树的根节点 ...
- poj1502 spfa最短路
//Accepted 320 KB 16 ms //有n个顶点,边权用A表示 //给出下三角矩阵,求从一号顶点出发到各点的最短路的最大值 #include <cstdio> #includ ...
- Struts 2开讲了!!!
首先我们要知道我们为什么要学习Struts2这门技术? Struts2是java程序员所必需学习的一门技术几乎面试都会提起! Struts英文单词是什么意思,怎么理解? 翻译:支柱,支杆,来源于建筑和 ...