总结回顾---1

Posted jianxian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了总结回顾---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标签,禁用的话会跳转失败

 

以上是关于总结回顾---1的主要内容,如果未能解决你的问题,请参考以下文章

BootStrap有用代码片段(持续总结)

BootStrap实用代码片段(持续总结)

提问回顾与个人总结

python常用代码片段总结

提问回顾与个人总结

LC_Overview1_5---学会总结回顾