總結回顧---1

總結下今天學習的知識點php

系統配置文件:ThinkPHP/Conf/convention.phphtml

分組 / 平臺配置文件:Application/Home/Conf/config.phpsql

應用配置文件:Application/Common/Conf/config.php數據庫

【一】ThinkPHP模型M數組

(1)配置數據庫鏈接cookie

數據庫的鏈接配置能夠在系統配置文件ThinkPHP/Conf/convention.php中找到session

實際開發裏,前臺後臺通常使用一個數據庫,也就是說一個項目一個數據庫,因此一個應用使用一個數據庫,因此放到應用層級的配置文件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標籤,禁用的話會跳轉失敗

相關文章
相關標籤/搜索