ThinkPHP入门_慕课网

来源:互联网 发布:云系统卡盟源码 编辑:程序博客网 时间:2024/05/20 10:13

一、简介

1、MVC简介

![MVC框图](http://img.blog.csdn.net/20160914142126707)![MVC框架总结](http://img.blog.csdn.net/20160914142154941)

2、THinkPHP简介

1.单一入口:在一个网站中,所有的请求都指向一个脚本文件,项目结构规范,控制灵活,更加安全
实例代码:    <?php         define('APP_NAME','App');        define('APP_PATH','./App/');//特别注意后面的/        require('./ThinkPHP/ThinkPHP.php');    ?>

3、THinkPHP目录简介

->common 存放当前项目的公共函数->Conf 存放当前项目的配置文件:C('name'):输出配置项->Lang 存放当前项目的语言包->Lib 存放当前项目的控制器和模型->Runtime 存放当前项目的运行时文件->Tpl 存放当前的模板文件

二、简单操作

1、THinkPHP运行流程

1.加载ThinkPHP.php2.加载核心文件3.加载项目的文件 分析url  调用相关控制器    ->m module 模块  控制器    ->a action 方法 action=页面==>localhost/index.php?m=index&a=index

2、THinkPHP的URL模式

    //echo U('Index/user',array('id'=>1),'html',false,'localhost');    1:默认模式(pathinfo模式):/ThinkPHPStudy/index.php/Home/Index/user/id/1.html           0:普通模式: /ThinkPHPStudy/index.php?m=Home&c=Index&a=user&id=1    2:重写模式: /ThinkPHPStudy/Home/Index/user/id/1.html(隐藏index.php)    3:兼容模式: /ThinkPHPStudy/index.php?s=/Home/Index/user/id/1.html->查看url模式:C('URL_MODEL')->U('模式/方法',array('id'=>1),'html',true/false,localhost)->重写url用来隐藏index.php    1.开启Apache服务的rewrite服务    2.在index.php的同级目录下创建.htaccess文件        内容/:<IfModule mod_rewrite.c>                  Options +FollowSymlinks                  RewriteEngine On                  RewriteCond %{REQUEST_FILENAME} !-d                  RewriteCond %{REQUEST_FILENAME} !-f                  RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]            </IfModule>->url的伪静态配置: 'URL_HTML_SUFFIX'=>'html|json',  // URL伪静态后缀设置

3.自定义函数库

在APP/Home/Common目录下创建function.php文件,面的函数为公用函数库

三、模板技术

1、模板的使用

1.在App/Home/View目录下创建一个以模板为名字的文件夹,如Index,在Index下创建一个以方法名为名字的html文件,如index.html。2.在控制器的方法上使用: $this->display()方法进行调用。 ->display('test')可以指定参数,对应test.html,也可以跨模块,如:display('User/index')3.传递参数 ->在控制器上使用$this->name = 'String'或者$this->assign('name1','ABC')->assign('name2','EFG') ->在html页面上使用php语法输出,如echo name

2、ThinkPHP模板引擎

 1.输出:{$zxj.name}/{$zxj['name']}/{$zxj.phone|default='13023000000'} 2.运算:{$zxj['age']+1},注:此时不能使用.表达式,否则无法输出结果 3.调用函数:{$zxj|md5|substr()} 4.循环输出:volist/foreach
    <volist name = 'person' id='data' offset='1' length='3' empty='没数据啦'>        {$data['name']}--------{$data['age']}<br>    </volist>    <foreach name='person' item='data'>        {$data.name}------------{$data.age}<br>    </foreach>      // name:后台传输过来的数组    // offset:从哪一条数据取值,初始值为 0    // length:取多少条数据
5.IF判断:  eq:=  nep:!=  gt:>  egt:>=   lt:<  elt:<=  heq:===  nheq:!==
 <if condition='$num gt 10'> num大于10    <elseif condition='$num lt 10' /> num小于10    <else/> num等于10</if>
6.ThinkPHP特有的比较标签<eq name='num' value='10' >num = 10</eq><compare name='name' value='11' type='eq' >num == 11</compare>7.区间标签:in notin between notbetween range    ->:<in name='num' value='1,2,3'>在这个区间</in>    ->:<between name='num' value='1,10'>在1~10之间</between>    ->:<range name='num' value='1,2,4' type='in'></range>8.三元运算符:   ?:    {$num>11?'大于11':'不大于11'}9.在模板中使用原生php    <php> echo 'advd' </php>

四、数据库技术

1、模板的使用

1.配置:    'DB_TYPE' =>  'mysql',     // 数据库类型    'DB_HOST' =>  'localhost', // 服务器地址    'DB_NAME' =>  'muke',      // 数据库名    'DB_USER' =>  'root',      // 用户名    'DB_PWD'  =>  'root',      // 密码    'DB_PORT' =>  '3306',      // 端口    'DB_PREFIX' =>  'mk_'      // 数据库表前缀2.实例化模型    //1.实例化基础模型        $privilege = M('privilege');        $data = $privilege -> select();        dump($data);    //2.自定义模型        1.在model文件下创建模型文件,如UserModel.class.php        2.在controller中实例化该模型    //3.实例化公共模型        1.编写CommonModel集成Model        2.编写相应的自定义模块并集成CommonModel    //4.实例化空模型        $model = M();        $model->query('select * from t_user');//读取        $model->execute('update t_user set user_name = "haha" where u_id = 1');    ->:M方法和D方法的区别:D('user')        M方法只能实例化基础的模型        D方法会先去寻找自定义模型,若找到了,则实例化该自定义模型,否则会使用M方法实例化基础模型

2、CURD操作

1.添加数据    $data = array('user_name' => 'xiaoming',              'nick_name' => 'xiaomingming',               'password' => md5('123456'),               'create_date' => date('Y-m-d H:i:s'),               'update_date' => date('Y-m-d H:i:s'), );    <>M('User') -> add($data); ->:返回插入的数据的主键    <>addAll($dataList);->批量插入数据,仅限mysql数据库    <>getLastSql();->获取最后执行的一条数据库语句2.查询数据    // 查询所有    $data = M('User') ->select();    dump($data);    echo('<hr>');    //查询一种条件    $data = M('User') -> where('id=2')->select();    dump($data);    echo('<hr>');    //多条件查询    $where['id']=2;    $where['user_name']='xiaoming';    $where['_logic']='or';    $data = M('User') -> where($where)->select();    dump($data);    echo('<hr>111');    //表达式查询:eq neq egt gt lt elt between in like not between //  $where['字段名']=array(表达式,查询条件);//  $where['id'] = array('lt',2);//单条件//  $where['id'] = array('between','1,8'); //双参数条件//  $where['id'] = array('like','%xiao%'); //模糊条件//  $where['id'] = array('like',array('%xiao','ming%')); //双模糊条件    $where['id'] = array(array('gt',1),array('lt',3),'or'); // 区间查询    $data = M('User') -> where($where)->select();    dump($data);    echo('<hr>');    //统计用法    /**     * count:统计数量     * max:获取最大值     * min:最小值     * avg:平均值     * sum:求和     */    $data = M('user')->count();    $data = M('user')->max('user_name');    $data = M('user')->avg('score');    $data = M('user')->sum('score');    dump($data);3.更新数据    $update['score'] = 60;    $where['id']=1;    $data = M('User')->where($where)->save();4.删除数据    $where['id']=1;    $data = M('User')->where($where)->delete()    也可以直接使用主键删除:M('User').delete(3);
0 0
原创粉丝点击