版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、thinkphp框架入門學問_ thinkphp 是一個免費開源的,快速、簡潔的面對對象的 輕量級php開發(fā)框架 ,創(chuàng)立于2021年初,遵循apache2開源協議發(fā)布,是為了靈敏web應用開發(fā)和簡化企業(yè)應用開發(fā)而誕生的。thinkphp從誕生以來始終秉承簡潔 有用的設計原則,在保持杰出的性能和至簡的代碼的同時,也注重易用性。并且擁有眾多的原創(chuàng)功能和特性,在社區(qū)團隊的主動參加下,在易用性、擴展性和性能方 面不斷優(yōu)化和改進,已經成長為國內最領先和最具影響力的web應用開發(fā)框架,眾多的典型案例確??梢苑€(wěn)定用于商業(yè)以及門戶級的開發(fā)。 thinkphp基于mvc的php框架 m model 模型 工作:
2、負責數據的操作 v view 視圖(模板) 工作:負責前臺頁面顯示 c controller 掌握器(模塊) 工作:描述功能 thinkphp核心文件介紹 thinkphp.php 框架入口文件 common 框架公共文件 conf 框架配置文件 extend 框架擴展名目 lang 核心語言包名目 lib 核心類庫名目 behavior 核心行為類庫 core 核心基類庫 driver 內置驅動 cache 內置緩存驅動 db 內置數據庫驅動 taglib 內置標簽驅動 template 內置模板引擎驅動 template 內置模板引擎 tpl 系統模板名目 #項目名目結構及說明: home
3、 前臺應用文件夾 common 項目公共文件名目 conf 項目配置名目 lang 項目語言名目 lib 項目類庫名目 action action類庫名目 behavior 行為類庫名目 model 模型類庫名目 widget widget類庫名目 runtime 項目運行時名目 cache 模板緩存名目 data 數據緩存名目 logs 日志文件名目 temp 臨時緩存名目 tpl 項目模板名目 thinkphp 3 mvc模式和url訪問 什么是mvc m -model 編寫model類 對數據進行操作 v -view 編寫html文件,頁面呈現 c -controller 編寫類文件(u
4、seraction.class.php) thinkphp的mvc特點 編寫特別敏捷,只有view都可以執(zhí)行 thinkphp的mvc對應的名目 m 項目名目/應用名目/lib/model v 項目名目/應用名目/tpl c 項目名目/應用名目/lib/action url訪問c url的4種訪問方式 1.pathinfo 模式 l(.tpl) 更換模板文件的后綴名(修改配置文件) tmpl_template_suffix=.html,/更改模板文件后綴名 b、修改模板文件名目層次 tmpl_file_depr=_,/修改模板文件名目層次 c、模板主題 default_theme=your,/
5、設置默認模板主題 需要在tpl下面新建一個your文件夾作為模板主題文件夾 如何動態(tài)修改模板主題? 1、在后臺預備一個功能,修改config.php文件中的默認模板項 2、通過url傳遞 t=主題 參數可以修改不同的模板 default_theme=your,/設置默認模板主題 tmpl_detect_theme=true,/自動偵測模板主題 theme_list=your,my,/支持的模板主題列表 輸出模板內容 a、display 1.display中沒有參數 $this-display(); 2.可以帶參數 $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(一個url路徑); $this-display(./public/error.html); $this-display(./public/error.html,utf-8,
7、text/xml); $this-show($content); 3.fetch方法 獲得模板文件中的內容,以字符串形式返回 $content=$this-fetch(public:error); 4.show方法 不需要模板文件,可以挺直輸出模板內容 $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_:會被替換成當前網站的公共名目 通常是 /public/ _root_: 會替換成當前網站的地址(不含域名) _app_: 會替換成當前項目的url地址 (不含域名) _group_:會替換成當前分組的url地址 (不含域名) _url_: 會替換成當前模塊的url地址(不含域名) _action_:會替換成當前操作的url地址 (不含域名) _self_: 會替換成當前的頁面url 更換模板變量規(guī)章,修改配置項 tmpl_parse_string=array( /添加自己的模板變量規(guī)章 _css_=_root_./public/css, _js_=_root
9、_./public/js, ), 模板中的變量 變量輸出 1.標量輸出 2.數組輸出 $name1 /索引數組 $namek2 /關聯數組 $name.k1 3.對象輸出 $name:k $name-k 系統變量 $think.get.id 用法函數 $name|strtoupper 生成的編譯后文件是 ?php echo (strtoupper($name); ? $name|date=y m d h:i:s,# 默認值 $name|default=這里是默認值 運算符 + * / % + $name+ 模板中的基本語法 導入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 / /導入public文件夾下面的js名目中的test.js文件,import標簽可以省略type屬性,默認就是js的 import type=css file=css.test / /可以更改默認文件夾 設置basepath屬性 import type=js file=js.my basepath=./other/ 3.load /方
11、法可以自動檢測導入的文件類型 load href=_public_/js/test.js / 分支結構 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一個和尚挑水吃/case case value=2兩個和尚臺水吃/case cas
12、e value=3三個和尚沒水吃/case default/ 這里是默認值 /switch 循環(huán)結構 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 特別標簽 1、比較標簽 eq或者 equal
13、等于 neq 或者notequal 不等于 gt 大于 egt 大于等于 lt 小于 elt 小于等于 heq 恒等于 nheq 不恒等于 2.范圍標簽 in in name=n value=9,10,11,12在這些數字里面else/不在這些數字的范圍內/in notin name=n value=9,10,11,12在這些數字里面else/不在這些數字的范圍內/in between notbetween name=n value=1,10$n在1-10之間else/$n不在1到10之間/between 3.present 標簽來推斷模板變量是否已經賦值, present name=mm有賦
14、值else/m沒有賦值/present 4.empty empty標簽推斷模板變量是否為空, empty name=nn為空賦值else/n有值/empty 5.defined 推斷常量是否已經定義 6.define 在模板中定義常量 7.assing 模板中變量賦值 其他標簽用法 1、在模板中挺直用法php代碼 php echo “我是趙桐正” /php 2、建議更改左右定界符 在配置文件中轉變 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、自動開啟模板渲染 設置配置文件 layout_on=true,/開啟模板渲染 預備一個模板渲
16、染頁面,在頁面中用法_content_接受具體模板頁面的內容 假如在摸一個具體模板中不盼望用法渲染模板,可以在頁首添加_nocontent_ 2、不開啟自動模板渲染可以在每一個具體頁面的頁首添加 layout name=layout/ 3.用法技巧 在渲染模板文件中也可以用法其他模板文件的內容 include file=public:header/ body p這里是渲染頁面!/p _content_ /body /html 模板的繼承 掌握器的模塊和操作 空模塊和空操作 1、空操作 function _empty($name) $this-show(“$name 不存在 a href=_ap
17、p_/index/index返回首頁/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、默認是區(qū)分大小寫的 2、假如我們不想區(qū)分大小寫可以改配置文件 url_case_insensitiv
18、e=true,/url不區(qū)分大小寫 3、假如模塊名為 usergroupaction 那么url找模塊就必要要寫成 l_suffix=html|shtml|xml,/限制偽靜態(tài)的后綴 url路由 1、啟動路由 要在配置文件中開啟路由支持 2、用法路由 1.規(guī)章表達式配置路由 my=index/index,/靜態(tài)地址路由 :id/:num=index/index,/動態(tài)地址路由 year/:year/:month/:date=index/index,/動態(tài)和靜態(tài)混合地址路由 year/:yeard/:monthd/:dated=index/index,/動態(tài)和靜態(tài)混合地址路由 加上 d代表類型只
19、能是數字 my/:id$=index/index,/ 加上$說明地址中只能是 my/1000 后面不能有其他內容了 2.正則表達式配置路由 /year/(d4)/(d2)/(d2)/=index/index?year=:1month=:2date=:3 3、留意事項: 1.越簡單的路由越往前面放 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生成 分組、頁面跳轉與ajax 多應用配置技巧 用法分組 頁面跳轉 $this-success(查詢勝利,u(user/test
21、); $this-redirect(user/test,”,5,頁面正在跳); ajax技巧 大c方法 獵取配置文件中數組名稱和值 echo c(db_user); 大f方法 文件處理 寫:f(文件名,數組,名目); 讀:f(文件名,”,名目); 大u方法 url處理 在php里 u(方法名) 在模板中 當前函數:u(方法名) 其他函數:u(函數/方法名) *文件引入 css file=_public_/css/base.css / js file=_public_/js/base.js / *表單處理 方法1 $this-_post(”); 獵取提交表單,會用法函數htmlspecialch
22、ars()過濾 $username=$this-_post(username); 方法2 i(username); 3.1.3新功能 大i,自動推斷post和get $username=i(username); echo i(username,不存在值時的默認值,用法函數); 查看是否有數據提交: print_r(i(post.); 禁止表單處理函數的訪問,提升平安性 方法1 if(!$this-ispost() _404(頁面不存在,u(index); echo 正常提交; 方法2 (推舉) halt 頁面可以定制錯誤頁面: if(!is_post) halt(頁面不存在); echo 正常
23、提交; 制定方法:在conf/config.php 添加:tmpl_exception_file=./public/tpl/error.html, 文件接受錯誤內容:./public/tpl/error.html,只能寫原生php,支持常量,如_app_ ?php echo $emessage; ? /返回插入的id值,數據庫從1開頭 if(m(user)-data($data)-add() $this-success(添加勝利,index); else $this-error(添加失敗); *輸出到模板 1,數據預備 方法1 $this-assign(變量名,變量值) 方法2 $this-變
24、量名=變量值; 方法3(新版本,縮短了代碼) $this-assign(變量名,變量值)-display(); 方法4(一行搞定) $this-assign(data,m(user)-select()-display(); 2,模板輸出 方法1(.語法會推斷是對象還是數組,配置參數:tmp_var_identify=array, 這樣就會認為是數組,以提高速度) foreach name=data item=v $v.username$v.password$v.time|date=y-m-d h:i:s,# /foreach 用法函數 :phpinfo() 方法2 volist *分組應用(應
25、用組)前后臺只用一個入口文件 idnex.php (默認) ?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=_, /默認模板分隔符為_而非文件夾形式 ); 自定義掌握器 1,在action文件夾刪除原來的默認
26、掌握器 2,建立兩個文件夾,分別為前臺和后臺如index admin 訪問: 前臺host/index.php/index 后臺host/index.php/admin 自定義配置文件(相互不能訪問,但公共配置可以相互訪問) 1,在host/app/conf/建立兩個文件夾,分別為前臺和后臺如index admin 配置: 前臺host/app/conf/index/config.php 后臺host/app/conf/admin/config.php 自定義函數 1,在host/app/common/建立兩個文件夾,分別為前臺和后臺如index admin 配置: 前臺host/app/co
27、mmon/index/function.php 后臺host/app/common/admin/function.php 留意:分組應用不支持:u(“form_save”)挺直用法,即當前掌握器當前方法,這樣寫: :u(“/index/index/form_save”) *分組應用完畢 *獨立分組配置 開啟: 1,先配置應用分組 2,添加參數 app_group_mode=1, /開啟獨立分組 app_group_path=modules, /默認分組路徑,默認:modules 常用路徑變量:_root_./.app_name./.c(app_group_path)./.group_name.
28、/ 新的名目結構: thinkphp /系統名目 app /項目名目 public /靜態(tài)文件名目 index.php /全部項目的入口文件 app: modules /項目模塊 =admin/action,tpl,model,conf,common; index/action,tpl,model,conf,common; common /公共common conf /公共conf lib /公共lib tpl /公共tpl runtimes /運行時 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(); /讓用戶名獵取焦點 return; if(password.val()=”) alert(密碼不能為空); password.focus(); /讓用戶名獵取焦點 return; /開頭異步傳輸(要在模板內才可以解析php,不行以在單獨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(); /推斷是否有數據提交 /var_dump(is_ajax); /新版本推斷是否有數據提交 if(!$this-isaja
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度高空作業(yè)安全生產施工合同集2篇
- 二零二五年度綠色環(huán)保木工支模項目合同4篇
- 2025版木箱紙箱包裝設計創(chuàng)新與市場推廣合同4篇
- 2025年度個人購房合同產權轉移登記流程4篇
- 危險品運輸車輛駕駛員崗前培訓考核試卷
- 2025版二零二五年度現代木工清工分包合同模板4篇
- 【新課標Ⅲ卷】高三第二次全國大聯考語文試卷(含答案)
- 愛學習有自信幼兒舞蹈創(chuàng)編15課件講解
- 2025年專業(yè)期刊發(fā)行協議
- 2025年合伙勞動分工協議
- 2024公路瀝青路面結構內部狀況三維探地雷達快速檢測規(guī)程
- 2024年高考真題-地理(河北卷) 含答案
- 中國高血壓防治指南(2024年修訂版)解讀課件
- 食材配送服務方案投標方案(技術方案)
- 足療店營銷策劃方案
- 封條(標準A4打印封條)
- 2024年北京控股集團有限公司招聘筆試參考題庫含答案解析
- 延遲交稿申請英文
- 運動技能學習與控制課件第十章動作技能的指導與示范
- 石油天然氣建設工程交工技術文件編制規(guī)范(SYT68822023年)交工技術文件表格儀表自動化安裝工程
- 中醫(yī)治療“濕疹”醫(yī)案72例
評論
0/150
提交評論