ThinkPHP的结构如下:

在ThinkPHP\Library\Think文件夹中,几个重要的文件

1、App.class.php 框架核心类文件

2、Think.class.php 每次请求都要执行的类

3、Controller.class.php 控制器的父类

4、Model.class.php 模型的父类

5、View.class.php 视图的父类

搭建ThinkPHP的环境

在站点下新建index.php,代码如下:

运行后出现欢迎界面,在说明系统自动生成了ThinkPHP的项目目录,并写入了初始的控制器和方法。

自动生成的目录如下:

创建控制器

  1. 控制器存放在Controller文件夹中
  2. 命名规范:控制器的名称+Controller.class.php
  3. 类名和文件的名称要一致
  4. 类名用帕斯卡命名法
  5. 尽量区分大小写,windows不区分大小写,但Linux中区分
  6. ThinkPHP默认的编码是UTF-8的。
  7. 如果地址中没有写控制器,这默认调用Index控制器,如果没有写方法,则默认调用index方法

命名法:

1、帕斯卡命名法:首字母大写   UserName   MyNameIsLiping

2、骆驼命名法:userName     _user_name

3、匈牙利命名法:前缀(类别)+名字     radSex    txtUsername   iIength  oStu

ThinkPHP的路由

结合U()方法使用

1、普通模式

2、pathinfo模式

http://网址/入口文件(index.php)/分组(平台)/控制器/方法

比如:http://localhost/index.php/home/index/index

3、rewrite()重写模式

正则表达式来重写

4、兼容模式

参数s=/分组/控制器/方法。

ThinkPHP中,默认使用pathinfo模式。

定义和调用TP的模板

所有的模板都要放在view文件夹下。

规则:一个控制器对应一个文件夹,一个方法对应一个文件

TP模板的调用

TP系统常量

项目后台的搭建

1、在Application文件夹下新建一个Admin文件夹,在Admin文件夹中新建Controller和View文件夹。

2、在Admin\Controller控制器中新建一个LoginController.class.php页面,代码如下:

3、在login.html中更改css、js、img的路径

表单提交地址更改

4、在Admin\Controller文件夹中新建ManagerClass.php文件

5、对应的index页面中更改如下:

6、注意更改index、head、left、right页面中的路径

模板中常量字符串替换

系统常量

__ROOT__:当前网站路径

__APP__

__SELF__ :当前路径

__MODULE__:当前分组

__CONTROLLER__:当前控制器

__ACTION__:当前方法

__URL__等于__CONTROLLER__

ThinkPHP3(结构,路由,模板的调用,后台搭建,系统常量)的更多相关文章

  1. tp5.0在控制器中和在模板中调用配置文件中的常量

    框架配置文件config.php中定义 'view_replace_str'  =>  [ '__MEMBER__'=> '/static/member',         '__uplo ...

  2. 0623-TP框架整理一(下载、入口文件、路由、创建控制器、调用模板、系统常量、命名空间)

    一.下载解压后用ThinkPHP(核心)文件 核心文件夹(ThinkPHP)不要改,是作用于全局的,有需要可以改应用目录(Application) 二.创建入口文件: 运行后出现欢迎界面,在说明系统自 ...

  3. 搭建一个BS 的简单SOA 架构(直接通过jquery 调用后台的 wcf 服务的架构)(第一天)

    亲们!还在用传统的三层架构吗?你还在对SOA架构 不了解吗? 那就赶快来学习下一个 比较简单的SOA的架构吧!我会手把手的 教会你们怎么搭建这个 简单的SOA的架构. 其中用的技术点保证  WCF,a ...

  4. #使用abp框架与vue一步一步写我是月老的小工具(2) 后台搭建初体验

    #使用abp框架与vue一步一步写我是月老的小工具(2) 后台搭建初体验 一.续上前言 关于这个小玩意的产品思考,假设我暂时把他叫我是月老热心人 这是一个没有中心的关系链,每个人进入以后都是以自己为中 ...

  5. YbSoftwareFactory 代码生成插件【二十五】:Razor视图中以全局方式调用后台方法输出页面代码的三种方法

    上一篇介绍了 MVC中实现动态自定义路由 的实现,本篇将介绍Razor视图中以全局方式调用后台方法输出页面代码的三种方法. 框架最新的升级实现了一个页面部件功能,其实就是通过后台方法查询数据库内容,把 ...

  6. C++模板学习:函数模板、结构体模板、类模板

    C++模板:函数.结构体.类 模板实现 1.前言:(知道有模板这回事的童鞋请忽视) 普通函数.函数重载.模板函数 认识. //学过c的童鞋们一定都写过函数sum吧,当时是这样写的: int sum(i ...

  7. thinkjs学习-this.assign传递数据和ajax调用后台接口

    在页面加载时,就需要显示在页面上的数据,可以在后台使用this.assign赋值,在前台通过ejs等模板获取:用户点击按钮,或者触发某些事件和后台进行交互时,就需要用到ajax调用后台接口.本文通过一 ...

  8. 基于layUI调用后台数据实现区域信息级联查询

    基于layUI调用后台数据实现区域信息级联查询 1.基本思路 后台提供根据区域编码查询区域列表公共接口 页面初始化调用后台接口加载所有省份 点击省份将省份区域编码传入后台查询该省份下所有地市信息,以此 ...

  9. SpringBoot&Dubbo&Zookeeper远程调用项目搭建

    序言 Dubbo一款分布式服务框架,作为阿里巴巴SOA服务化治理方案的核心框架,通过高性能和透明化的RPC实现服务的远程调用,对服务的负载均衡以及项目的耦合性提供很强的解决方式;具体Dubbo的介绍和 ...

随机推荐

  1. 各位大神,我请教一个问题,我在Android studio上创一个project显示错误

    Error:FAILURE: Build failed with an exception. * Where: Build file 'C:\Users\Administrator\AndroidSt ...

  2. 文件夹上传插件webupload插件

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 先说下要求: PC端全平台支持,要求支持Windows,Mac,Linux 支持所 ...

  3. json-server模拟服务器API

    一.npm安装 npm install --global json-server 二.使用:创建一个json数据文件,比如: { "students": [{ "id&q ...

  4. C++智能指针总结

    本文介绍c++里面的四个智能指针: auto_ptr, shared_ptr, weak_ptr, unique_ptr 其中后三个是c++11支持,并且第一个已经被c++11弃用. 为什么要使用智能 ...

  5. NodeJS基础学习总结

    一.nodeJS解释 JS是脚本语言,脚本语言都需要一个解析器才能运行.对于写在HTML页面里的JS,浏览器充当了解析器的角色.而对于需要独立运行的JS,NodeJS就是一个解析器. 每一种解析器都是 ...

  6. nginx location配置说明

    nginx location语法规则:location  [=|~|~*|^~]  /uri/  { … } nginx的location匹配的变量是$uri 规则优先级 = 高于 ^~ 高于 ~* ...

  7. nginx架构分析之 事件驱动模型

    事件驱动模型 事件驱动模型是实现异步非阻塞的一个手段.事件驱动模型中,一个进程(线程)就可以了. 对于web服务器来说,客户端A的请求连接到服务端时,服务端的某个进程(Nginx worker pro ...

  8. curl 设置超时时间

    使用CURL时,有两个超时时间:一个是连接超时时间,另一个是数据传输的最大允许时间.连接超时时间用--connect-timeout参数来指定,数据传输的最大允许时间用-m参数来指定. curl -- ...

  9. 访问者模式(Visitor Patten)

    参考文章: http://www.importnew.com/15561.html 定义: 封装某些作用于某种数据结构中各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作. um ...

  10. sentinel-dashboard安装、运行(docker)

    https://github.com/alibaba/Sentinel/releases 下载源码 修改成支持nacos(略) mkdir /opt/sentinel-dashboard把编译好的se ...