ãã[ThinkPHPæ¡æ¶å¼å¯è°è¯æ¨¡å¼]
ããThinkPHPæä¸é¨ä¸ºå¼åè¿ç¨è设置çè°è¯æ¨¡å¼ï¼å¼å¯è°è¯æ¨¡å¼åï¼ä¼çºç²ä¸å®çæ§è¡æçï¼ä½å¸¦æ¥çæ¹ä¾¿åé¤éåè½é常å¼å¾ã
ããå¦ä½å¼å¯
ããå¼å¯è°è¯æ¨¡å¼å¾ç®åï¼åªéè¦å¨å
¥å£æ件ä¸å¢å ä¸è¡å¸¸éå®ä¹ä»£ç ãå¨å®æå¼åé¶æ®µé¨ç½²å°ç产ç¯å¢åï¼åªéè¦å
³éè°è¯æ¨¡å¼æè
å é¤è°è¯æ¨¡å¼å®ä¹ä»£ç å³å¯åæ¢å°é¨ç½²æ¨¡å¼ã
ãã<?php
ãã// å¼å¯è°è¯æ¨¡å¼
ããdefine('APP_DEBUG', true);
ãã// å®ä¹åºç¨ç®å½
ããdefine('APP_PATH', './Application/');
ãã// å è½½æ¡æ¶å
¥å£æ件
ããrequire './ThinkPHP/ThinkPHP.php';
ããè°è¯æ¨¡å¼çä¼ç¹å¨äºï¼
ããå¼å¯æ¥å¿è®°å½ï¼ä»»ä½é误信æ¯åè°è¯ä¿¡æ¯é½ä¼è¯¦ç»è®°å½ï¼ä¾¿äºè°è¯ï¼å
³é模æ¿ç¼åï¼æ¨¡æ¿ä¿®æ¹å¯ä»¥å³æ¶çæï¼
ããè®°å½SQLæ¥å¿ï¼æ¹ä¾¿åæSQLï¼
ããå
³éå段ç¼åï¼æ°æ®è¡¨å段修æ¹ä¸åç¼åå½±åï¼ä¸¥æ ¼æ£æ¥æ件大å°åï¼å³ä½¿æ¯Windowså¹³å°ï¼ï¼å¸®å©ä½ æååç°Linuxé¨ç½²å¯è½å¯¼è´çéæ£é®é¢ï¼éè¿é¡µé¢Traceåè½æ´å¥½çè°è¯ååç°é误ï¼
ãã[æ¥å¿]
ããæ¥å¿çå¤çå·¥ä½æ¯ç±ç³»ç»èªå¨è¿è¡çï¼å¨å¼å¯æ¥å¿è®°å½çæ
åµä¸ï¼ä¼è®°å½ä¸å
许çæ¥å¿çº§å«çæææ¥å¿ä¿¡æ¯ã
ããæ¡æ¶é»è®¤æ¯å¨è°è¯æ¨¡å¼ä¸è®°å½æ¥å¿ä¿¡æ¯ï¼å¦æéè¦å¨é¨ç½²æ¨¡å¼ä¸å¼å¯æ¥å¿è®°å½ï¼éè¦å¨é
ç½®ä¸å¼å¯LOG_RECORDåæ°ï¼ä»¥åå¯ä»¥å¨åºç¨é
ç½®æ件ä¸é
ç½®éè¦è®°å½çæ¥å¿çº§å«ãæ¥å¿çè®°å½å¹¶éå®æ¶ä¿åçï¼åªæå½å½å请æ±å®ææè
å¼å¸¸ç»æåæä¼å®é
åå
¥æ¥å¿ä¿¡æ¯ï¼å¦ååªæ¯è®°å½å¨å
åä¸ã
ãã'LOG_RECORD' => true, // å¼å¯æ¥å¿è®°å½
ãã'LOG_LEVEL' =>'EMERG,ALERT,CRIT,ERR', // åªè®°å½EMERG ALERT CRIT ERR é误æå¨è®°å½æ¥å¿
ããè¿éï¼ä¸»è¦ä»ç»ä¸å©ç¨æ¡æ¶æä¾çLogæ¥å¿ç±»çä¸ä¸ªæ¹æ³æ¥æå¨è®°å½æ¥å¿ã
ããLog::record()ï¼è®°å½æ¥å¿ä¿¡æ¯å°å
åã
ãã\Think\Log::record('æµè¯æ¥å¿ä¿¡æ¯');
ãã\Think\Log::record('æµè¯æ¥å¿ä¿¡æ¯ï¼è¿æ¯è¦å级å«','WARN');//é»è®¤çè¯è®°å½çæ¥å¿çº§å«æ¯ERRï¼ä¹å¯ä»¥æå®æ¥å¿çº§å«Log::save()ï¼æä¿åå¨å
åä¸çæ¥å¿ä¿¡æ¯ï¼ç¨æå®çè®°å½æ¹å¼ï¼åå
¥ã
ããç±äºç³»ç»å¨è¯·æ±ç»æåä¼èªå¨è°ç¨Log::saveæ¹æ³ï¼æ以é常ï¼ä½ åªéè¦è°ç¨Log::recordè®°å½æ¥å¿ä¿¡æ¯å³å¯ã
ããLog::write()ï¼å®æ¶åå
¥ä¸æ¡æ¥å¿ä¿¡æ¯ã
ããéç¨recordæ¹æ³è®°å½çæ¥å¿ä¿¡æ¯ä¸æ¯å®æ¶ä¿åçï¼å¦æéè¦å®æ¶è®°å½çè¯ï¼å¯ä»¥éç¨writeæ¹æ³ãwriteæ¹æ³åå
¥æ¥å¿çæ¶å ä¸åé
ç½®çå
许æ¥å¿çº§å«å½±åï¼å¯ä»¥å®æ¶åå
¥ä»»æ级å«çæ¥å¿ä¿¡æ¯ã
ãã\Think\Log::write('æµè¯æ¥å¿ä¿¡æ¯ï¼è¿æ¯è¦å级å«ï¼å¹¶ä¸å®æ¶åå
¥','WARN');[å©ç¨Xdebugå·¥å
·]
ããåè§æåçå¦å¤ä¸ç¯æç« ï¼Macä¸ç»PhpStormå®è£
è°è¯å·¥å
·Xdebug[åéè°è¯]
ããåéè°è¯å¯¹äºç®åçé®é¢å¯ä»¥èµ·å°å¾å¿«æ·çè°è¯ä½ç¨ï¼ææ¶åéè¿å¯¹åéçè§å¯å¯ä»¥è¿
éå®ä½å°é®é¢ä½ç½®ï¼ä½æ¯å¯¹æ¯ä½¿ç¨Xdebugæ¹æ³ï¼ç¼ºä¹æµç¨æ§åæ´ä½è§ã
ããechoæ¹æ³
ããecho è¾åºä¸ä¸ªæè
å¤ä¸ªå符串æåéå¼ï¼å¤ä¸ªå¼ä¹é´ç¨éå·åéï¼ä»æ¯phpè¯å¥ï¼ä¸æ¯å½æ°ãå 为ä»ä¸æ¯å½æ°ï¼æ以没æè¿åå¼ï¼ä¸è½ä½ä¸ºè¡¨è¾¾å¼çä¸é¨å使ç¨ã
ããecho $str,'world','helloï¼';
ããecho $str;
ããprintæ¹æ³
ããprint()ç¨äºè¾åºä¸ä¸ªæå¤ä¸ªå符串æåéå¼çä¿¡æ¯ãå®åªè½æå°åºç®åç±»ååéçå¼(å¦int,string)ï¼ä¸è½æå°æ°ç»å对象ãç¨æ
¢äºechoã
ããprint_ræ¹æ³
ããå¯ä»¥æå符串åæ°åç®åå°æå°åºæ¥ï¼èæ°ç»å以æ¬èµ·æ¥çé®åå¼å¾å表形å¼æ¾ç¤ºï¼å¹¶ä»¥Arrayå¼å¤´ãprint_rè¿åå¼æ¯å¸å°åç,åæ°æ¯mixç±»åç,å¯ä»¥æ¯å符串,æ´å½¢,æ°ç»,对象类print_r() æ¾ç¤ºå
³äºä¸ä¸ªåéçæäºç解çä¿¡æ¯ãå¦æç»åºçæ¯ stringãinteger æ floatï¼å°æå°åéå¼æ¬èº«ãå¦æç»åºçæ¯ arrayï¼å°ä¼æç
§ä¸å®æ ¼å¼æ¾ç¤ºé®åå
ç´ ãprint_r() 对æ°ç»ä½ç¨åå°ææ°ç»çæé移å°æåè¾¹ãä½¿ç¨ reset() å¯è®©æéåå°å¼å§å¤ã
ãã$data = ['test1', 'test2', 'test3', 'test' => 'test'];print_r($data);//Array ( [0] => test1 [1] => test2 [2] => test3 [test] => test )var_dumpæ¹æ³
ããç¨äºæ¾ç¤ºå
³äºä¸ä¸ªæå¤ä¸ªè¡¨è¾¾å¼çç»æä¿¡æ¯ï¼å
æ¬è¡¨è¾¾å¼çç±»åä¸å¼ãæ°ç»å°éå½å±å¼å¼ï¼éè¿ç¼©è¿æ¾ç¤ºå
¶ç»æãä¿¡æ¯æ¯è¾è¯¦ç»ï¼ç¨çè¾å¤ã
ãã$data = ['test1', 'test2', 'test3', 'test' => 'test'];var_dump($data);
ããarray (size=4)
ãã//è¾åº
ãã0 => string 'test1' (length=5)
ãã1 => string 'test2' (length=5)
ãã2 => string 'test3' (length=5)
ãã'test' => string 'test' (length=4)
ããdumpæ¹æ³
ããdumpä¸æ¯phpæ¹æ³ï¼å±äºThinkPHPæ¡æ¶èªå¸¦çï¼å·¥è½åvar_dumpå·®ä¸å¤ã
ãã[æ§è½è°è¯]
ããå¼åè¿ç¨ä¸ï¼æäºæ¶å为äºæµè¯æ§è½ï¼ç»å¸¸éè¦è°è¯æ段代ç çè¿è¡æ¶é´æè
å
åå ç¨å¼éï¼ç³»ç»æä¾äºGæ¹æ³å¯ä»¥å¾æ¹ä¾¿çè·åæ个åºé´çè¿è¡æ¶é´åå
åå ç¨æ
åµã
ããG('begin','end') 表示ç»è®¡beginä½ç½®å°endä½ç½®çæ§è¡æ¶é´ï¼åä½æ¯ç§ï¼ï¼beginå¿
é¡»æ¯ä¸ä¸ªå·²ç»æ è®°è¿çä½ç½®ï¼å¦æè¿ä¸ªæ¶åendä½ç½®è¿æ²¡è¢«æ è®°è¿ï¼åä¼èªå¨æå½åä½ç½®æ 记为endæ ç¾ï¼è¾åºçç»æ类似äºï¼0.0056sG('begin');
ãã$data = ['test1', 'test2', 'test3', 'test' => 'test'];//è¿éæ¯å
¶ä»ä»£ç G('end');
ããecho G('begin', 'end', 5) . 's';//æ°å代表ä¿çå ä½å°æ°å¦æç¯å¢æ¯æå
åå ç¨ç»è®¡çè¯ï¼è¿å¯ä»¥ä½¿ç¨Gæ¹æ³è¿è¡åºé´å
åå¼éç»è®¡ï¼åä½ä¸ºkbï¼G('begin','end','m').'kb';
ãã[模åè°è¯]
ããè°è¯æ§è¡çSQLè¯å¥
ããç¨getLastsqlæ¹æ³æ¥è¾åºä¸æ¬¡æ§è¡çsqlè¯å¥ï¼ææ¶åæ°æ®ä¸ç¬¦åé¢ææ¶ï¼ç¨æ¤æ¹æ³å¯ä»¥æ¹ä¾¿çè§å¯æ¥è¯¢è¯å¥ï¼å¤æé»è¾æ¯å¦æ误ã
ãã$User = M("User"); // å®ä¾åUser对象
ãã$User->find(1);
ããecho $User->getLastSql();
ãã// 3.2çæ¬ä¸å¯ä»¥ä½¿ç¨ç®åçæ¹æ³
ããecho $User->_sql();
ããè°è¯æ°æ®åºé误信æ¯
ããCURDæä½å¦æè¿åå¼ä¸ºfalseï¼è¡¨ç¤ºæ°æ®åºæä½åçé误ï¼è¿ä¸ªæ¶åå°±éè¦ä½¿ç¨æ¨¡åçgetDbErroræ¹æ³æ¥æ¥çæ°æ®åºè¿åçå
·ä½é误信æ¯ã
ãã$User = M("User"); // å®ä¾åUser对象
ãã$result = $User->find(1);
ããif(false === $result){
ããecho $User->getDbError();
ãã}
ããæï¼ç«¹å½±æé£ï¼ç®ä¹¦ä½è
ï¼
ããåæé¾æ¥ï¼
http://www.jianshu.com/p/144d0df5abe4èä½æå½ä½è
ææï¼è½¬è½½è¯·èç³»ä½è
è·å¾ææï¼å¹¶æ 注âç®ä¹¦ä½è
âã