下载地址:
新版本问题比较多,目前使用3.2.3的最高版本
http://www.thinkphp.cn ,我这里选择下载的是3.2.3完整版
下载完后需要运行index.php文件,搭建项目
thinkPHP3.2.3完全开放手册:
https://www.kancloud.cn/manual/thinkphp/1678
ThinkPHP是MVC开发模式
M -Model 编写model类,对数据进行操作
V-View 编写html文件,页面呈现
C-Controller 编写类文件(xxx.class.php)
ThinkPHP入口文件配置
// 检测PHP环境
if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !');
// 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false,配置文件可以立即生效,没有缓存
define('APP_DEBUG',True);
// 定义应用目录
define('APP_PATH','./Application/');
// 引入ThinkPHP入口文件
require './ThinkPHP/ThinkPHP.php';
config.php配置
文件路径:application/Home/Conf/config.php
'URL_PATHINFO_DEPR'=>'/',//修改url的分割符
'TMPL_L_DELIM'=>'<{',//修改左定界符
'TMPL_R_DELIM'=>'}>',//修改右定界符
//配置数据库普通配置方式
'DB_TYPE'=>'mysql',//数据库类型
'DB_HOST'=>'127.0.0.1',//主机名字
'DB_NAME'=>'testTP',//数据库的名字
'DB_USER'=>'root',//账号
'DB_PWD'=>'rootroot',//密码
'DB_PORT'=>'3306',//端口
'DB_PREFIX'=>'tt_',//表前缀
//数据库简洁配置方式,如果两种都配置了,系统默认选择简洁方式读取
'DB_DSN'=>'mysql://root:rootroot@127.0.0.1:3306/testTP',//简洁的数据库配置,
'SHOW_PAGE_TRACE'=>true,//开启调试模式,可以在h5页面调试
'TMPL_TEMPLATE_SUFFIX'=>'.html',//修改view的后缀名规范
'TMPL_FILE_DEPR'=>'/',//修改模板文件目录层次
'DEFAULT_THEME'=>'index',//设置模板主题
'TMPL_DETECT_THEME'=>true,//自动侦测模板主题
'THEME_LIST'=>'your,my',//支持的模板主题
'TMPL_PARSE_STRING'=>array(
'__CSS__'=>'__ROOT__/public/css',
'__JS__'=>'__ROOT__/public/js'
),//自定义模板变量规则
模型使用
控制器C
<?php
namespace Home\Controller; //模型所在的位置
use Think\Controller; //引用类文件
use Think\Model; //实例模型用new Model();方法的话需要引用这个类文件
class IndexController extends Controller {//控制器的命名规则一定要加Controller,类名对应View文件夹下面的Index文件夹
public function index(){//方法名对应Index文件夹下的index.html
$m = new Model('User');
$m = M('User');
$arr = $m->select();//调用数据库表数据下节课会详细讲解CURD
$this->assign("name", $arr);
$this->assign("list", $arr);//通过assign方法给view输出数据
$this->display(); //调用Index/index.html
}
}
控制器更多使用可以查看:https://blog.youkuaiyun.com/HYQ_java/article/details/81127377
界面V
路径:Home/View/Index/index.html 。路径和控制器类名、方法名对应
<!DOCTYPE html>
<html>
<head>
<title>标题</title>
</head>
<body>
<!-- <{这个是定界符,在config.php设置}> -->
<div>hello!!!!<{$name}></div>
<!-- volist用来遍历数组 -->
<volist name="list" id="item">
<{$item.id}>===<{$item.user_name}>
</volist>
</body>
</html>
a.规则
模板文件夹下view/分组文件夹/模板文件夹/模块同名文件夹/方法同名文件夹index.html
'TMPL_TEMPLATE_SUFFIX'=>'.html',//修改view的后缀名规范
b.修改模板目录层次
'TMPL_FILE_DEPR'=>'/',//修改模板文件目录层次
c.模板主题
可以通过url传递 t=主题 参数可以修改不同的模板
'DEFAULT_THEME'=>'index',//设置模板主题
'TMPL_DETECT_THEME'=>true,//自动侦测模板主题
'THEME_LIST'=>'your,my',//支持的模板主题
url的四种访问方式
1.PATHINFO模式
http://域名/项目名/入口文件/home/模块名/方法名/键1/值1/键2/值2
可以在home/conf/config.php里配置属性
'URL_PATHINFO_DEPR'=>'-',//修改url的分割符
2.普通模式
http://域名/项目名/入口文件/home?m=模块名&a=方法名&键1=值1&键2=值2
3.REWRITE模式
需要配置服务器文件,可以在访问url的时候隐藏入口文件
修改httpd.conf服务器文件,把LoadModule rewrite_module libexec/apache2/mod_rewrite.so前面的#去掉
如果是Apache则需要在入口文件的同级添加.htaccess文件,内容如下:
注意:我用mac电脑不用配置以下内容就可以了,根据自己实际情况配置
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>
4.兼容模式
http://域名/项目名/入口文件/home?s=模块名/方法名/键1/值1/键2/值2
开启调试模式:
在index.php入口文件设置常量
// 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false
// 想让配置马上生效就要开启调试模式
define('APP_DEBUG',True);
常见问题
1.想自学可以看网易云课堂
http://study.163.com/course/courseMain.htm?courseId=266024
2.在设置DB_HOST的时候记得不要用loaclhost,直接用ip :127.0.0.1
3.使用php验证码功能的时候报错 Call to undefined function Think\imagettftext() 可以查看一下两篇文章
http://blog.sina.com.cn/s/blog_1380a6f6b0102w1pd.html
https://blog.youkuaiyun.com/leiflyy/article/details/53016769