-
自定義配置項 User.php查看全部
-
thinkphp運行機理查看全部
-
1.實例化框架基礎模型(在 ThinkPHP/Library/Think/Model.class.php 中) $user=new Model('admin’); //參數(shù)表:表名、表前綴、數(shù)據(jù)庫連接信息 ;省略的參數(shù)會直接調用配置文件中配置的相關數(shù)據(jù) $user=M("pro"); //M()方法會直接跳過應用中的模型(不論應用的模塊的 Model文件夾 中是否有同名模型類文件[proModel.class.php] ),而去實例化框架基礎模型 $data==$user->select(); //數(shù)據(jù)庫查詢 dump($data); 2.實例化用戶自定義模型(在 Application/模塊(Home)/Model 中) $user=new adminModel(); //參數(shù)表:表名、表前綴、數(shù)據(jù)庫連接信息 ;省略的參數(shù)會直接調用配置文件中配置的相關數(shù)據(jù) $user=D("admin");//先找用戶自定義模型,找不到會自動切換成M()方法去查找框架基礎模型 echo $user->getinfo(); //調用自定義模型類中的方法 3.實例化公共模型(建議在 Application/模塊(Home)/Model 中建立,且 公共模型 繼承 框架基礎模型 ,然后[有需要的]其他用戶自定義模型 再繼承 此公共模型 , 這樣 此公共模型中定義的方法 就可以被 繼承他的子模板 共用) $user=new CommonModel(); //公共模型 echo $user->strmake("aaa"); //公共模型->方法 $user=D("User"); //繼承公共模型的子模型 /echo $user->strmake("abc"); //子模型->公共模型的方法 4.實例化空模型(方便使用原生的SQL語句) $model=M(); //實例化一個空框架基礎模型 $sql="select * from imooc_admin"; $data=$model->query($sql); //query()方法最好只用于讀取數(shù)據(jù) $model->execute($sql); //execute()方法最好只用于寫入數(shù)據(jù) update,insert,delete等 [execute()方法返回值為數(shù)據(jù)表被影響行數(shù),所以不能用來做查詢]查看全部
-
框架基礎查看全部
-
框架是程序結構代碼的集合,而不是業(yè)務邏輯代碼。集合中包含了許多類、函數(shù)和功能類包。這個集合石按照一定標準組成的功能體系。體系有很多設計模式,比如MVC等。查看全部
-
MVC查看全部
-
//TP框架內置了一個抽象的數(shù)據(jù)庫的訪問層,這個訪問層把不同的數(shù)據(jù)庫操作封裝起來,我們只需要使用公共的Db類進行操作,而無需針對不同的數(shù)據(jù)庫寫不同的代碼和底層實現(xiàn),Db類會自動調用相應的數(shù)據(jù)庫驅動來處理。使我們可以更專業(yè)與邏輯代碼的編寫 //--數(shù)據(jù)庫參數(shù)配置,需要在應有層進行配置( Application/Common/Conf/config.php 中進行配置)—— 'DB_TYPE'=>'muysql',//數(shù)據(jù)庫類型 'DB_HOST'=>'localhost,localhost1,localhost2',//數(shù)據(jù)庫服務器地址 'DB_NAME'=>'mooc',//數(shù)據(jù)庫名 'DB_USER'=>'root',//數(shù)據(jù)庫用戶 'DB_PWD'=>'',//數(shù)據(jù)庫用戶密碼 'DB_PORT'=>'3306',//數(shù)據(jù)庫端口(默認3306),可以不配置 'DB_PREFIX'=>'mc_',//數(shù)據(jù)庫表前綴 //數(shù)據(jù)庫配置好后,并非立即連接,TP數(shù)據(jù)庫連接是一種惰性連接,所以并不是在實例化的時候就連接數(shù)據(jù)庫,而是在有實際的數(shù)據(jù)操作的時候才會去連接數(shù)據(jù)庫. //開啟主從讀寫分離,讀操作使用從服務器,寫操作使用主服務器,這樣就能給數(shù)據(jù)庫進行負載均衡 'DB_RW_SEPARATE'=>true, //主從分離開啟 //說明主服務器數(shù)量 'DB_MASTER_NUM'=>'2', //則 'DB_HOST' 前面設置的前兩個為主數(shù)據(jù)庫服務器( localhost,localhost1為主服務器 ),剩下的為從服務器( localhost2為從服務器 ) //——如果某模塊需要調用其他服務器的數(shù)據(jù),則在模塊中單獨設置服務器配置信息 然后在單獨調用—— //具體參看 ThinkPHP3.2 完全開發(fā)手冊/模型/鏈接數(shù)據(jù)庫查看全部
-
TP調試方法: 1.在入口文件中開啟調試模式 define('APP_DEBUG',true); //開啟調試模式 系統(tǒng)會自動加載框架下ThinkPHP/Conf/debug.php 2.在應用目錄下的位置文件夾( Application/Common/Conf )中建立debug.php配置文件;在調試模式下其檢測到應用目錄中的配置目錄( Application/Common/Conf )中有 debug.php 文件存在 其優(yōu)先級高于 config.php (即 debug.php 中的配置項將覆蓋 同目錄下的 config.php 中的同名配置項) 在 debug.php 中配置'SHOW_PAGE_TRACE'=>true,顯示頁面trace信息 當關閉調試模式后 define('APP_DEBUG’,false) TP將停止加載框架下的(ThinkPHP/Conf/) debug.php 文件 與 應用目錄下( Application/Common/Conf )的 debug.php 文件 3. 調用trace()方法(在 1,2 配置文成條件下才能使用 trace()方法 ) trace('變量','標簽','級別','是否記錄日志') 變量: 要顯示的變量 標簽: 顯示變量值時的提示標簽 級別: 顯示位置(在調試界面的那個選項卡中顯示;默認在調試選項卡中顯示) 如: $info = '測試信息'; trace($info,'提示’,’SQL’); 則在SQL選項卡中顯示 “提示:測試信息” 老師的代碼是: trace(‘name’,C(‘name’)); //C(‘name’) 的值為: Donsen@debug 所以在調試選項卡中顯示 “Donsen@debug:name” 4. 調用G()方法,獲取代碼段執(zhí)行時間(毫秒) (不需要開啟調試狀態(tài)也可以使用) G('run'); for($i=0;$i<100000;$i++){ $count += $i; } echo G('run','end'); //統(tǒng)計從 G('run') 標記的位置到 G('run','end') 標記的位置所用的運行時間和內存占用情況 5.格式化輸出變量內容: dump(變量); //是 TP 對 php 內置函數(shù) var_dump() 的改進.查看全部
-
1 不推薦使用if判斷標簽(原因是condition屬性使用php語法),盡量用其他標簽替代。 2 實在不行就用php原生語法, <php>php語法</php> (原因異步方式使用的都是php原生語法) <foreach name='person' item='data'> <br /><!-- 比較標簽 --> <egt name='data.age' value='18'>{$data.name}已成年<else />{$data.name}未成年</egt> </foreach> <br /> <foreach name='person' item='row' > <!-- {$person[1]['age'] >= 18?"yes":"no"} 二維數(shù)組--> {$row['age'] >= 18?"成年":"未成年"} <br/> <!-- 三目運算符 --> </foreach> <php>echo $person[1]['name']</php> <!-- 模板中使用PHP -->查看全部
-
模板之三元運算符 很簡單跟php語法一樣,如下 {$num>11?'大于11':'不大于11'}查看全部
-
1.in notin between notbetween range 2.<in name='變量' value='1,2,3'>在1,2,3里面<else>不在這里面</in>//判斷變量是否在1,2,3里 3.<motin name='變量' value='1,2,3'>不在1,2,3里面<else>在這里面</in>//判斷變量是否不在1,2,3里 4.<between name='變量' value='1,10'>在1-10區(qū)間<else>不在這區(qū)間</in>//判斷變量是否在1-10之間 5.<notbetween name='變量' value='1,10'>不在1-10區(qū)間<else>在這區(qū)間</in>//判斷變量是否不在1-10之間 6.<range name='變量' value='1,11,12' type='in'>在1,11,12里的一個數(shù)字<else></else>沒有這個數(shù)</range>//判斷變量在或者不在1,11,12里,type只能是in和notin的,不能是between和notbetween查看全部
-
eq(=), neq(!=), gt(>), egt(>=), lt(<), elt(<=), heq(===), nheq(!==) <比較標簽 name="變量名" value=“比較值”>輸出內容</> 1、<eq name="num" value="10">num = 10</eq> 2、<neq name="num" value="10">num !=10 <else/> num = 10</neq> 3、<compare name="num" value="10" type="eq">num=10<else/>num!=10</compare> else后面一定要帶'/'來表示結束!查看全部
-
在模板中: <switch name="name"> <case value="laoshi">小明,滾出去</case> <case value="xiaohong|xiaohuang">小紅,滾出去</case> <default/>小明,自己滾出去了 </switch> </default>默認輸出 value='xiaohong|xiaohuang' name屬性 的值等于 xiaohong 或者 xiaohuang 時運行;多條件用 ‘|’分隔查看全部
-
在模板中使用IF <if condition='$num lt 10'> num小于10 <elseif condition='$num gt 10'></elseif> num 大于 10 <else></else> num 等于 10 </if> 一定要注意elseif 和 else 后面的結束 /,否則就像php,C,C++等語言中 switch—case 沒有break一樣查看全部
-
縮寫的含義:eq(=), neq(!=), gt(>), egt(>=), lt(<), elt(<=), heq(===), nheq(!==) <for start="開始值" end="結束值" comparison="" step="步進值" name="循環(huán)變量名" > </for> 開始值、結束值、步進值和循環(huán)變量都可以支持變量,開始值和結束值是必須,其他是可選。comparison 的默認值是lt(<); name的默認值是i,步進值的默認值是1,舉例如下: <for start="1" end="100"> {$i}<br/> </for> 效果等同于: <?php for ($i=1;$i<100;$i+=1){ echo $i."<br/>"; } ?>查看全部
舉報
0/150
提交
取消