ThinkPHP讲解(一)框架基础

ThinkPHP框架知识点过于杂乱,接下来将以问题的形势讲解tp(ThinkPHP的简写)

  1.tp框架是什么,为什么使用是它?

   一堆代码的集合,里边有变量、函数、类、常量,里边也有许多设计模式MVC、AR数据库、单例等等。框架可以节省我们50-60%的工作量,我们全部精力都集中在业务层次。

      为什么使用框架

      框架可以帮组我们快速、稳定、高效搭建程序系统

      该系统由于框架的使用使得本身的维护性、灵活性、适应客户需求方面得到最大化的增强。

      使用框架的过程中可以使得我们的注意力全部集中业务层面,而无需关心程序的底层架构。

  2.tp框架的入口文件,以及各文件夹和文件的作用?

   入口文件是index.php

(1)thinkphp_3.2.3 full文件下的文件名

    (2)tp/ThinkPHP文件里的文件

 

(3)tp/ThinkPHP/Conf文件夹下的文件

 

   (4)tp/ThinkPHP/Library里的文件

 

(5)tp/ThinkPHP/Library/Think文件夹下的文件

3.怎样定义tp框架入口文件?

<?php// 应用入口文件// 检测PHP环境
if(version_compare(PHP_VERSION,'5.3.0','<'))  die('require PHP > 5.3.0 !');// 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false
define('APP_DEBUG',true);// 定义应用目录
define('APP_PATH','./Jiaowu/');    //后面的Jiaowu是运行的新的应用目录// 引入ThinkPHP入口文件
require './ThinkPHP/ThinkPHP.php';// 亲^_^ 后面不需要任何代码了 就是如此简单

  

  4.运行入口文件时,会生成哪些文件夹

Jiaowu
├─Common         应用公共模块
│  ├─Common      应用公共函数目录
│  └─Conf        应用公共配置文件目录
├─Home           默认生成的Home模块
│  ├─Conf        模块配置文件目录
│  ├─Common      模块函数公共目录 
│  ├─Controller  模块控制器目录    ☆☆
│  ├─Model 模块模型目录 
│ └─View 模块视图文件目录
├─Runtime 运行时目录
│ ├─Cache 模版缓存目录
│ ├─Data 数据目录
│ ├─Logs 日志目录
│ └─Temp 缓存目录

  

  5.MVC模式的原理

 

 

MVC: Model 模型 模型(数据)层; View 视图 视图层; Controller控制器 逻辑层.

M:操作数据(数据连接,数据访问)
V:提供显示模板
C:实现业务逻辑

MVC:约定胜于配置

 

  6.四种访问方法?

tp框架url地址可以由以下四种

  1. http://网址/index.php?m=XX&c=XX&a=XX   基本get模式
  2. http://网址/index.php/模块/控制器/操作方法  路径模式pathinfo
  3. http://网址/模块/控制器/操作方法           rewrite重写模式
  4. http://网址/index.php?s=/模块/控制器/方法    兼容模式

U() 制作url地址的快捷函数

 在jiaowu/home/conf/config.php进行配置

 

<?php
return array(//'配置项'=>'配置值''URL_MODEL'             =>  1,   // 0 (普通模式); 1 (PATHINFO 模式); 2 (REWRITE  模式); 3 (兼容模式)  默认为PATHINFO 模式
);

 

  

 

7.如何做出控制器里面的操作方法,怎样将相应的操作方法所对应的模班页面做出来?

      之前访问的方式:访问的具体页面;    MVC访问的方式:访问控制器下的操作(方法),不是一个具体页面

   (1) 做出控制器里的操作方法具体如下:在Jiaowu/Home/Controller/IndexController.class.php文件里

namespace Home\Controller; //在该文件夹下定义一个虚拟的命名空间use Think\Controller;  //调用该目录下的父类class IndexController extends Controller { //继承该父类,定义一个子类public function index()  //indexcontroller下的index操作action,放在控制器里面的方法{    echo "welcome!";}
}

  

    (2)将相应的操作方法所对应的模班页面做出来步骤如下

                 第一:在Jiaowu/Home/Controller/IndexController.class.php文件里的控制器里做操作方法

<?php
namespace Home\Controller; //在该文件夹下定义一个虚拟的命名空间use Think\Controller;  //调用该目录下的父类class IndexController extends Controller { //继承该父类,定义一个子类public function index()  //indexcontroller下的index操作action,放在控制器里面的方法{    $this->display();}
}

                  第二:在Jiaowu/Home/View文件下新建一个和第一步中的子类里面的函数名一样的html文件index.html,在该文件里作页面

 

转载于:https://www.cnblogs.com/zst062102/p/5585796.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/403602.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kundera 2.1 发布,NoSQL 的 ORM 框架

Kundera 2.1 发布&#xff0c;Kundera 是一个 JPA 2.0 兼容的 NoSQL 数据存储的对象映射框架。目前支持的 NoSQL 服务器包括&#xff1a;Cassandra、HBase、MongoDB。 Kundera 2.1 包含 bug fixes, 性能提升以及如下的新特性&#xff1a; CQL Version configurationBatch inser…

uni-app文档需要注意细节点

1.非H5端&#xff0c;不能使用浏览器自带对象&#xff0c;比如document、window、localstorage、cookie等&#xff0c;更不能使用jquery等依赖这些浏览器对象的框架。因为各家小程序快应用都不支持这些对象。 2.APP 和小程序的导航栏和 tabbar 均是原生控件&#xff0c;元素区…

VMware里装XP 没有找到硬盘驱动器

遇到问题&#xff1a;解决&#xff1a;要给虚拟机配上一个虚拟的硬盘驱动器。在VMWare的虚拟机配置里面给这个虚拟机增加硬盘&#xff0c;选IDE模式&#xff0c;而非SCSI&#xff0c;设定硬盘大小和文件名就可以了。转载于:https://www.cnblogs.com/haxianhe/p/9271196.html

serv-u无法自动启动:无法开始服务器!服务器执行缺少

我在服务器上安装了一个serv-u 6.3版本&#xff0c;安装的时候一切正常。安装后想设置为自动开设&#xff08;系统服务&#xff09;勾打上时候&#xff0c;开设报错。在服务里面查看&#xff0c;发现servu的服务器没有起来&#xff0c;手动启动也不行。网上查了很多方法&#x…

uni-app微信小程序登录;uni-app微信登录小程序;uni-app微信登录app;

思路&#xff1a; 通过uni-app文档可知:实现微信登录&#xff0c;无论是app还是小程序&#xff0c;都需要唯一标识openid&#xff0c;然后通过openid取掉后端的登录接口&#xff0c;获取cookie然后做登录跳转&#xff1b; 【-【-【必须先调用微信的登录接口uni.login&#xff0…

线性表 - 数据结构和算法06

线性表 让编程改变世界 Change the world by program 感受线性表的存在 各位鱼油大家好&#xff0c;从今天开始小甲鱼带大家开始学习第一个数据结构&#xff1a;线性表 先让我我们通过图片来感受一下&#xff0c;线性表的特性吧。 [caption id"attachment_758" a…

mariadb允许远程访问权限

允许远程访问权限&#xff1a; GRANT ALL PRIVILEGES ON *.* TO root%IDENTIFIED BY 你的密码 WITH GRANT OPTION;

关于_WIN32_WINNT的含义

From: http://blog.csdn.net/gzzheyi/article/details/7190143 在使用一些新版本的API&#xff0c;或者控件的新特性&#xff08;比如新版的ComCtl32.dll&#xff09;的时候,你可能会得到“error C2065: undeclared identifier.“这个错误。原因是这些功能是依赖于你的操作系统…

linux 下oracle基于raw扩充表空间步骤

数据中基于RAW格式的表空间扩容。以下是详细步骤&#xff1a;查看已有裸设备<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />#cd /dev/raw#ls -rtl查看之前裸设备大小情况/查看之前lv大小#blockdev --getsize /dev/raw/raw37204…

uni-app微信小程序获取手机号;微信小程序获取手机号,获取到后需要进行解密;微信小程序获取手机号失败 Error:该appId没有权限

方法1.uni-app登录加获取手机号解密—直接看此篇即可解决 微信小程序获取手机号注意点&#xff1a; 1.需要先登录&#xff0c;微信小程序登录看这篇 2.手机号获取到时加密的&#xff0c;需要后端解密或者前端自己解密&#xff08;解密时候就会用到登录得到的session_key&#…

js reduce数组循环相加x+y

var num [1,2,3]var dd num.reduce((x, y) > {return x y})

MinGW - Minimalist GNU for Windows

From: http://sourceforge.jp/projects/mingw/releases/ RSSDownload List Review Average 4.252 Reviews5 Stars 394 Stars 23 Stars 22 Stars 21 Star 7Your ratingReview this project项目描述 MinGW是指只用自由软件来生成纯粹的Win32可执行文件的编译环境&#xff0c;它是…

Swift 3.0 on Ubuntu 15.10

一、安装swift 3.0 1. 下载 https://swift.org/download/ 找到swift-3.0 ubuntu 15.10版本下载&#xff1a; https://swift.org/builds/swift-3.0-preview-1/ubuntu1510/swift-3.0-preview-1/swift-3.0-preview-1-ubuntu15.10.tar.gz 2. 解压文件&#xff0c;然后移动改名到/op…

解决uni-app官方弹框popup关闭不了问题;/pages/extUI/popup/popup;uni-app弹框popup打开调用事件。unin-app弹框封装;

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210716165216781.png?x-oss-processimage/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2lfYW1fYV9kaXY,size_16,color_FFFFFF,t_70)官方uni-app的弹框popup模板问题: 官方的弹框示…

uni-app自定义tabBar;uni-app小程序自定义tabBar;uni-app小程序修改中间tabBar导航栏大小;uni-app中间导航栏凸起;uni-app修改底部导航栏

需求&#xff1a;要求小程序&#xff0c;中间的tabBar自定义凸起或者图标变大&#xff1b; 问题&#xff1a;查看uni-app的tabBar文档可知&#xff0c;小程序是不支持midButton的&#xff1b; 解决思路&#xff1a;隐藏uni-app原有的tabBar&#xff0c;然后换成自己手写的导航…

jq localStorage

$(function () {if(!window.localStorage){alert("浏览器不支持localstorage");return false;}else{var storagewindow.localStorage;$(#headerA li).eq(2).addClass(active)}})

c++中BOOL和bool的区别

From: http://blog.csdn.net/zhongguoren666/article/details/8472805 一&#xff1a;在网上找到了BOOL和bool的区别&#xff1a; 1、类型不同 BOOL为int型 bool为布尔型 2、长度不同 bool只有一个字节 BOOL长度视实际环境来定&#xff0c;一般可认为是4个字节 3、取值不同 bo…

常见端口列表

常见端口列表TCP端口7 回显9 丢弃11 在线用户13 时间服务15 网络状态17 每日引用18 消息发送19 字符发生器20 ftp数据21 文件传输22 SSH端口23 远程终端25 发送邮件31 Masters Paradise木马37 时间39 资源定位协议41 DeepThroat木马42 WINS 主机名服务43 Wh…

[JavaScript] DOM操作技术

1. 动态脚本使用<script>元素可以向页面中插入JavaScript代码&#xff0c;一种方式是通过src属性包含外部文件&#xff0c;另一种方式是用这个元素本身来包含代码。动态脚本指在页面加载时不存在&#xff0c;但将来某时通过修改DOM动态添加的脚本。动态加载的外部JavaScr…

uni-app小程序 点击页面滚动到指定位置

uni.pageScrollTo({scrollTop: 0,duration: 300,})