Thinkphp
1. 配置gvim
?
打开安装目录下的_vimrc文件,添加 ? set nu! 显示行数 ? colorscheme darkblue 背景颜色设置为深蓝色 ? gvim配置不自动生成备份文件
默认情况下用gVim编辑文件时,会自动生成带~的备份文件。如果不想在编辑文件时自动生成备份文件的话,可以这么做:打开gVim安装目录下的vimrc_example.vim,将其中的如下部分中的else语句用引号注释掉: if has(\
set nobackup \else
set backup \即将上面四句改为: if has(\
set nobackup \\
\ \里,else部分用双引号注释掉即可。set backup是设置使用自动生成备份文件的命令。 ? windows上gvim的编码设置
Windows系统默认的编码是cp936,所以用gvim一打开文件,默认是用gb2312编码打开的。这导致很多时候打开的文件是乱码,不能正常显示,那要怎么解决这个问题呢?很简单,看下面的设定: 打开gvim,到菜单栏找到“编辑”,在下拉菜单找到“启动设定”
点击 “启动设定” 进去,你会看到相应的配置文件
在文件的末尾加入如下设定: set encoding=utf-8
set fileencodings=utf-8,chinese,latin-1 if has(\
set fileencoding=chinese else
set fileencoding=utf-8 endif
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
language messages zh_CN.utf-8
保存后退出gvim,重新启动,惊喜出现了,乱码不见了,是不是很简单,可以动手试一试了!
2. 配置项目文件(__ROOT__\\Home\\Conf\\config.php)
'URL_PATHINFO_DEPR'=>'-',//修改URL的分隔符 'TMPL_L_DELIM'=>'<{', //修改左定界符 'TMPL_R_DELIM'=>'}>', //修改右定界符 'DB_TYPE'=>'mysql', //设置数据库类型 'DB_HOST'=>'localhost',//设置主机
'DB_NAME'=>'thinkphp',//设置数据库名 'DB_USER'=>'root', //设置用户名 'DB_PWD'=>'', //设置密码 'DB_PORT'=>'3306', //设置端口号 'DB_PREFIX'=>'tp_', //设置表前缀
'DB_DSN'=>'mysql://root:@localhost:3306/thinkphp',//使用DSN方式配置数据库信息
'SHOW_PAGE_TRACE'=>true,//开启页面Trace
'TMPL_TEMPLATE_SUFFIX'=>'.html',//更改模板文件后缀名 'TMPL_FILE_DEPR'=>'_',//修改模板文件目录层次 'TMPL_DETECT_THEME'=>true,//自动侦测模板主题 'THEME_LIST'=>'your,my',//支持的模板主题列表
'TMPL_PARSE_STRING'=>array( //添加自己的模板变量规则 '__CSS__'=>__ROOT__.'/Public/Css', '__JS__'=>__ROOT__.'/Public/Js', ),
'LAYOUT_ON'=>true,//开启模板渲染
'URL_CASE_INSENSITIVE'=>true,//url不区分大小写
'URL_HTML_SUFFIX'=>'html|shtml|xml',//限制伪静态的后缀 'APP_GROUP_LIST' => 'Home,Admin', //项目分组设定 'DEFAULT_GROUP' => 'Home', //默认分组
3. 项目配置(__ROOT__\\index.php)
?>
//3.开启调试模式
define('APP_DEBUG',true); //4.应用核心文件
require './ThinkPHP/ThinkPHP.php'
4. 开启调试功能
? ?
开启调试功能(在项目文件夹下的index.php中) define('APP_DEBUG',true);
我们需要设置配置文件(Conf/config.php),开启页面trace 'SHOW_PAGE_TRACE'=>true,//开启页面Trace
5. url的4种访问方式
? ? ? ?
PATHINFO 模式 -- 重点!!!!!!
http://域名/项目名/入口文件/模块名/方法名/键1/值1/键2/值2 普通模式
http://域名/项目名/入口文件?m=模块名&a=方法名&键1=值1&键2=值2 REWRITE模式
http://域名/项目名/模块名/方法名/键1/值1/键2/值2 兼容模式
http://域名/项目名/入口文件?s=模块名/方法名/键1/值1/键2/值2
6. 获取url中的参数
$id=$_GET['id'];
7. 获取表单中的数据
html中的form表单如下
获取表单数据的Action对象函数如下 public function do_login(){ echo \ dump($_POST['username']); }
注:如果表单中的method=\则上述函数中的$_POST要改为$_GET
8. 超链接地址的写法
同项目下的超链接可不写ip地址 如要访问项目thinkphp下的UserAction中的delete函数,可写为
但是为了防止因项目名称(thinkphp)的更改,导致系统不能使用,可使用”__URL__”替换”/thinkphp/index.php/User/”,如以上地址改写为
9. 将两个字符串合并
$m->where(\也可以是单引号
10. ThinkPHP 3 的输出
? ?
通过 echo 等PHP原生的输出方式在页面中输出 通过display方法输出,如
想分配变量可以使用assign方法,如在Action中
// 本类由系统自动生成,仅供测试用途 class IndexAction extends Action { public function index(){
$this->assign('name','yinliang'); //给变量name分配值yinliang $this->display(); //输出Home\\Tpl\\Index\\index.html }
public function show(){ echo \ } } ?>
在Home\\Tpl\\Index\\index.html中要访问name变量可以在文件中添加{$name}(修改了左右定界符的则把{,}分别修改为修改后的左右定界符) 修改左右定界符(为了防止{$data }与Jquery语法混淆) 休要修改配置文件(Conf/config.php)中的配置项 'TMPL_L_DELIM'=>'<{', //修改左定界符 TMPL_R_DELIM'=>'}>', //修改右定界符
?
11. ThinkPHP 3 的模型使用 (与数据库链接,操作数据库)
?
配置数据库(在Conf/config.php中配置数据库相关信息)
'DB_TYPE'=>'mysql', //设置数据库类型 'DB_HOST'=>'localhost',//设置主机
'DB_NAME'=>'thinkphp',//设置数据库名 'DB_USER'=>'root', //设置用户名 'DB_PWD'=>'', //设置密码 'DB_PORT'=>'3306', //设置端口号
? ?
?
?
?
'DB_PREFIX'=>'tp_', //设置表前缀加表前缀是为了更好的区分表,比如 cw_代表财务 cg_代表采购,如果没有表前缀,则将tp_去掉即可 也可以使用DSN方法进行配置
'DB_DSN'=>'mysql://root:@localhost:3306/thinkphp',//使用DSN方式配置数据库信息
如果两种方式同时存在,以DSN方式为优先 在Action的index函数中获取值 public function index(){ $m=new Model(User);//记住U大写
$arr=$m->select();//user表中的所有数据都被放到数组$arr中
$this->assign('name',$arr[1]['username']);//将name赋值为数组$arr中下标为
//1的元素的username的值
$this->display();
}
还有一种简单实用模型的方式
M() 等效为 new Model(); $m=M('User'); $arr=$m->select();
使用模型的实例可以对数据进行操作,操作的工作一般就是对数据库进行 增删改查 CURD
增 -C Create $m->add() 删 -D Delete $m->delete() 改 -U Update $m->save() 查 -R Read $m->select() 模板可以遍历数组 html页面中
在Action中的index中给array赋值 public function index(){
$m=new Model(User); $arr=$m->select();
$this->assign('array',$arr);
$this->assign('name',$arr[1]['username']); $this->display();
}
12. ThinkPHP 3.1.2 CURD特性
?
ThinkPHP 3 读取数据 对数据的读取 Read $m=new Model('User'); $m=M('User');