总结回顾---1

总结下今天学习的知识点

系统配置文件:ThinkPHP/Conf/convention.php

分组 / 平台配置文件:Application/Home/Conf/config.php

应用配置文件:Application/Common/Conf/config.php

【一】ThinkPHP模型M

(1)配置数据库连接

数据库的连接配置可以在系统配置文件ThinkPHP/Conf/convention.php中找到

实际开发里,前台后台一般使用一个数据库,也就是说一个项目一个数据库,所以一个应用使用一个数据库,所以放到应用层级的配置文件Application\Common\Conf\config.php

(2)创建数据库和数据表

数据库名:db_oa

数据表名:  sp_dept(department部门);

准备好sql语句.

知识点:not null不为空;auto_increment自增;default默认;

这里除了通过命令行cmd创建,还可以使用Navicat Premium。它是一个可多重连接的数据库管理工具,它可让你以单一程序同时连接到MySQL、SQL Server、SQLite、Oracle

(3)模型创建

(4)模型实例化(创建控制器,连接数据表)

模型的本质是类,类在使用时需要实例化操作。1. 普通实例化;2. 快速实例化方法U、M

(5)CURD操作

模型操作数据表的基本操作

【二】实用项

代码调试

(1)跟踪信息;

(2)两种模式,在ThinkPHP中为了方便开发,提供了两种模式:开发/模式模式,生产模式;

(3)sql调试;语法:$model -> getLastSql()--小驼峰命名法,表示获取当前模型里成功执行的最后一条sql语句。

别名:因为getLastSql书写不便,所以在3.2版本之后起了个别名_sql,用法与之前一致。语法:$model->_sql();

(4)性能调试,在ThinkPHP中系统提供了性能测试的快速方法G。

目前所学过的快速方法:U(URL组装),D(实例化自定义模型),M(实例化父类模型),G(性能测试)

【三】AR模式

(1)简介:AR模式即Active Record模式,是一个对象关系映射(ORM) 技术。每个AR 类代表一张数据表(或视图),  数据表(或视图)的字段在AR 类中体现为类的属性,一个AR实例

则表示表中的。

AR模式核心:三个映射 / 对应

AR类   ==   表;(模型类关联了数据表)

AR类属性  ==   表的字段;

AR类实例   ==   表的记录;

(2)应用(AR模式中的CURD操作)

增加:$model ->add();//返回新增记录的主键id

更新:$model ->save();//返回值为影响行数

查询:AR模式没有查询操作

删除:$model -> delete();

【四】ThinkPHP视图V

(1)什么是视图?

MVC中的V(view),主要负责信息的输出展示

(2)视图的创建?

创建位置:分组目录Home下的View目录下指定的控制器名目录中,然后将模板绑定到控制器的方法中,一个公共控制器中可以绑定多个模板

注意:位置问题,控制器同名

①位置是view下与控制器同名的目录中;view下一级目录为控制器,二级目录为方法(对应的模板文件)

②如果有多个模板文件,则按照上面要求进行创建

(3)视图的展示?

在smarty中展示模板用的display方法,在ThinkPHP里同样是display方法

display在ThinkPHP中的3种语法格式:

①$this->display();                                                                                       展示当前控制器下与当前请求方法名一致的模板文件

②$this->display(模板文件名--不带后缀);                                                    展示当前控制器下指定模板文件

③$this->display(view目录下目录名/模板文件名--不带后缀);                      展示指定控制器下的指定模板文件

(4)变量分配:将变量从控制器的方法里传递到模板中展示的过程即为变量分配

(5)变量分隔符:ThinkPHP默认变量分隔符为{},可以在配置文件ThinkPHP/Conf/convertion.php里找到配置项

(6)模板常量替换机制

模板常量来源?

这里模板常量是通过模板内容替换机制来实现的,并非是常量的定义。所以模板常量并非是常量,而是字符串。

替换机制可以查看行为文件ThinkPHP/Library/Behavior/ContentReplace.Behaviour.class.php

拓展:查看后即可得出行为文件命名,文件名.Behaviour.class.php。

(5)获取模板内容

在ThinkPHP里有一个方法与display展示模板方法类似,叫做fetch()方法

$this->display();用来展示模板内容,而$this->fetch常用来获取模板内容,

该语法封装在系统的函数库ThinkPHP/Common/functions.php里

(7)视图注释

回顾下HTML的注释<!--注释内容-->,普通的注释在页面源码中会被输出

(8)变量分配

变量输出:简单变量,一维数组,二维数组,对象变量

变量的分配语法相同:都是assign(‘模板中的变量‘,PHP中的变量);

对象变量输出

对象在实例化之后,会保存到变量中,而这个变量也可以分配到模板里去

首先创建类,然后实例化类来创建对象

注意:

1. 对于多个人开发项目,函数名很容易重复。用了类之后,类之间的方法名被类分开,重名也没关系。

但是当项目更大时,类名也有可能重复。此时就要用到命名空间,来避免重名。所以创建类之前必须定义命名空间

2. 创建类文件时,必须加上文件名.class.php

Student.class.php,

TestController.class.php,该文件里不用引入,直接实例化类,输出

object(Admin\Controller\Student)#6 (0) {
}

类的实例化:

1. 之所以不用引入类就能实例化,主要因为命名空间

命名空间运行流程:当需要引入或使用元素时,默认先去当前空间下去找。而Student.class.php在当前空间下Admin\Controller,所以会找到执行。若找不到则会报错

2. 如果不写命名空间、include、require则会默认从当前空间下去查找需要的元素,若找不到则报错

拓展:设置编码字符集:

index.php入口文件:
//给入口文件添加header头声明字符集
header(‘Content-Type:text/html;charset=utf-8‘)

(9)系统变量

ThinkPHP里提供了以下几个系统级别的变量(可以理解为超全局变量在模板中的使用)

$Think.server;$Think.get;$Think.post;$Think.request;$Think.cookie;$Think.session;$Think.config;

(11)视图中使用函数

在实际开发中,有些变量不能直接使用。举个例子,数据表中存储时间一般都为时间戳格式,展示的时候需要处理格式化,操作相对繁琐。这个时候便涉及到了视图中使用函数

语法格式:{$变量|函数名1|函数名2=参数1,参数2...,###}

(12)默认值

使用场景:在论坛的个性签名处,如果用户什么都没写,一般默认会显示-----------→这个家伙很懒,什么都没留下

默认值:当某个变量不存在或为空时,便会显示默认字符或默认值

语法:{$变量名|default = 默认值},结合上面视图中函数的使用。这里可以理解为{$变量名|函数名=参数},而default为ThinkPHP封装的函数

(13)运算符

加减乘除取余,自增自减

{$a+$b},{$a-$b},{$a*$b},{$a/$b},{$a%$b},{$a++}或{++$a},{$a--}或{--$a}

(14)文件引入

提出公共部分,后期维护方便。语法:<include file=‘需要引入的模板文件‘/>

(15)视图中数组循环遍历volist、foreach

在ThinkPHP里,系统提供了两个标签volist和foreach来实现数组在模板中的遍历操作

(16)if标签

PHP中if判断作用是流程控制,在ThinkPHP里同样也可以用于流程控制

语法:(注意<if></if>标签闭合)

(17)PHP标签

PHP标签指在模板中使用PHP语法格式

ThinkPHP支持两种形式标签①PHP内置的标签<?php 代码段 ?>;②ThinkPHP封装的PHP标签<php>代码段</php>

在配置项里,有一个配置项(TMPL_DENY_PHP即tmplate deny php拒绝php模板),可以禁用PHP标签。该配置项在系统配置文件ThinkPHP/Conf/convention.php里

// 布局设置
‘TMPL_DENY_PHP‘         =>  false, // 默认模板引擎是否禁用PHP原生代码

开启后便会禁用原生PHP代码(不建议禁用),此时在模板文件里<?php ?>原生PHP标签失效。下面来验证下,发现报错

:(
模板禁用PHP代码

不建议禁用。若禁用了原生PHP标签,某些功能会异常。比如成功跳转和失败跳转,因为成功跳转和失败跳转使用了原生PHP标签,禁用的话会跳转失败

原文地址:https://www.cnblogs.com/jianxian/p/8673348.html

时间: 2024-10-19 19:57:06

总结回顾---1的相关文章

Spring知识点回顾(01)

Spring知识点回顾(01) 一.依赖注入 1.声明Bean的注解 @Component @Service @Repository @Controller 2.注入Bean的注解 @Autowired @Inject @Resource 二.加载Bean 1.xml方式 - applicationcontext.xml : Beans, Bean, Component-Scan 2.注解方式 - @Configuration,@ComponentScan,@Bean 用@Configurati

Atitit.播放系统规划新版本 v4 q18 and 最近版本回顾

Atitit.播放系统规划新版本 v4  q18  and 最近版本回顾 1 版本12 (ing)4 1.1 无映射nas系统..4 1.2 图片简介搜刮其4 1.3 12.8. 电影图片增加png,bmp等格式支持,目前只有jpg方式95 1.4 12.9. 电影简介增加utf8编码支持,目前只有gbk编码方式95 1.5 12.10. 路径item俩端过滤空格,增强对路径 的容错处理95 1.6 不同分店的分类配置分离5 1.7 问题自动反馈支持5 1.8 规划h5本地缓存系列 5 1.9 

程序员之路--回顾2015,展望2016

一.前言 回顾2015年,有太多的事情,从暑假末的来北京找工作,到家里兄弟的结婚,再到自己喜欢的人也来到北京找工作,,,有太多的需要来回忆,来记录.今天就在此刻(2016年1月3日下午10:17)来简单的对2015年的自己进行总结,然后规划一下2016年的奋斗目标. 二.先谈谈工作 从暑假结束快要结束的时候,看看原来写的随笔,也就是2015年8月22日,和同学一起踏上开往北京的火车.用了一个月的时间找到了一份自己还觉得不错的工作.找工作那一个月里面每天吃饭.看书.面试.睡觉.这里想对将要找工作的

linux习题回顾

linux习题回顾 1.1 创建一个压缩包/etc,我想让压缩包上面有个日期/时间. [[email protected] ~]# tar zcf /tmp/etc-$(date+%F).tar.gz /etc [[email protected] ~]# ls -l /tmp -rw-r--r--. 1 root root 9731838 Aug  3 19:15 etc-2017-08-03.tar.gz 1.2 已知/oldboy/test.txt文件内容为: oldboy xizi xi

面向对象【day07】:多态-面向对象使用场景--知识点回顾

本节内容 多态 面向对象使用场景 知识点回顾 一.多态 一.概述 多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作.简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针. 那么,多态的作用是什么呢?我们知道,封装可以隐藏实现细节,使得代码模块化:继承可以扩展已存在的代码模块(类):它们的目的都是为了--代码重用.而多态则是为了实现另一个目的--接口重用!多态的作用,就是为了

react回顾

读书就像盖房子,根基要正,刚开始要选一些文风简明的...react 小书 就不错. 创建组件(extends 或是 stateless) 父子组件之间的通信(super) 事件监听(event对象和this) 渲染列表(map) 状态提升(state) 挂载阶段声明周期 更新阶段生命周期(setState) 容器类组件(this.props.children) Proptypys验证 defaultProps 高阶组件(返回新的组件类) getChildContext(childContextT

我的2017OKR - 年中回顾

自从订阅了吴军老师的<硅谷来信>之后,对其中一篇介绍Google的目标管理方法OKR的文章记忆犹新.想到自己喜欢在每年年初的时候给自己定制一些规划,于是乎了解了一下OKR并重构了一下我的2017年计划,并借此机会进行一个年中(不是终)回顾,希望能有越来越多人使用OKR给自己设定目标规划(目前自己正在向自己创建的有书共读微信群里的书友推荐使用),并努力去完成计划,当一年结束时看看自己完成的情况,会有不自觉地自豪感(前提是你得尽力去完成60%以上的情况下). 一.也谈OKR是个什么鬼 1.1 什么

2017ACM省赛总结与生涯回顾

省赛本身的内容没有太多可说的,和去年一样和swt和ly这对情侣一队. 先说比赛相关的内容.热身赛A题不会,B题和C题都是水题,但是没有找出C的坑点,所以热身赛只做出了一题,赛后我也没有去解决,这次我纯怀打酱油的心理,没有怎么复习过.晚饭碰到聪神,安慰我说是给明天攒人品.晚上也按时睡觉了.正赛早上闹钟起来,挺困的,洗了头出门了.总之一切也比较平常.先看了三道比较水的题,我感觉我看的F比较水,先上去敲了,过一会裁判发来提示关于G的mod印刷问题,我以为只是一般的解释,没有在意直接关了,其实是他们正在

订餐App回顾与总结

MY-HR 成员: 角色分配 学号 博客园 丘惠敏 PM项目经理 201406114203 http://www.cnblogs.com/qiuhuimin/ 郭明茵 用户 201406114204 http://www.cnblogs.com/mingyin/ 李浩然 产品负责人 201406114227 http://www.cnblogs.com/range/ 刘皓 Scrum Master 201406114229 http://www.cnblogs.com/shuaibi/ 三次贡献

java学习第二天 回顾运算符

一.回顾运算符: 补充: 三元运算符. 代码: /* 三目运算符: 三元运算符: 结构: 条件?条件成立的结果 :条件不成立的结果 ; */ class Demo1 { public static void main(String[] args) { int a = 10; int b = 9; int c =  b++>=a ? a++ : b+a; System.out.println(a);  //10 System.out.println(b);  //10 System.out.pri