ThinPHP框架笔记 个人整理

①下载 www.thinkphp.cn
② 配置
  • 创建网站根目录

  • 放置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        缓存目录
③ C
  • 创建控制器

    • 在模块儿目录下的Controller目录创建文件文件名格式 UserController.class.php

    • 内容
          namespace Home\Controller;
          use Think\Controller;
          class UserController extends CommonController {
         }
  • 控制器方法的访问

    1. 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当前的方法名)

④ M

数据库配置

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();

  • 查找

    • 单条

      1. $user->find($id);

      2. $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进行无重复的查询
⑤ V
  • 变量分配 $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();
  • 查看编译缓存
         当进行模板操作的时候 ,如果模板的显示结果跟预想的不一样 这个时候可以尝试去查看编译缓存

欢迎转载,但请附上原文地址哦,尊重原创,谢谢大家 本文地址: http://www.iphpt.com/detail/37/

当你能力不能满足你的野心的时候,你就该沉下心来学习