說在前面
最近接到了一個緊急任務(一個課程設計),要在一周之內做出一個輕型部落格系統,必須快速開發,於是我想到了thinkphp。雖然我之前學過一個PHP,也早就聽說過thinkphp,但是對thinkphp是一無所知,火速下載官方文檔。開始學習!
thinkphp學習筆記
1. 擷取變數I方法的變數類型、變數名和點之間不能有空格,否則出錯
2. 空操作是指系統在找不到請求的操作方法的時候,會定位到空操作_empty方法來執行,利用這個機制,我們可以實現錯誤頁面和一些URL的最佳化。
3. 假設訪問的連結是http://localhost/thinkphp/index.php/Home/City/beijing/,如果你修改了預設的操作方法尾碼:'ACTION_SUFFIX' => 'Action'
,然後你想要利用_empty方法輸出beijing這個參數(實際上thinkphp一開始認為這是操作方法),那麼,_empty(city)方法獲取的city是beijingAction而不是你想要的beijing,這是因為thinkphp預設beijing是操作方法,自動加上了尾碼Action。這時,你可以通過thinkphp內建的ACTION_NAME擷取beijing!
4. 如果在某個模型類裡面定義了connection屬性的話(數組、DSN均可),則執行個體化該自訂模型的時候會採用定義的資料庫連接資訊,而不是設定檔中設定的預設串連資訊,通常用於某些資料表位於當前資料庫連接之外的其它資料庫。
5. 需要注意的是,ThinkPHP的資料庫連接的惰性的,所以並不是在執行個體化的時候就串連資料庫,而是在有實際的資料操作的時候才會去串連資料庫(額外的情況是,在系統第一次執行個體化模型的時候,會自動連接資料庫擷取相關模型類對應的資料表的欄位資訊)。
6. where方法的用法是ThinkPHP查詢語言的精髓,也是ThinkPHP ORM的重要組成部分和亮點所在,可以完成包括普通查詢、運算式查詢、快捷查詢、區間查詢、組合查詢在內的查詢操作。使用字串條件的時候,建議配合預先處理機制,確保更加安全。
7. 一般情況下,無需調用table方法,預設會自動擷取當前模型對應或者定義的資料表。
8. thinkphp中Include標籤支援在包含檔案的同時傳入參數,但是要注意!使用變數時用[]符號把變數名包起來(不包括$符號!)
9. 如果插入資料時提示Field * doesn’t have a default value,可以是欄位名有問題,有麼拼錯了,要麼是大小寫問題(比如全部換成大寫或小寫試試?)
10. 給模板傳遞變數數組,比如$this->assign($data)
,這裡$data是一個數組($data[‘time’], $data[‘user’]),有兩個屬性。那麼,在模板中,可以直接使用{$time}、{$user`}來輸出值。注意別寫成{$data.time}了哦!
11. 在thinkphp中使用jQuery的ajax,注意參數正確。最後,如果覺得代碼實在沒錯,重啟下伺服器試試?
再貼一下thinkphp官方開發規範
1. 類檔案都是以.class.php為尾碼(這裡是指的ThinkPHP內部使用的類庫檔案,不代表外部載入的類庫檔案),使用駝峰法命名,並且首字母大寫,例如 DbMysql.class.php;
2. 類的命名空間地址和所在的路徑地址一致,例如 Home\Controller\UserController類所在的路徑應該是 Application/Home/Controller/UserController.class.php;
3. 確保檔案的命名和調用大小寫一致,是由於在類Unix系統上面,對大小寫是敏感的(而ThinkPHP在偵錯模式下面,即使在Windows平台也會嚴格檢查大小寫);
4. 類名和檔案名稱一致(包括上面說的大小寫一致),例如 UserController類的檔案命名是UserController.class.php, InfoModel類的檔案名稱是InfoModel.class.php, 並且不同的類庫的類命名有一定的規範;
5. 函數、設定檔等其他類庫檔案之外的一般是以.php為尾碼(第三方引入的不做要求);
6. 函數的命名使用小寫字母和底線的方式,例如 get_client_ip;
7. 方法的命名使用駝峰法,並且首字母小寫或者使用底線“_”,例如 getUserName,_parseType,通常底線開頭的方法屬於私人方法;
8. 屬性的命名使用駝峰法,並且首字母小寫或者使用底線“_”,例如 tableName、_instance,通常底線開頭的屬性屬於私人屬性;
9. 以雙底線“__”打頭的函數或方法作為魔法方法,例如 __call 和 __autoload;
10. 常量以大寫字母和底線命名,例如 HAS_ONE和 MANY_TO_MANY;
11. 配置參數以大寫字母和底線命名,例如HTML_CACHE_ON;
12. 語言變數以大寫字母和底線命名,例如MY_LANG,以底線打頭的語言變數通常用於系統語言變數,例如 _CLASS_NOT_EXIST_;
13. 對變數的命名沒有強制的規範,可以根據團隊規範來進行;
14. ThinkPHP的模板檔案預設是以.html 為尾碼(可以通過配置修改);
14. 資料表和欄位採用小寫加底線方式命名,並注意欄位名不要以底線開頭,例如 think_user 表和 user_name欄位是正確寫法,類似 _username 這樣的資料表欄位可能會被過濾。
感謝
感謝訪問我的個人部落格的朋友,如果您感覺本站對您搜尋的問題有所協助,並感覺對本站還滿意的話,頂一下吧,希望您把本站分享給您的朋友!在此對您表示由衷的謝意! :)
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('
').text(i)); }; $numbering.fadeIn(1700); }); });
以上就介紹了No37-ThinkPHP323學習筆記,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。