创建网站根目录
放置ThinkPHP框架目录
创建thinkphp单入口文件
// 定义应用目录
define('APP_PATH','./Apps/');
// 开启调试模式
define('APP_DEBUG',True);
// 更名框架目录名称,并载入框架入口文件
require './ThinkPHP/ThinkPHP.php';
浏览器下访问单入口文件
目录简介
Application
├─Common 应用公共模块
│ ├─Common 应用公共函数目录
│ └─Conf 应用公共配置文件目录
├─Home 默认生成的Home模块
│ ├─Conf 模块配置文件目录
│ ├─Common 模块函数公共目录
│ ├─Controller 模块控制器目录
│ ├─Model 模块模型目录
│ └─View 模块视图文件目录
├─Runtime 运行时目录
│ ├─Cache 模版缓存目录
│ ├─Data 数据目录
│ ├─Logs 日志目录
│ └─Temp 缓存目录
创建控制器
在模块儿目录下的Controller目录创建文件文件名格式 UserController.class.php
内容
namespace Home\Controller;
use Think\Controller;
class UserController extends CommonController {
}
控制器方法的访问
index.php?m=Home&c=User&a=delete
m代表的大模块儿(Home or Admin) c 控制器名称 a操作名(方法名) 在使用url传参的时候(ajax get方式传递参数的时候 千万不要使用 m c a字母)
1.index.php/Home/User/delete
(Home模块名 User控制器名 index当前的方法名)
数据库配置
return array(
//数据库配置信息
'DB_TYPE' => 'mysql', // 数据库类型
'DB_HOST' => '127.0.0.1', // 服务器地址
'DB_NAME' => 'lamp', // 数据库名
'DB_USER' => 'root', // 用户名
'DB_PWD' => '', // 密码
'DB_PORT' => 3306, // 端口
'DB_PREFIX' => '', // 数据库表前缀
'DB_CHARSET'=> 'utf8', // 字符集
);
创建对象 $user = M('user');//new Model('user')
进行数据库操作
增加
1.$user->add($data)
;
1.$user->data($data)->add()
1.$user->create(); $user->add()
;
删除
1.$user->delete($id)
;
1.$user->where("id=100")->delete()
;
修改
1.$user->save($data)
;
1.$user->where("id=100")->save($data)
;
1.$user->create(); $user->save()
;
查找
单条
$user->find($id)
;
$user->where()->find()
多条
1.$user->field()->where()->limit()->order()->select()
//获取多条数据
// $datas = $user->select();
// var_dump($datas);
// $data = $user->where("id>50")->order('id desc')->limit(2,5)->select();
// $data = $user->page('2,5')->select();//第一个数字是页码 第二个数字是每页显示的数量
直接发送sql $user->query('select * from user')
连贯查询
table方式进行连表
// $m = M();
//命令行 select goods.*,cate.name from goods,cate where goods.cate_id = cate.id
// $goodses = $m->field("goods.*,cate.name")->table('goods,cate')->where('goods.cate_id = cate.id')->select();
使用join方式连表
// select goods.*,cate.name from goods inner join cate on goods.cate_id = cate.id
$goods = M('goods');
// $goodses = $goods->join("cate on goods.cate_id=cate.id")->field("goods.title,cate.name")->select();
// $data = $goods->group('cate_id')->having('id>4')->select();
$data = $goods->distinct(true)->field('cate_id')->select();//对cate_id进行无重复的查询
变量分配 $this->assign('title','ThinkPHP')
;
模版解析
$this->display();
默认找的模板文件
view
|---控制器同名目录
|---|---方法名.html
$this->display('add');
默认找的模板文件
view
|---控制器同名目录
|---|---add.html
$this->display('User/add');
默认找的模板文件
view
|---User
|---|---add.html
模版引擎
变量输出 {$title}
修改定界符
‘TMPL_L_DELIM’ => ‘<{’,
‘TMPL_R_DELIM’ => ‘>}’
超全局变量
{$Think.server.script_name} // 输出$_SERVER['SCRIPT_NAME']变量
{$Think.session.user_id} // 输出$_SESSION['user_id']变量
{$Think.get.name} // 输出$_GET['name]变量
{$Think.cookie.name} // 输出$_COOKIE['name']变量
{$Think.post.name} // 输出$_POST['name']变量
函数使用
{$name|md5} //自定义函数存放的位置Home/Common/function.php或者Common/common/function.php
{$name|substr=1,4}
{$时间戳|date="Y-m-d",###}//#号必须要
{:substr($name,1,4)}
默认值{$info|default="这家伙很懒,什么也没留下"}
三元运算符{$status?'正常':'错误'}
模版替换
__ROOT__: 会替换成当前网站的地址(不含域名)
__PUBLIC__:会被替换成当前网站的公共目录 通常是 /Public/
__APP__: 会替换成当前应用的URL地址 (不含域名)
__MODULE__:会替换成当前模块的URL地址 (不含域名)
__CONTROLLER__(__或者__URL__ 兼容考虑): 会替换成当前控制器的URL地址(不含域名)
__ACTION__:会替换成当前操作的URL地址 (不含域名)
__SELF__: 会替换成当前的页面URL
内置标签
忽略解析 <literal></literal>
包含文件 <include file="Public/header" />
模板继承 <extend name="base" />
模板注释 {/* 注释内容 */ }
或{// 注释内容 }
foreach
<foreach name="list" item="vo" >
{$key}|{$vo.id}:{$vo.name}
</foreach>
//支持多层遍历 (最多3层)
if
<if condition="($name eq 1) OR ($name gt 100) "> value1
<elseif condition="$name eq 2"/>value2
<else /> value3
</if>
//在条件字符串中 不允许出现 > <
//eq---等于 gt---大于 elt---小于等于 neq---不等于 egt---大于等于 lt---小于 heq---恒等于 nheq---不恒等于
比较标签.
<eq name="name" value="value">相等
<else></else>不相等
</eq>
php
<?php echo ‘Hello,world!’; ?>或者echo ‘Hello,world!’;
开启debug模式 define('APP_DEBUG', true)
;
开启trace调试 'SHOW_PAGE_TRACE' =>true
,
变量调试 dump
函数
获取最后一条sql执行语句
$user->getLastSql();
$user->_sql();
查看编译缓存
当进行模板操作的时候 ,如果模板的显示结果跟预想的不一样 这个时候可以尝试去查看编译缓存
本站(PHP --> Golang)已重构,代码开源
当你能力不能满足你的野心的时候,你就该沉下心来学习