浅谈PHP之ThinkPHP框架使用详解

Thinkphp框架其精髓就在于实现了MVC思想,其中M为模板、V为视图、C为控制器,模板一般是公共使用类,在涉及数据库时,一般会跟数据表同名,视图会和控制器类里的方法进行名字的一一对应。

下载及配置

官网(http://www.thinkphp.cn/)下载ThinkPHP5.0,将解压文件放在网站目录下的ATP5子目录下

默认主页:http://localhost:8099/ATP5/public/index.php

如果要隐藏index.php且服务器为Apache则需要将public\.htaccess下内容替换为:

<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
</IfModule>

版本要求

php版本大于等于5.4

访问规则

http://localhost:8099/ATP5/public /模块/控制器/方法

其中http://localhost:8099/ATP5/public /为thinkphp的公共入口,模块的区分可以实现如管理员和用户的不同入口。

命名规则

模块名:全部小写

控制器名:首字母大写

方法名:全部小写

注意:

URL输入时不区分大小写,框架会自动根据标志转换,可在config里设置(url_convert' => false)

如果控制器名为驼峰式命名(如HelloWorld)访问时地址栏应用下划线处理(如 hello_world)

新建入口App

复制一份application,然后在public/index.php中修改对应的入口名字

建立MVC目录

命名规则:

模板(model):首字母大写

视图(view):全部小写

控制器(controller):首字母大写

显示错误信息和调试

打开应用的目录里的config.php文件配置:

app_debug 值为true则显示调试信息

show_error_msg 值为ture 则显示错误信息

CSS和JS及图片的地址引用

在视图目录下想要引用到一些资源文件,如css,js,图片等,是不支持使用把相关文件放到view目录下的,应该把资源文件放在public目录下,然后在App中的config.php里的view_ replace_str下添加资源文件的目录宏定义

// 视图输出字符串内容替换
  'view_replace_str'    => [

    '__DSTYLE__'=>"/atp/public/static/library",
    '__DIMG__'=>"/atp/public/img",

  ],

使用:

如果修改后在开发者工具发现数据使用依然是上一次更改的地址,说明有缓存在作怪,可以到 runtime\temp 目录下清除

 <img src="__DIMG__/banner7.png">
 <link rel="stylesheet" href="__DSTYLE__/donglayui/layui/css/layui.css" rel="external nofollow"  media="all">

简单的值匹配

视图代码:

<!doctype html>
 <h1>--{$name1}--</h1>
 <h2>--{$name2}--</h2>

控制器代码:

<?php
namespace app\index\controller;
//导入必要模块
use think\Controller;

class Xiao extends Controller
{
  public function xiao2(){
    $valuex1="匹配值1";
    $valuex2="匹配值2";
    //匹配,变量赋值
    $this->assign("name1",$valuex1);
    $this->assign("name2",$valuex2);
     //渲染输出
    //返回视图 fetch实参为空表示找函数同名的html,实参可以传递其它视图名称
    return $this->fetch();
  }

}

数组值的匹配

视图中获取

{$ff.1}

控制器

$valuex2=array("0","1","1");
$this->assign("ff",$valuex2);
return $this->fetch();  

Volist的使用

该方法是thinkphp中很有趣的方法,其可以实现在视图文件中进行数组的循环遍历,最常会使用其进行数据库表格的遍历显示。

视图中的代码:

<table border="1">
      <!--表格头-->
      <thead>
       <tr>
        <th>id</th>
        <th>用户名</th>
        <th>昵称</th>
        <th>备注</th>
       </tr>
      </thead>

      <!--表格内容-->
      <tbody>
        <!--循环遍历-->
        {volist name="listallh" id="vo"}
        <tr>
         <td>{$vo.id}</td>
         <td>{$vo.user}</td>
         <td>{$vo.name}</td>
         <td>{$vo.oo}</td>
        </tr>
       {/volist}
      </tbody>
</table>

控制器代码:

$listall=array();
   $listall[]=array("id"=>1,"user"=>"dong1","name"=>"dongxiaodong1","oo"=>"无");
   $listall[]=array("id"=>2,"user"=>"dong2","name"=>"dongxiaodong2","oo"=>"无");
   $listall[]=array("id"=>3,"user"=>"dong3","name"=>"dongxiaodong3","oo"=>"无");
   $listall[]=array("id"=>4,"user"=>"dong4","name"=>"dongxiaodong4","oo"=>"无");
   $this->assign('listallh',$listall);
   return $this->fetch();

公共界面

如果多个页面需要使用到同一个HTML代码块,可以将代码块放到外面,其它界面直接通过引用即可

在view目录下创建自定义文件名字的文件夹(public_view),里面创建自定义文件名的HTML文件(menu.html),在需要的地方直接通过【{include file="public_view/menu"}】引入即可

创建公共文件

HTML内容

<h2>东小东内容匹配页</h2>

在其它页面中使用

<h2>东小东</h2>
{include file="public_view/menu"}

显示效果

到此这篇关于浅谈PHP之ThinkPHP框架使用详解的文章就介绍到这了,更多相关PHP ThinkPHP框架内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2020-07-18

Thinkphp 框架配置操作之配置加载与读取配置实例分析

本文实例讲述了Thinkphp 框架配置操作之配置加载与读取配置.分享给大家供大家参考,具体如下: 配置加载 在ThinkPHP中,一般来说应用的配置文件是自动加载的,加载的顺序是: 惯例配置->应用配置->模式配置->调试配置->状态配置->模块配置->扩展配置->动态配置 以上是配置文件的加载顺序,因为后面的配置会覆盖之前的同名配置(在没有生效的前提下),所以配置的优先顺序从右到左. 不同的配置文件的区别和位置: 惯例配置 惯例重于配置是系统遵循的一个重要思想

Thinkphp 框架扩展之应用模式实现方法分析

本文实例讲述了Thinkphp 框架扩展之应用模式实现方法.分享给大家供大家参考,具体如下: 应用模式 应用模式是你的生活环境 开发环境 执行环境 ,就好比一个框架的应用场景(模式),是指这个框架在哪个平台上运行, thinkphp中SAE.普通.API三种模式, 普通是指用于普通WEB开发和运行方式, API是指用作API请求服务端,大多为别的客户端进行服务,供远程调用 SAE是指在新浪的SAE平台上用的 不同的模式下配置都是不一样的 应用模式提供了对核心框架进行改造的机会,可以让你的应用适应

Thinkphp 框架扩展之行为扩展原理与实现方法分析

本文实例讲述了Thinkphp 框架扩展之行为扩展原理与实现方法.分享给大家供大家参考,具体如下: 系统核心提供的标签位置包括下面几个(按照执行顺序排列): app_init 应用初始化标签位 path_info PATH_INFO检测标签位 app_begin 应用开始标签位 action_name 操作方法名标签位 action_begin 控制器开始标签位 view_begin 视图输出开始标签位 view_parse 视图解析标签位 template_filter 模板内容解析标签位 v

Thinkphp 框架基础之入口文件功能、定义与用法分析

本文实例讲述了Thinkphp 框架基础之入口文件功能.定义与用法.分享给大家供大家参考,具体如下: 入口文件 ThinkPHP采用单一入口模式进行项目部署和访问,无论完成什么功能,一个应用都有一个统一(但不一定是唯一)的入口. 应该说,所有应用都是从入口文件开始的,并且不同应用的入口文件是类似的. 入口文件定义 入口文件主要完成: 定义框架路径.项目路径(可选) 定义调试模式和应用模式(可选) 定义系统相关常量(可选) 载入框架入口文件(必须) 默认情况下,框架已经自带了一个应用入口文件(以及

Thinkphp 框架扩展之驱动扩展实例分析

本文实例讲述了Thinkphp 框架扩展之驱动扩展.分享给大家供大家参考,具体如下: 每个类库都可以设计自己的驱动,因此3.2版本的驱动目录没有独立出来,而是放到各个类库的命名空间下面,例如:Think\Log类的驱动放到 Think\Log\Driver 命名空间下面,Think\Db类的驱动放到了 Think\Db\Driver 命名空间下面. 当然,这只是建议的位置,你完全可以根据项目的需要,把自己的驱动独立存放,例如: Home\Driver\Cache\Sae.class.php 则是

Thinkphp 框架扩展之标签库驱动原理与用法分析

本文实例讲述了Thinkphp 框架扩展之标签库驱动原理与用法.分享给大家供大家参考,具体如下: 在Think\Template中标签库的体现是采用XML命名空间的方式.每个标签库对应一个标签库驱动类,每个驱动类负责对标签库中的所有标签的解析. 标签库驱动类的作用其实就是把某个标签定义解析成为有效的模版文件(可以包括PHP语句或者HTML标签),标签库驱动的命名空间位于 Think\Template\TagLib,标签库驱动必须继承Think\Template\TagLib类,例如: names

Thinkphp 框架基础之源码获取、环境要求与目录结构分析

本文实例讲述了Thinkphp 框架基础之源码获取.环境要求与目录结构.分享给大家供大家参考,具体如下: 获取ThinkPHP 获取ThinkPHP的方式很多,官方网站(http://thinkphp.cn)是最好的下载和文档获取来源. 官网提供了稳定版本的下载:http://thinkphp.cn/down/framework.html 如果你希望保持最新的更新,可以通过github获取当前最新的版本(完整版). Git获取地址列表(你可以选择一个最快的地址): Github: https:/

Thinkphp 框架扩展之Widget扩展实现方法分析

本文实例讲述了Thinkphp 框架扩展之Widget扩展实现方法.分享给大家供大家参考,具体如下: Widget扩展 Widget扩展一般用于页面组件的扩展. 举个例子,我们在页面中实现一个分类显示的Widget,首先我们要定义一个Widget控制器层 CateWidget,如下: namespace Home\Widget; use Think\Controller; class CateWidget extends Controller { public function menu(){

Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析

本文实例讲述了Thinkphp 框架配置操作之动态配置.扩展配置及批量配置.分享给大家供大家参考,具体如下: 动态配置 设置格式: C('参数名称','新的参数值') 例如,我们需要动态改变数据缓存的有效期的话,可以使用 // 动态改变缓存有效期 C('DATA_CACHE_TIME',60); 动态配置赋值仅对当前请求有效,不会对以后的请求造成影响. 动态改变配置参数的方法和读取配置的方法在使用上面非常接近,都是使用C方法,只是参数的不同. 也可以支持二维数组的读取和设置,使用点语法进行操作,

thinkphp 框架数据库切换实现方法分析

本文实例讲述了thinkphp 框架数据库切换实现方法.分享给大家供大家参考,具体如下: 数据库配置: //数据库配置1 'db_config1' => [ // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'thinkphp', // 数据库用户名 'username' => 'root', // 数据库密码 'password' => '', /

thinkPHP多语言切换设置方法详解

本文实例讲述了thinkPHP多语言切换设置方法.分享给大家供大家参考,具体如下: thinkphp多语言设置有点'高大上',为什么说它有点'高大上'呢?因为本人设置了好久才弄好,而本人之所以弄了好久的原因,竟然是因为'开启语言设置必须得先开启初始化系统的行为类',所以,在这里,因为本人的经验有限,姑且认为tp的多语言设置必须的先初始化tp的CheckLangBehavior.class.php 怎么初始化CheckLangBehavior.class.php呢?下面进行讲解. tp框架下面,所

thinkphp框架使用JWTtoken的方法详解

本文实例讲述了thinkphp框架使用JWTtoken的方法.分享给大家供大家参考,具体如下: 简介 一:JWT介绍:全称JSON Web Token,基于JSON的开放标准((RFC 7519) ,以token的方式代替传统的Cookie-Session模式,用于各服务器.客户端传递信息签名验证. 二:JWT优点: 1:服务端不需要保存传统会话信息,没有跨域传输问题,减小服务器开销. 2:jwt构成简单,占用很少的字节,便于传输. 3:json格式通用,不同语言之间都可以使用. 三:JWT组成

解析 thinkphp 框架中的部分方法

1 thinkphp 框架 中判断输入的数值和数据库中的数值是否一致 首先 需要在view文件夹下建一个模板 名为zhuce.html <html> <head> <script src="__ROOT__/Public/js/jquery-1.11.2.min.js"></script> </head> <body> <div> 账号:<input type="text" n

thinkphp中AJAX返回ajaxReturn()方法分析

本文分析了thinkphp中AJAX返回ajaxReturn()方法.分享给大家供大家参考,具体如下: 系统支持任何的AJAX类库,Action类提供了ajaxReturn方法用于AJAX调用后返回数据给客户端.并且支持JSON.XML和EVAL三种方式给客户端接受数据,通过配置DEFAULT_AJAX_RETURN进行设置,默认配置采用JSON格式返回数据,在选择不同的AJAX类库的时候可以使用不同的方式返回数据. 要使用ThinkPHP的ajaxReturn方法返回数据的话,需要遵守一定的返

CI框架集成Smarty的方法分析

本文实例讲述了CI框架集成Smarty的方法.分享给大家供大家参考,具体如下: 因为CI自带的模板功能不是很方便,所以大家普遍采用集成Smarty的方式来弥补CI这方面的不足. 本人在网上看了不少CI集成Smarty的教程,包括咱们CI论坛里面的一个精华帖子 http://codeigniter.org.cn/forums/forum.php?mod=viewthread&tid=10345. 自己对比了一下这些教程,我认为下面这个方案是所有里面最优秀的,强烈推荐给大家(当然也是我自己采取的方案

ThinkPHP3.2框架操作Redis的方法分析

本文实例讲述了ThinkPHP3.2框架操作Redis的方法.分享给大家供大家参考,具体如下: 原本感觉 Redis 应该像是作为数据库的一种被拿来操作的,可是实际上 thinkphp 3.2 是把 redis 作为缓存的一种方式来进行解析的,从 redis 文件被存放的位置就可以看出来: \ThinkPHP \Library \Think \Cache \Driver 是作为 Cache,缓存方式的一种被拿来使用的,可是经过我们前面的学习,我们发现 Redis 不光光能做这些. 还有一个发现是

Thinkphp5框架ajax接口实现方法分析

本文实例讲述了Thinkphp5框架ajax接口实现方法.分享给大家供大家参考,具体如下: 前一篇讲到thinkphp5从数据库获取数据之后赋给视图view,前一篇从数据渲染方式来说是服务端数据渲染,这一章则是浏览器端数据渲染.按照知识总结依据来划分,这是两种不同的技术场景. 下面介绍具体的ajax接口实现代码. 首先是html代码部分,我的访问地址为:http://app.write.com/thinkphp/public/index.php/index/index/api,这里没有省略入口文

thinkPHP框架动态配置用法实例分析

本文实例讲述了thinkPHP框架动态配置用法.分享给大家供大家参考,具体如下: 最近在用@ThinkPHP 做系统的时候,要用到一个功能,就要动态的将系统的配置参数保存到Config文件中.以往,我们做系统的时候,项目的配置参数都会直接事先写入到Config/Config.php文件中,然后在项目中应用即可.但是,有些项目,用户需要根据自己的情况将配置参数,通过后台动态的来设置.这种动态的参数配置,一般我们有两种方式,一种是写入到数据库,另一种就是写入到配置文件.今天,我来说说用配置文件的形式

AngularJS路由切换实现方法分析

本文实例讲述了AngularJS路由切换实现方法.分享给大家供大家参考,具体如下: 之前有在服务器端接触到angular路由切换,今天想在本地实现路由,捣鼓半天终于成功了,特把步骤整理分享下,免得大家走弯路! 1.首先引入angular.min.js和angular-route.min.js 2.然后我们来写框架index.html,index里面装的是所有页面都有的nav导航和footer页脚(我这个demo里只有nav),模板文件page1.html,page2.html,也就是中间路由切换

thinkPHP批量删除的实现方法分析

本文实例讲述了thinkPHP批量删除的实现方法.分享给大家供大家参考,具体如下: html: <li> <a class="delete" href="__URL__/deleteSelected/navTabId/__MODULE__" target="selectedTodo" posttype="string" calback="navTabAjaxMenu" rel='ids'