3.2.3开发文档https://pan.baidu.com/disk/home?errno=0&errmsg=Auth%20Login%20Sucess&&bduss=&ssnerror=0#list/vmode=list&path=%2Fsoftware%2Fphp%2Fphp_framework

【1】.导入thinkphp3.2.3 ,新建一个项目

  1.  

    打开index.php文件(index.php文件为默认前台入口文件)

    // 检测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';

    // 亲^_^ 后面不需要任何代码了 就是如此简单

  2.  

    添加自己需要的入口定义文件(以下为作者自己喜好)

    // 定义运行时目录

    define('RUNTIME_PATH','./Runtime/');

    //定义静态页面的路径

    define('HTML_PATH','./Html/');

    // 定义应用目录

    define('APP_PATH','./App/');

    定义应用目录可随意更改使用自己项目的主题(作者这改为APP)

    //定义默认模块

    define('BIND_MODULE','Home');

    index.php默认定义为Home,也可随意更改

  3.  

    运行项目,浏览器输入http://localhost/text/,项目运行成功,thinkphp默认页面“欢迎使用 ThinkPHP!”

  4.  

    查看项目目录,F5刷新,APP为前台应用目录,Home为前台模块名称,Common为项目配置文件目录

  5.  

    复制index.php文件,重命名为admin.php,(admin.php为项目后台默认入口文件)index.php与admin.php在同一级目录,

  6.  

    打开admin.php文件修改

    //定义默认模块

    define('BIND_MODULE','Home');

    为

    //定义默认模块

    define('BIND_MODULE','Admin);

  7.  

    运行项目,浏览器输入http://localhost/text/admin.php,项目运行成功,thinkphp默认页面“欢迎使用 ThinkPHP!”

  8.  

    查看项目目录,F5刷新,APP为前台、后台应用目录,Home为前台模块名称,Common为前台、后台项目公共配置文件目录,Admin为后台模块

  9.  

    到这里thinkphp项目前台后台入口文件运行创建成功,下面在前台后台分别实现需要的功能

    【2】 框架目录文件解析

    Common         存放当前项目的公用函数

    conf                 存放当前项目的配置函数

    Lang                存放当前项目的项目语言包

    Lib                  存放当前项目的控制器和模型

    Runtime         存放当前项目的运行时文件

    Tpl                 存放当前项目的模板文件

    MC                LIb

    V                  Tpl

    附加

    Upload  文件上传

    Page  分页的

    image

    Plugins 插件         在线编译器

    Core    读取数据     前台也用到后台也会用到    不同的操作  业务层的操作

    Configs  配置文件

    【3】thinkphp的运行流程

    【4】建立项目模板

    index文件夹              function 名字来命名      function  index(){}

    页面上     IndexController.class.php

    $this-> display();//可以跨路径  跨文件夹后面打上路径      display(文件路径)        显示     //可以调用模板文件

    模板的技术

    //echo C('name');

    App/Action/IndexAction.class.php文件夹下的

    URL模式

    //输出URL模式
    //echo C('URL_MODEL'),'<br/>';
    //U('Index模块名/方法',array('id'=1),'xxxx html',true/false,'localhost'),true可直接跳转
    /* 
    * 1是默认的url模式
    * http://localhost/muke/index.php/Index/user/id/1.html
    * 0默认的普通模式
    * http://localhost/muke/index.php?m=Index&a=user&id=1
    * 2重写模式 
    * http://localhost/muke/Index/user/id/1.html
    * 3兼容模式
    * http://localhost/muke/index.php?s=/Index/user/id/1.html
    */

    自定义函数

    //echo U('Index/user',array('id'=>1),'html',false,'localhost');
    //show();
    //$arr=array(1,2,3,4,5);
    //dump($arr);
    //this->display();

    模板的赋值和输出

    $name='Donsen';
    //输出的第一种方法,只能赋值一种变量
    $this->name=$name;
    //输出的第二种方法,可以连续赋值
    $this->assign('name',$name);
    //$this->assign('name',$name)->assign('sex','gril');

    ThinkPHP模板引擎变量输出和运算

    $me['name']='Donsen';
    $me['age']='22';
    $this->assign('me',$me);

    index.php模板中输出
    输出的第一种方法
    {$me['name']}
    输出的第二种方法
    {$me.name}
    无定义的情况,可以赋值
    {$me.sex|default='man'}
    运算
    {$me['age']-1}

    ThinkPHP模板引擎函数和系统参数

    名字加密
    {$me['name']|md5}
    字符串截取
    {$me['name']|md5|substr=0,5}

    volist和foreach
    $person=array(
    1=>array('name'=>'Jack','age'=>'18'),
    2=>array('name'=>'Tom','age'=>'19'),
    3=>array('name'=>'Peter','age'=>'20'),
    4=>array('name'=>'Mary','age'=>'21'),
    );
    $this->assign('person',$person);
    index.php中循环输出
    <volist name='person' id='data' offset='1' length='2'>
    {$data['name']}------{$data['age']}<br/>
    </volist>
    volist可利用offset='1' length='2'截取,但是foreach不能截取
    <foreach name='person' item='data' >
    {$data['name']}------{$data['age']}<br/>
    </foreach>

     【5】     thinkphp的调式模式

    thinkphp   logo

    里面的东西   信息

    【6】 连接数据库

    注意主从服务器

     
     
     

thinkPHP3.2.3 框架的更多相关文章

  1. Thinkphp3.2.3框架下封装公共的函数,例如封装CURL函数来获取接口数据

    当我们需要在控制层调用相同的封装函数时,写多次相同的函数,显得代码十分的拉杂,不精简: TP框架有一个很好的机制,可以再Common定义一个function.php函数,当我们在控制层调用的时候直接调 ...

  2. 解决ThinkPHP3.2.3框架,PDO驱动类“抛出异常”不起作用的bug

    项目中引进了ThinkPHP3.2.3的模型层,发现当SQL语句出错时,系统抛出的异常不是我想要的效果,打开文件 ThinkPHP\Library\Think\Db\Driver.class.php, ...

  3. 解决ThinkPHP3.2.3框架,PDO驱动查询出来的字段名全是小写的bug

    找到文件:ThinkPHP\Library\Think\Db\Driver.class.php 找到代码: // PDO连接参数 protected $options = array( PDO::AT ...

  4. 在thinkPHP3.2.3框架下实现手机和PC端浏览器的切换

    查看thinkphp版本号方法 打开文件“根目录\ThinkPHP\ThinkPHP.php”下的文件ThinkPHP.php,在22--23行可以看到版本信息THINK_VERSION,如下图: 说 ...

  5. 在Thinkphp3.2.3框架下实现自动获取客户端IP地址的get_client_ip()函数

    在Thinkphp框架下使用get_client_ip()函数获取客户端IP地址十分方便: 一行代码便可以实现:$ip = get_client_ip(); 但当我们测试时会遇到后台获取的IP地址显示 ...

  6. 代码审计-thinkphp3.2.3框架漏洞sql注入

    开始复现审计一下tp3和tp5的框架漏洞,当个练习吧. 涉及注入的方法为where() table() delete()等. 环境 tp3.2.3 : 0x01 注入成因 测试代码: public f ...

  7. ThinkPHP3.2.3框架下接入阿里云短信服务接口实现:注册登录

    首先介绍下短信注册登录流程: 注册页面点击获取手机号验证码按钮,用jquery的click事件POST或GET方法把手机号发送到后台控制器: 后台控制器创建函数,收到手机号后生成随机码,例如:6位的随 ...

  8. ThinkPHP3.2.3框架下where的组合查询and、or方法

    在项目开发中,查询数据时经常用到where条件查询来过滤数据: 有时就需要一个input输入框判断多个字段查询,这时候我们就需要使用组合查询方法来实现: 说明:组合查询的主体还是采用数组方式查询,只是 ...

  9. ThinkPHP3.2.3中三大自动中的缺陷问题

    我们在使用Thinkphp3.2.3框架时在对数据表进行模型化后就可以使用自动完成功能. 自动完成可以帮助我们更简便的完成对表单内容对数据表(集合)的填充,自动完成是基于: 当实例化数据库user后, ...

随机推荐

  1. Qt多选框

    1.获取并显示复选框文本内容 ui->label->setText(ui->comboBox->currentText());

  2. HTML5一些元素的整理

    address元素: 定义和用法 <address> 标签定义文档或文章的作者/拥有者的联系信息. 如果 <address> 元素位于 <body> 元素内,则它表 ...

  3. 此上下文中不允许异步操作。启动异步操作的页必须将 Async 特性设置为 true,并且异步操作只能在 PreRenderComplete 事件之前的页上启动。

    <%@ Page Language="C#" AutoEventWireup="true" ...... Async="true" % ...

  4. 前端js上传文件后端C#接收文件

    本文粗略的讲下前端文件上传和后端文件接收的原理 前端代码 html <form onsubmit="uploadFile(event)"> <input type ...

  5. 问题:oracle select into;结果:oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解

    oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解 (2011-07-08 08:59:47) 转载▼ 标签: it 分类: oracle 我们经常会遇 ...

  6. 修改Windows帐户密码,导致Sql Server 2000无法启动

    修改Windows帐户密码,导致Sql Server 2000无法启动. --现象以管理员或同等权限用户登录 Windows XP,建立 Sql Server 2000 数据库.之后,在修改此 Win ...

  7. C语言学习笔记--#和##操作符

    1. #运算符 (1)#运算符用于在预处理期将宏的参数转换为字符串 (2)#的转换作用是在预处理期完成的,因此只在宏定义中有效,即其他地方不能用#运算符 (3)用法:#define STRING(x) ...

  8. Easyui datebox单击文本框显示日期选择 eayui版本1.5.4.1

    Easyui默认是点击文本框后面的图标显示日期,体验很不好,所以我想单击文本框就显示日期选择框,网上很多版本是1.3,1.4的,于是自己就比葫芦画瓢改了一个1.5.4.1的版本. 我参考了网上这个帖子 ...

  9. ZROI2018提高day3t1

    传送门 分析 我们可以用贪心的思想.对于所有并没有指明关系的数一定是将小的放在前面.于是我们按顺序在每一个已经指明大小顺序的数前面插入所有比它小且没有指明关系的数.详见代码. 代码 #include& ...

  10. jqgrid列动态加载

    private void InitGrid(string entityName) { Session["entityName"] = entityName; ArrayList c ...