版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、thinkphp框架入門學(xué)問_ thinkphp 是一個(gè)免費(fèi)開源的,快速、簡(jiǎn)潔的面對(duì)對(duì)象的 輕量級(jí)php開發(fā)框架 ,創(chuàng)立于2021年初,遵循apache2開源協(xié)議發(fā)布,是為了靈敏web應(yīng)用開發(fā)和簡(jiǎn)化企業(yè)應(yīng)用開發(fā)而誕生的。thinkphp從誕生以來(lái)始終秉承簡(jiǎn)潔 有用的設(shè)計(jì)原則,在保持杰出的性能和至簡(jiǎn)的代碼的同時(shí),也注重易用性。并且擁有眾多的原創(chuàng)功能和特性,在社區(qū)團(tuán)隊(duì)的主動(dòng)參加下,在易用性、擴(kuò)展性和性能方 面不斷優(yōu)化和改進(jìn),已經(jīng)成長(zhǎng)為國(guó)內(nèi)最領(lǐng)先和最具影響力的web應(yīng)用開發(fā)框架,眾多的典型案例確??梢苑€(wěn)定用于商業(yè)以及門戶級(jí)的開發(fā)。 thinkphp基于mvc的php框架 m model 模型 工作:
2、負(fù)責(zé)數(shù)據(jù)的操作 v view 視圖(模板) 工作:負(fù)責(zé)前臺(tái)頁(yè)面顯示 c controller 掌握器(模塊) 工作:描述功能 thinkphp核心文件介紹 thinkphp.php 框架入口文件 common 框架公共文件 conf 框架配置文件 extend 框架擴(kuò)展名目 lang 核心語(yǔ)言包名目 lib 核心類庫(kù)名目 behavior 核心行為類庫(kù) core 核心基類庫(kù) driver 內(nèi)置驅(qū)動(dòng) cache 內(nèi)置緩存驅(qū)動(dòng) db 內(nèi)置數(shù)據(jù)庫(kù)驅(qū)動(dòng) taglib 內(nèi)置標(biāo)簽驅(qū)動(dòng) template 內(nèi)置模板引擎驅(qū)動(dòng) template 內(nèi)置模板引擎 tpl 系統(tǒng)模板名目 #項(xiàng)目名目結(jié)構(gòu)及說(shuō)明: home
3、 前臺(tái)應(yīng)用文件夾 common 項(xiàng)目公共文件名目 conf 項(xiàng)目配置名目 lang 項(xiàng)目語(yǔ)言名目 lib 項(xiàng)目類庫(kù)名目 action action類庫(kù)名目 behavior 行為類庫(kù)名目 model 模型類庫(kù)名目 widget widget類庫(kù)名目 runtime 項(xiàng)目運(yùn)行時(shí)名目 cache 模板緩存名目 data 數(shù)據(jù)緩存名目 logs 日志文件名目 temp 臨時(shí)緩存名目 tpl 項(xiàng)目模板名目 thinkphp 3 mvc模式和url訪問 什么是mvc m -model 編寫model類 對(duì)數(shù)據(jù)進(jìn)行操作 v -view 編寫html文件,頁(yè)面呈現(xiàn) c -controller 編寫類文件(u
4、seraction.class.php) thinkphp的mvc特點(diǎn) 編寫特別敏捷,只有view都可以執(zhí)行 thinkphp的mvc對(duì)應(yīng)的名目 m 項(xiàng)目名目/應(yīng)用名目/lib/model v 項(xiàng)目名目/應(yīng)用名目/tpl c 項(xiàng)目名目/應(yīng)用名目/lib/action url訪問c url的4種訪問方式 1.pathinfo 模式 l(.tpl) 更換模板文件的后綴名(修改配置文件) tmpl_template_suffix=.html,/更改模板文件后綴名 b、修改模板文件名目層次 tmpl_file_depr=_,/修改模板文件名目層次 c、模板主題 default_theme=your,/
5、設(shè)置默認(rèn)模板主題 需要在tpl下面新建一個(gè)your文件夾作為模板主題文件夾 如何動(dòng)態(tài)修改模板主題? 1、在后臺(tái)預(yù)備一個(gè)功能,修改config.php文件中的默認(rèn)模板項(xiàng) 2、通過(guò)url傳遞 t=主題 參數(shù)可以修改不同的模板 default_theme=your,/設(shè)置默認(rèn)模板主題 tmpl_detect_theme=true,/自動(dòng)偵測(cè)模板主題 theme_list=your,my,/支持的模板主題列表 輸出模板內(nèi)容 a、display 1.display中沒有參數(shù) $this-display(); 2.可以帶參數(shù) $this-display(本模塊文件夾下的其他模板文件); $this-dis
6、play(index2); $this-display(其他文件夾下的模板文件); $this-display(public:error);/留意,僅僅需要在tpl下有public文件夾以及其中的error.html即可,不需要肯定有public模塊 $this-display(其他主題下的 文件夾下的 模板文件);/需要開啟主題支持 $this-display(my:index:index); $this-display(一個(gè)url路徑); $this-display(./public/error.html); $this-display(./public/error.html,utf-8,
7、text/xml); $this-show($content); 3.fetch方法 獲得模板文件中的內(nèi)容,以字符串形式返回 $content=$this-fetch(public:error); 4.show方法 不需要模板文件,可以挺直輸出模板內(nèi)容 $content=$this-fetch(public:error); dump($content); $content=str_replace(h1,i,$content); $this-show($content); 模板中的賦值 /$this-assign(name,趙桐正); $this-name=趙桐正2; $this-display
8、(); 模板替換 _public_:會(huì)被替換成當(dāng)前網(wǎng)站的公共名目 通常是 /public/ _root_: 會(huì)替換成當(dāng)前網(wǎng)站的地址(不含域名) _app_: 會(huì)替換成當(dāng)前項(xiàng)目的url地址 (不含域名) _group_:會(huì)替換成當(dāng)前分組的url地址 (不含域名) _url_: 會(huì)替換成當(dāng)前模塊的url地址(不含域名) _action_:會(huì)替換成當(dāng)前操作的url地址 (不含域名) _self_: 會(huì)替換成當(dāng)前的頁(yè)面url 更換模板變量規(guī)章,修改配置項(xiàng) tmpl_parse_string=array( /添加自己的模板變量規(guī)章 _css_=_root_./public/css, _js_=_root
9、_./public/js, ), 模板中的變量 變量輸出 1.標(biāo)量輸出 2.數(shù)組輸出 $name1 /索引數(shù)組 $namek2 /關(guān)聯(lián)數(shù)組 $name.k1 3.對(duì)象輸出 $name:k $name-k 系統(tǒng)變量 $think.get.id 用法函數(shù) $name|strtoupper 生成的編譯后文件是 ?php echo (strtoupper($name); ? $name|date=y m d h:i:s,# 默認(rèn)值 $name|default=這里是默認(rèn)值 運(yùn)算符 + * / % + $name+ 模板中的基本語(yǔ)法 導(dǎo)入css和js文件 1、css link js scr link r
10、el=stylesheet type=text/css href=_public_/css/test.css/ script src=_public_/js/test.js/script 2.import import type=js file=js.test / /導(dǎo)入public文件夾下面的js名目中的test.js文件,import標(biāo)簽可以省略type屬性,默認(rèn)就是js的 import type=css file=css.test / /可以更改默認(rèn)文件夾 設(shè)置basepath屬性 import type=js file=js.my basepath=./other/ 3.load /方
11、法可以自動(dòng)檢測(cè)導(dǎo)入的文件類型 load href=_public_/js/test.js / 分支結(jié)構(gòu) 1、if if condition=$sex eq “男” 男人是泥巴做的 else / 女人是水做的 /if if condition=$age lt 18 未成年 elseif condition=$age eq 18/ 青春年少 else / 成年 /if gt lt = eq = elt = egt != neq = heq != nheq switch name=number case value=1一個(gè)和尚挑水吃/case case value=2兩個(gè)和尚臺(tái)水吃/case cas
12、e value=3三個(gè)和尚沒水吃/case default/ 這里是默認(rèn)值 /switch 循環(huán)結(jié)構(gòu) 1.for table border=1 width=500 for start=10 end=00 name=j step=-2 comparison=gt trtd$j/tdtdabc/td/tr /for /table 2.volist volist name=list id=v $v.usernamebr/ /volist 3.foreach foreach name=list item=v key=k $k-$vbr/ /foreach 特別標(biāo)簽 1、比較標(biāo)簽 eq或者 equal
13、等于 neq 或者notequal 不等于 gt 大于 egt 大于等于 lt 小于 elt 小于等于 heq 恒等于 nheq 不恒等于 2.范圍標(biāo)簽 in in name=n value=9,10,11,12在這些數(shù)字里面else/不在這些數(shù)字的范圍內(nèi)/in notin name=n value=9,10,11,12在這些數(shù)字里面else/不在這些數(shù)字的范圍內(nèi)/in between notbetween name=n value=1,10$n在1-10之間else/$n不在1到10之間/between 3.present 標(biāo)簽來(lái)推斷模板變量是否已經(jīng)賦值, present name=mm有賦
14、值else/m沒有賦值/present 4.empty empty標(biāo)簽推斷模板變量是否為空, empty name=nn為空賦值else/n有值/empty 5.defined 推斷常量是否已經(jīng)定義 6.define 在模板中定義常量 7.assing 模板中變量賦值 其他標(biāo)簽用法 1、在模板中挺直用法php代碼 php echo “我是趙桐正” /php 2、建議更改左右定界符 在配置文件中轉(zhuǎn)變 tmpl_l_delim=, /修改左定界符 tmpl_r_delim=, /修改右定界符 模板的用法技巧 模板包含 include file=”完整模板文件名” / include file=”.
15、/tpl/default/public/header.html” / include file=”read” / include file=”public:header” / include file=”blue:user:read” / include file=”$tplname” / include file=”header” title=”thinkphp框架”keywords=”開源web開發(fā)框架”/ 在模板中變量用變量接受 include file=file1,file2 / 模板渲染 1、自動(dòng)開啟模板渲染 設(shè)置配置文件 layout_on=true,/開啟模板渲染 預(yù)備一個(gè)模板渲
16、染頁(yè)面,在頁(yè)面中用法_content_接受具體模板頁(yè)面的內(nèi)容 假如在摸一個(gè)具體模板中不盼望用法渲染模板,可以在頁(yè)首添加_nocontent_ 2、不開啟自動(dòng)模板渲染可以在每一個(gè)具體頁(yè)面的頁(yè)首添加 layout name=layout/ 3.用法技巧 在渲染模板文件中也可以用法其他模板文件的內(nèi)容 include file=public:header/ body p這里是渲染頁(yè)面!/p _content_ /body /html 模板的繼承 掌握器的模塊和操作 空模塊和空操作 1、空操作 function _empty($name) $this-show(“$name 不存在 a href=_ap
17、p_/index/index返回首頁(yè)/a”); 2.空模塊 class emptyaction extends action function index() $city=m(city); $arr=$city-select(); $this-assign(list,$arr); $name=module_name; $this-display(“city:$name”); 前置操作和后置操作 1、前置操作: _before_操作名 2、后置操作: _after_操作名 url url規(guī)章 1、默認(rèn)是區(qū)分大小寫的 2、假如我們不想?yún)^(qū)分大小寫可以改配置文件 url_case_insensitiv
18、e=true,/url不區(qū)分大小寫 3、假如模塊名為 usergroupaction 那么url找模塊就必要要寫成 l_suffix=html|shtml|xml,/限制偽靜態(tài)的后綴 url路由 1、啟動(dòng)路由 要在配置文件中開啟路由支持 2、用法路由 1.規(guī)章表達(dá)式配置路由 my=index/index,/靜態(tài)地址路由 :id/:num=index/index,/動(dòng)態(tài)地址路由 year/:year/:month/:date=index/index,/動(dòng)態(tài)和靜態(tài)混合地址路由 year/:yeard/:monthd/:dated=index/index,/動(dòng)態(tài)和靜態(tài)混合地址路由 加上 d代表類型只
19、能是數(shù)字 my/:id$=index/index,/ 加上$說(shuō)明地址中只能是 my/1000 后面不能有其他內(nèi)容了 2.正則表達(dá)式配置路由 /year/(d4)/(d2)/(d2)/=index/index?year=:1month=:2date=:3 3、留意事項(xiàng): 1.越簡(jiǎn)單的路由越往前面放 url_route_rules=array( my/:year/:month:/:day=index/day, my/:idd=index/index, my/:name=index/index, ) 2.可以用法$作為完全匹配的路由規(guī)章 url_route_rules=array( my/:idd$
20、=index/index, my/:name$=index/index, my/:year/:month:/:day$=index/day, ), 3.用正則匹配的方式 url_route_rules=array( /my/(d+)$/=index/index?id=:1, /my/(w+)$/=index/index?name=:1, /my/(d4)/(d2)/(d2)$/=index/day?year=:1month=:2day=:3, ), url重寫 url生成 分組、頁(yè)面跳轉(zhuǎn)與ajax 多應(yīng)用配置技巧 用法分組 頁(yè)面跳轉(zhuǎn) $this-success(查詢勝利,u(user/test
21、); $this-redirect(user/test,”,5,頁(yè)面正在跳); ajax技巧 大c方法 獵取配置文件中數(shù)組名稱和值 echo c(db_user); 大f方法 文件處理 寫:f(文件名,數(shù)組,名目); 讀:f(文件名,”,名目); 大u方法 url處理 在php里 u(方法名) 在模板中 當(dāng)前函數(shù):u(方法名) 其他函數(shù):u(函數(shù)/方法名) *文件引入 css file=_public_/css/base.css / js file=_public_/js/base.js / *表單處理 方法1 $this-_post(”); 獵取提交表單,會(huì)用法函數(shù)htmlspecialch
22、ars()過(guò)濾 $username=$this-_post(username); 方法2 i(username); 3.1.3新功能 大i,自動(dòng)推斷post和get $username=i(username); echo i(username,不存在值時(shí)的默認(rèn)值,用法函數(shù)); 查看是否有數(shù)據(jù)提交: print_r(i(post.); 禁止表單處理函數(shù)的訪問,提升平安性 方法1 if(!$this-ispost() _404(頁(yè)面不存在,u(index); echo 正常提交; 方法2 (推舉) halt 頁(yè)面可以定制錯(cuò)誤頁(yè)面: if(!is_post) halt(頁(yè)面不存在); echo 正常
23、提交; 制定方法:在conf/config.php 添加:tmpl_exception_file=./public/tpl/error.html, 文件接受錯(cuò)誤內(nèi)容:./public/tpl/error.html,只能寫原生php,支持常量,如_app_ ?php echo $emessage; ? /返回插入的id值,數(shù)據(jù)庫(kù)從1開頭 if(m(user)-data($data)-add() $this-success(添加勝利,index); else $this-error(添加失敗); *輸出到模板 1,數(shù)據(jù)預(yù)備 方法1 $this-assign(變量名,變量值) 方法2 $this-變
24、量名=變量值; 方法3(新版本,縮短了代碼) $this-assign(變量名,變量值)-display(); 方法4(一行搞定) $this-assign(data,m(user)-select()-display(); 2,模板輸出 方法1(.語(yǔ)法會(huì)推斷是對(duì)象還是數(shù)組,配置參數(shù):tmp_var_identify=array, 這樣就會(huì)認(rèn)為是數(shù)組,以提高速度) foreach name=data item=v $v.username$v.password$v.time|date=y-m-d h:i:s,# /foreach 用法函數(shù) :phpinfo() 方法2 volist *分組應(yīng)用(應(yīng)
25、用組)前后臺(tái)只用一個(gè)入口文件 idnex.php (默認(rèn)) ?php define(app_name,app); define(app_path,./app/); define(app_debug,true); require ./thinkphp/thinkphp.php; ? app/conf/config.php ?php return array( /開啟分組 app_group_list=index,admin, default_group=index, tmpl_file_depr=_, /默認(rèn)模板分隔符為_而非文件夾形式 ); 自定義掌握器 1,在action文件夾刪除原來(lái)的默認(rèn)
26、掌握器 2,建立兩個(gè)文件夾,分別為前臺(tái)和后臺(tái)如index admin 訪問: 前臺(tái)host/index.php/index 后臺(tái)host/index.php/admin 自定義配置文件(相互不能訪問,但公共配置可以相互訪問) 1,在host/app/conf/建立兩個(gè)文件夾,分別為前臺(tái)和后臺(tái)如index admin 配置: 前臺(tái)host/app/conf/index/config.php 后臺(tái)host/app/conf/admin/config.php 自定義函數(shù) 1,在host/app/common/建立兩個(gè)文件夾,分別為前臺(tái)和后臺(tái)如index admin 配置: 前臺(tái)host/app/co
27、mmon/index/function.php 后臺(tái)host/app/common/admin/function.php 留意:分組應(yīng)用不支持:u(“form_save”)挺直用法,即當(dāng)前掌握器當(dāng)前方法,這樣寫: :u(“/index/index/form_save”) *分組應(yīng)用完畢 *獨(dú)立分組配置 開啟: 1,先配置應(yīng)用分組 2,添加參數(shù) app_group_mode=1, /開啟獨(dú)立分組 app_group_path=modules, /默認(rèn)分組路徑,默認(rèn):modules 常用路徑變量:_root_./.app_name./.c(app_group_path)./.group_name.
28、/ 新的名目結(jié)構(gòu): thinkphp /系統(tǒng)名目 app /項(xiàng)目名目 public /靜態(tài)文件名目 index.php /全部項(xiàng)目的入口文件 app: modules /項(xiàng)目模塊 =admin/action,tpl,model,conf,common; index/action,tpl,model,conf,common; common /公共common conf /公共conf lib /公共lib tpl /公共tpl runtimes /運(yùn)行時(shí) public: css js img *jquery 異步提交 $(#send-btn).click( function() var user
29、name=$(inputusername=username); var password=$(inputpassword=password); if(username.val()=”) alert(用戶名不能為空); username.focus(); /讓用戶名獵取焦點(diǎn) return; if(password.val()=”) alert(密碼不能為空); password.focus(); /讓用戶名獵取焦點(diǎn) return; /開頭異步傳輸(要在模板內(nèi)才可以解析php,不行以在單獨(dú)js文件操作) var sendurl=:u(“index/index/form_save”,”,”); $.post(sendurl,username:username.val(),password:password.val(),function(data),json); ); *php異步表單處理: public function form_save() /var_dump($this-isajax(); /推斷是否有數(shù)據(jù)提交 /var_dump(is_ajax); /新版本推斷是否有數(shù)據(jù)提交 if(!$this-isaja
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 家訪活動(dòng)總結(jié)(15篇)
- 愚人節(jié)活動(dòng)策劃集錦15篇
- 感恩父母勵(lì)志演講稿(合集15篇)
- 意識(shí)形態(tài)安全研究
- 工廠新員工培訓(xùn)心得體會(huì)
- 慶祝元旦致辭范文(14篇)
- 2200 MPa低渦軸用鋼析出相及低周疲勞性能研究
- 二零二五年度建筑工程安全生產(chǎn)文明施工責(zé)任協(xié)議3篇
- 2025版退學(xué)協(xié)議示范文本下載模板3篇
- 動(dòng)態(tài)多目標(biāo)云服務(wù)組合優(yōu)化方法研究
- 浙江省臺(tái)州市2021-2022學(xué)年高一上學(xué)期期末質(zhì)量評(píng)估政治試題 含解析
- 中國(guó)高血壓防治指南(2024年修訂版)解讀課件
- 2024年浙江省中考科學(xué)試卷
- 初三科目綜合模擬卷
- 高考志愿咨詢培訓(xùn)課件
- 《海峽兩岸經(jīng)濟(jì)合作框架協(xié)議》全文
- ArcGIS軟件入門培訓(xùn)教程演示文稿
- 運(yùn)動(dòng)技能學(xué)習(xí)與控制課件第十章動(dòng)作技能的指導(dǎo)與示范
- 偶函數(shù)講課課件
- 中醫(yī)治療“濕疹”醫(yī)案72例
- 交通工程公司乳化瀝青儲(chǔ)油罐拆除工程安全協(xié)議書
評(píng)論
0/150
提交評(píng)論