thinkphp学习笔记

框架项目部署(核心文件不可修改)

2015年8月19日 14:23

  1. 创建一个入口文件index.php
  2. 项目自动创建目录
  3. 访问入口文件的同时系统会自动把对应的文件创建出来

控制器和对应方法的创建:

路由解析:

通过URL地址个头参数找到指定的控制器,并进行对应方法调用请求
http://网址/index.php?m=模块名称&c=控制器&a=方法

以上URL地址信息代码不安全

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=/模块/控制器/操作方法
    兼容模式

具体URL地址模式设置(配置文件ThinkPHP/Conf/convertion.php)

URL_MODEL
common中的config.php是我们当前自己项目的配置文件,我们可以通过修改文件达到配置变量的目录,这个文件在系统运行过程中会覆盖convertion.php配置

我们系统有兼容4中URL地址模式
系统有的时候会自动创建URL地址,他会根据当前模式进行URL地址创建使用

在入口文件index.php调整当前模式为开发调试模式:

这里写图片描述

  1. 我们学习到了配置变量(核心配置变量conversion.php.当前配饰变量config.php)
  2. 快捷函数U(模块/控制器/操作方法)根据参数URL模式,创建URL地址
  3. 把框架的模式调整为开发调试模式

开发,生产模式

开发调试模式:系统需要加在24个文件,index。Php define(”APP_DEBUG”,true)

thinkphp学习笔记_第1张图片

thinkphp学习笔记_第2张图片

控制器调用视图模型:

APP_DEBUG=TRUE 显示信息更加详细

控制器和模板的关系

通常:每个控制标志在view目录都会有一个对应控制器标志的目录,里面有具体的模板文件。

例如GoodsController.class.php控制在view目录有Goods目录,里面都是Goods控制器对应的模板文件

视图模板与项目进行整合:

  1. 引入静态代码
  2. 引入css,image,js
    1. 以上3样东西,浏览器需要发送单独的http请求
    2. 引入css的时候以user为相对目录进行查询不可行,需要写成绝对路径

以上方法不利于后期维护,可以用常量进行定义

thinkphp学习笔记_第3张图片

这里写图片描述

TP框架默认引擎的使用方法{$Think.const.名称 }

模板与tp框架整合

  1. 引入静态代码
  2. 引入css,img,js文件
  3. 在入口文件地方吧css,img,js设置常量
  4. 在模板中通过常量获得具体的css,img等文件信息
  5. 把css文件本身的图片路径设置正确

url大小写设置

空操作和空控制器使用

空操作:就没有指定的操作方法
空控制器:没有指定控制器

  • http://网址/index.php/Home/User/login
  • http://网址/index.php/Home/User/hello 空操作
  • http://网址/index.php/Home/beijing/login 空控制器

一般网站是不给用户提示任何错误信息

空操作本质意思:一个对象(控制器)调用本身不存在的方法

在OOP里边,对象调用本身不存在方法,处于用户体验比较好的角度考虑,我们可以在里面做一个魔术方法:function_call();

这里写图片描述

这里写图片描述
U()制作url地址的快捷函数
C(名称)获得配置变量(convertion.php config.php)信息
C(名称,值)配置变量信息

L()获得语言变量信息
E()给页面输出错误信息
A(项目:// 模块/控制器)实例化控制器对象

系统函数库:
这里写图片描述

thinkphp学习笔记_第4张图片

项目分组

为了系统开发方便,及代码部署更加合理,我们的控制器、view视图等前后台文件不要混合在一起在物理结构上把他们分开。

thinkphp学习笔记_第5张图片

后台登陆页面与框架整合

控制器:

ManagerController.class.php

后台品字形框架页面

thinkphp学习笔记_第6张图片

thinkphp学习笔记_第7张图片

thinkphp学习笔记_第8张图片

thinkphp学习笔记_第9张图片

跨控制器调用:
优点:可以减少我们代码的工作量

thinkphp学习笔记_第10张图片

thinkphp学习笔记_第11张图片

A("模块/控制器")实例化控制器对象
R("模块/控制器/使用方法")实例化对象同时调用使用方法

框架执行流程分析及使用

2015年8月21日 10:15

thinkphp学习笔记_第12张图片

这里写图片描述

thinkphp学习笔记_第13张图片

thinkphp学习笔记_第14张图片

利用反射实现对象调用方法

thinkphp学习笔记_第15张图片

这里写图片描述

thinkphp学习笔记_第16张图片

thinkphp学习笔记_第17张图片

thinkphp学习笔记_第18张图片

thinkphp学习笔记_第19张图片

thinkphp学习笔记_第20张图片

这里写图片描述

这里写图片描述

这里写图片描述

thinkphp学习笔记_第21张图片

数据库连接及model模型定义使用

2015年8月21日 12:16

  1. 连接数据库变量

    thinkphp学习笔记_第22张图片

  2. 字段缓存

thinkphp学习笔记_第23张图片

  1. 可以根据情况对当前的model模型进行个性化设置

    thinkphp学习笔记_第24张图片

  2. 在入口文件定义一个输出调试函数

    thinkphp学习笔记_第25张图片

实例化model的三种方式

thinkphp学习笔记_第26张图片

这里写图片描述

thinkphp学习笔记_第27张图片

注意:如果没有对应的model模型文件类,也可以直接实例化model对象进行操作

数据查询

select()是数据模型的一个指定方法,可以获取数据表的数据信息
1.配置smarty
a)配置变量信息
i. convertion.php
ii. Behavior行为配置变量信息
iii. 系统程序里面有一些l零散

thinkphp学习笔记_第28张图片

thinkphp学习笔记_第29张图片

这里写图片描述

这里写图片描述

thinkphp学习笔记_第30张图片

thinkphp学习笔记_第31张图片

例如:

thinkphp学习笔记_第32张图片

这里写图片描述

thinkphp学习笔记_第33张图片

thinkphp学习笔记_第34张图片

这里写图片描述

thinkphp学习笔记_第35张图片

thinkphp学习笔记_第36张图片

thinkphp学习笔记_第37张图片

你可能感兴趣的:(php)