zoukankan      html  css  js  c++  java
  • ThinkPHP

    配置

    默认配置 < 公共配置 < 模式配置 < 调试配置 < 场景配置 < 模块配置 < 扩展配置 < 动态配置。

    C方法:C($name = null, $value = null, $default = null)

    路由

    普通模式:http://www.example.com/index.php?m=home&c=index&a=index

    pathinfo模式:http://www.example.com/index.php/home/index/index

    rewrite模式:http://www.example.com/ home/index/index

    兼容模式:http://www.example.com/index.php?s=home/index/index

    路由配置

    “URL_ROUTER_ON” => true

    “URL_ROUTE_RULES” => array (

    … 路由表达式

    )

    路由表达式:

    1、规则路由

    2、正则路由

    3、静态路由

    控制器

    伪静态

             通过URL_HTML_SUFFIX设置伪静态的后缀

    URL大小写

             Windows不区分大小写,Linux区分。可设置参数:URL_CASE_INSENSITIVE = true 可实现URL不区分大小写,保持Windows与Linux一致

    URL生成

             U(地址表达式, 参数, 是否显示伪静态后缀, 是否显示域名)

    地址表达式:

             [模块/控制器/操作#锚点@域名]?参数1=值1&参数2=值2…

    Ajax返回

             ajaxReturn(变量[, ‘xml/json’)] 默认为json

    重定向和页面跳转

             redirect(URL地址表达式, URL变量, 延迟时间, 提示消息)

             success(提示信息, 跳转地址, 跳转时间)

                       跳转地址:默认跳转$_SERVER[“HTTP_REFERER”]

                       跳转时间:默认1s

             error(提示信息, 跳转地址, 跳转时间)

    跳转地址:默认跳转javascript:history:back(-1);

                       跳转时间:默认3s

    注:

    redirect不可使用模板,只能输出字符串。

    success/error可使用模板,默认为THINK_PATH.’Tpl/dispatch_jump.tpl’

    “TMPL_ACTION_SUCCESS” 配置success模板

    “TMPL_ACTION_ERROR” 配置error模板

    读取输入

             I(‘变量来源.变量名|修饰符’, [‘默认值’], [‘过滤方法’], [‘额外数据源’]

             变量来源:

    来源

    说明

    get

    $_GET

    post

    $_POST

    param

    自动判断$_GET、$_POST和$_PUT

    request

    $_REQUEST

    put

    $_PUT

    session

    $_SESSION

    cookie

    $_COOKIE

    server

    $_SERVER

    globals

    $_GLOBALS

    path

    获取PATHINFO模式的URL参数

    data

    获取其他类型的参数,需要配合额外数据源

             修饰符:

    修饰符

    说明

    s

    强制转换为字符串

    d

    强制转换为整数

    b

    强制转换为布尔型

    a

    强制转换为数组

    f

    强制转换为浮点型

             过滤方法:

    1、没有指定:则采用配置”DEFAULT_FILTER”的值(默认为htmlspecialchars)

    2、指定的为函数名:则直接使用该函数进行操作(可以是数组)

    3、不是函数名:则调用内置的方法filter_var

    4、不过滤:传false

    HTTP请求方法

             IS_GETIS_POSTIS_PUTIS_DELETEIS_AJAXREQUEST_METHOD

    前置和后置操作

             _before_actionname()  _after_actioname()

    动作参数绑定

             functionname($para)

    空操作

             _empty($actionname)

    空控制器

             EmptyController.class.php

    模型

    模型实例化

             1、new 模型类

             2、M方法

             3、D方法

    模型方法

             where ablealiasdatafield(可用来排除字段)orderlimitpagegrouphavingjoinuiondistinctlockcachefetchSql(返回sql,并不执行sql)strictindexcountmaxminavgsumquery(直接执行原生select语句)execute(直接执行原生insertupdatedelete语句)

    CURD

    create() 处理数据,默认自动读取$_POST的数据

    add() 新增

    getField() 获取某列

    find() 读取单条数据

    select() 读取数据集

    save() 更新

    setField() 更新指定字段

    setDec() 对指定字段减操作

    setInc() 对指定指定加操作

    delete() 删除

    where条件

    1、可直接拼接字符串,存在sql注入风险

    2、使用数组

    3、使用对象

    自动验证

    静态方式:在模型类中通过$_validate定义

    动态方式:使用模型类的validate方法

    规则格式:

    array(

             array(字段名, 验证规则, 错误提示, [验证条件, 附加规则, 验证场景])

    )

    自动完成

    静态方式:在模型类里面通过$_auto属性定义处理规则

    动态方式:使用模型类的auto方法动态创建自动处理规则

    规则格式:

    array(

             array(完成字段, 完成规则, [完成条件, 附加规则])

    )

    视图模型

    需要

    use ThinkModelViewModel

    模型类 extends ViewMode

    关联模型

    需要

    use ThinkModelRelationModel

    模型类 extends RelationMode

    关联关系:HAS_ONE, BELONGS_TO, HAS_MANY, MANY_TO_MANY

    视图

    视图目录/[模板主题]/控制器名/操作名+视图后缀

    默认不启用 模板主题,可通过设置DEFAULT_THEME设置

    视图后缀 默认为 .html,可通过 TMPL_TEMPLATE_SUFFIX 设置

    视图目录 默认为 View,可通过 DEFAULT_V_LAYER 设置

    模板赋值:

    在控制器中,通过$this->assign(‘data’, $data)的方式进行赋值,这样在模板中可使用data获取数据。$data可以是数组。

    模板渲染:

    display([模板文件路径], [字符编码], [mime类型])

    模板文件路径写法:

    1、无参数:系统自动定位,默认为“模块名/View/控制器名/方法名.html”

    2、[模块@][控制器:][操作]:比如$this->display(‘User:login’),将定位到“模块名/View/User/login.html”

    3、完整模板文件名

    fetch方法,返回模板内容,不会输出到浏览器,可用此方法开发页面缓存功能。

    模板

    变量输入格式

    {$val}

    默认的{}可通过设置“TMPL_L_DELIM”和”TMPL_R_DELIM”来替换

    系统变量输出

    $_SERVER、$_ENV、$_POST、$_GET、$_REQUEST、$_SESSION、$_COOKIE、配置文件

    可通过

    $Think.server.变量名

    $Think.post.变量名

    $Think.cookie.变量名

    $Think.config.变量名

    输出

    函数使用

    可使用PHP内置函数、ThinkPHP内置函数、用户自定义函数、类静态方法

    格式:

    {变量|函数1|函数2[…=参数1,参数2…]},如果参数是|前面的值,则可用###代替,

    |类似管道的作用,函数从左到右求值后转入后续函数

    变量默认值

    {变量|default=默认值}

    当变量为空时,显示默认值。 ?? default应该就是一个函数吧??

    算术运算

    {+、-、*、/、%}

    注:

    如果操作数是数组,则使用$arr[‘name’]的形式,不可使用arr.name

    如果操作数是对象,则使用$obj->name的形式,不可使用obj->name

    模板继承

    在父模板中

    <block name=”block名称”></block>

    在子模板中

    <extend name=”父模板文件名”/>

    <block name=”父模板中的block名称”>内容</block>

    视图包含

    <include file=”模板表达式或模板文件路径”/>

    模板表达式:

    [模块@][主题/]控制器/操作 (/也可用:替换)

    内置标签

    includeimportvolistforeachforswitchcasedefaultcompare angepresent otpresentempty otemptydefined otdefineddefineassignifelseifelsephp(使用原生PHP语法<?php … ?>)

    不解析输出:

    <literal>

    …里面的标签不会被解析

    </literal>

    模板布局

    layout.html

    <include file=”控制器名:header”/>

    <div id=”content”>

    {__CONTENT__}

    </div>

    <include file=”控制器名:footer”/>

    index.html

    <layout name=”控制器名:layout”/>

    <p>正文</p>

    模板常量

    名称

    常量

    __ROOT__

    当前网址(不包括域名)

    __APP__

    当前应用的URL地址(不包括域名)

    __MODULE__

    当前模块的URL地址(不包括域名)

    __CONTROLLER__

    当前控制器的URL地址(不包括域名)

    __ACTION__

    当前操作的URL地址(不包括域名)

    __SELF__

    当前页面的URL

    在模板中直接填常量名称,不用{}包裹

    调试

    设置调试模式

    define(‘APP_DEBUG’, true/false)

    日志

    LOG_RECORDED => true/false

    LOG_LEVEL => ‘EMERG,ALERT,CRIT,ERR’

    日志级别

    日志级别

    说明

    EMERG

    严重错误,出现错误是程序无法运行

    ALERT

    警戒性错误,必须立即被修正

    CRIT

    临界值错误,超过临界值的错误

    ERR

    一般错误

    WARN

    警告错误

    NOTICE

    通知级别错误

    INFO

    信息级别

    DEBUG

    调试输出

    SQL

    SQL语句,调试模式下有效

    LOG_TYPE => ‘File/Sae’

    写入日志

    record($message, $level=self::ERR, $record=false)

    $record:是否强制记录

    write($message, $level=self::ERR, $type=’’, $destination=’’)

    变量输出

    PHP内置:print_r、var_dump

    ThinkPHP内置:dump

    执行统计

    G(‘start’);

    //业务代码

    G(‘end’);

    echo G(‘start’, ‘end’).’秒’

    SQL输出

    getLastSql()

    返回该模型最后执行的SQL语句

    缓存

    数据缓存

    S($name, $value=’’, $options=null)

    页面缓存

    数据库查询缓存

    session

    ThinkPHP默认开启session, 可通过SESSION_AUTO_START设置

    session(‘key’, ‘value’) 设置 其中key可以是user.userId 中间带.的形式

    session(‘key’) 获取

    session() 获取全部

    session(‘key’, null) 删除

    session(null) 删除全部

    cookie

    cookie(‘name’, ‘value); //有效期到浏览关闭

    cookie(‘name’, ‘value’, 7*24*3600); //有效期一周

    cookie(‘name’) 获取

    cookie() 获取全部

    cookie(‘name’, null) 删除

    分页

    $mode = new Mode(‘模型名称’);

    $code => $mode -> count(); //总记录数

    $page = new ThinkPage($code, 30); //实例化分页类,每页30行

    $show = $page -> show(); //分页显示数据内容(即分页的导航条)

    $list = $mode -> limit($page -> firstRow . ‘,’ . $page -> listRows) –> select();

    $this->assign(‘list’, $list); //赋值数据集

    $this->assign(‘page’, $show); //赋值分页输出

    $this->display();

    文件上传

    $upload = new Upload(); //实例化上传类

    $upload -> maxSize = 1024 * 1024 * 2; //2M

    $upload -> exts = array(‘jpg’, ‘gif’, ‘png’, ‘jpeg’); //设置上传类型

    $upload -> rootPath = ‘./Uploads/’; //设置上传根目录

    $upload -> savePath = ‘’; //设置上传子目录

    //上传文件

    $info = $upload->upload();

    if (!$info) {//上传出错

             $this->error($upload->geError());  

    } else {

             $filePath = ‘Uploads/’ . $info[‘file’][‘savepath’] . $info[‘file’][‘savename’];

    }

    其中’file’为页面input标签的name属性

    默认的savePath为日期格式的文件夹

    验证码

    public function verify() {

             $verify = new Verify(); //验证码类

             $verify->entry(); //产生并输出验证码图片

    }

    前端页面中

    <img src=”{:U(‘veryfy’)}” onClick=”this.src = ‘{:U(“verify”)}?’ + Math.random()” title=”看不清,换一张” >

    验证

    $code = I(‘code’);

    $veryfy = new Verify();

    if ($verify->check($code)) {

             $this->success(‘验证成功’);

    } else {

             $this->error(‘验证码错误’);

    }

    图像处理

    ThinkPHP的Image类支持GD库和Imagick库。

    实例化

    $path = ‘./Public/images/demo.jpg’;

    $image = new Image(Image::IMAGE_GD, $path);

    或者

    $image = new Image(Image::IMAGE_IMAGICK, $path);

    图像缩放

    thumb($width, $height, $type = self::IMAGE_THUMB_SCALE)

    $width:缩略图最大宽度

    $height:缩略图最大高度

    $type:缩略图剪裁类型

    IMAGE_THUMB_SCALE 等比例缩放

    IMAGE_THUMB_FIFLED 缩放后填充

    IMAGE_THUMB_CENTER 居中

    IMAGE_THUMB_NORTHWEST 左上角

    IMAGE_THUMB_SOUTHEAST 右下角

    IMAGE_THUMB_FIXED 固定尺寸缩放

    图像裁剪

    crop($w, $h, $x = 0, $y = 0, $width = null, $height = null)

    $w:剪裁区域的宽度

    $h:剪裁区域的高度

    $x:剪裁区域横坐标

    $y:剪裁区域纵坐标

    $width:图片保存宽度

    $height:图片保存的高度

    图像水印

    water($source, $locate = self::IMAGE_WATER_SOUTHEAST, $alpha = 80)

    $source:水印图片路径

    $locate:水印位置

    $alpha:水印透明度

  • 相关阅读:
    Dynamics AX 2012 R2 配置E-Mail模板
    Dynamics AX 2012 R2 设置E-Mail
    Dynamics AX 2012 R2 为运行失败的批处理任务设置预警
    Dynamics AX 2012 R2 耗尽用户
    Dynamics AX 2012 R2 创建一个专用的批处理服务器
    Dynamics AX 2012 R2 创建一个带有负载均衡的服务器集群
    Dynamics AX 2012 R2 安装额外的AOS
    Dynamics AX 2012 R2 将系统用户账号连接到工作人员记录
    Dynamics AX 2012 R2 从代码中调用SSRS Report
    Dynamics AX 2012 R2 IIS WebSite Unauthorized 401
  • 原文地址:https://www.cnblogs.com/yarightok/p/9222683.html
Copyright © 2011-2022 走看看