php框架使用繼續(xù)改進(jìn)我的 PHP 框架,本次更新的主要內(nèi)容php開發(fā)框架
2022-09-22
繼續(xù)
那就完善自己的PHP框架,本次更新的主要內(nèi)容有:
異常處理
異常處理:異常處理是一種編程語言或計算機(jī)硬件中用于處理軟件或信息系統(tǒng)中的異常情況(即程序正常執(zhí)行流程之外的一些特殊情況)的機(jī)制
異常處理用于處理程序中的異常情況。雖然是“異常狀態(tài)”,但還是在程序員的意料之中。其實(shí)程序的異常處理完全可以用'if else'語句代替php框架使用,但異常處理自然有其優(yōu)勢。
個人總結(jié)其優(yōu)點(diǎn)如下:
雖然將代碼放入 try 塊中效率稍低,但與這些優(yōu)勢相比,成本微不足道。那么如何在 PHP 中使用異常處理呢?
PHP 具有內(nèi)置類,允許我們通過實(shí)例化異常類來引發(fā)異常。我們在 try 語句中執(zhí)行代碼,然后嘗試捕獲 try 塊中拋出的異常并處理異常。我們也可以在代碼段之后使用語句塊,不管有沒有異常都會執(zhí)行代碼塊的代碼。 try 語句類似于以下代碼:
try{
throw new Exeption('msg'[,'code',$previous_exeception]);
}catch(Exeption $var) {
process($var);
}catch(MyException $e){
process($e)
}finally{
dosomething;
}
使用try語句,需要注意:
框架中的異常處理
已經(jīng)說了這么多例外(當(dāng)然這些都是為了理解和使用框架而解釋的),那么在框架中如何實(shí)現(xiàn)呢?
重寫異常類
我們可以重寫異常類來改進(jìn)它的內(nèi)部方法:
*/
protected function log{
Logger::debug;
}
}
如上所述,該方法不能被覆蓋。另外,我們可以定義自己的方法,比如記錄異常日志。和我自定義的日志方法一樣網(wǎng)站模板,在代碼塊中,可以直接使用$e->log記錄異常日志。
注冊全局異常方法
我們可以使用 r('') 來全局捕獲未被塊捕獲的異常。該異常處理函數(shù)需要傳入一個異常處理對象,該對象可以分析異常處理信息,避免系統(tǒng)出現(xiàn)不人道的提示,增強(qiáng)框架的健壯性。
function exceptionHandler($e) {
echo '有未被捕獲的異常,在' . $e->getFile . "的" . $e->getLine . "行!";
}
其他全局函數(shù)
順便說一下其他一些全局處理程序:
但注意這些全局函數(shù)需要在代碼段之前定義和注冊。
數(shù)據(jù)表和類映射
第一次使用yii2的類很方便。只需要定義同名字段的屬性,然后調(diào)用save方法即可。 (基類)。
使用''查詢語句;分析查詢結(jié)果:對于每個字段,有(字段名),Type(數(shù)據(jù)類型),Null(是否為空),Key(索引信息,'PRI'代表主鍵),(默認(rèn)值),(附加信息,如)通過判斷其主鍵($row['KEY'] == 'PRI')信息,保存時檢查是否有主鍵信息,如果存在則更新;如果不存在php框架使用,則插入。另外,解析出來的字段信息還有更多神奇的用途~~結(jié)論
感覺好久沒寫博客了。 “畢業(yè)”對于一個類似于大專學(xué)習(xí)方式的人來說有點(diǎn)麻煩。留住對學(xué)校的眷戀,繼續(xù)出發(fā)吧。
我學(xué)的越多網(wǎng)站模板,就越覺得自己不夠了解??匆恍㏄HP框架源碼的時候,有時候覺得自己還差得很遠(yuǎn)。那種整體感和布局感大概需要時間和經(jīng)驗(yàn)的積累。
因?yàn)榭蚣艿膽?yīng)用和我現(xiàn)在的工作沒有特別的關(guān)系,而且最近一直在努力學(xué)習(xí)一些底層編程的東西,所以框架系列可能有點(diǎn)“便秘”,我會寫點(diǎn)別的. . 這兩天我要換個地方。我跑來跑去看看房子。原諒我“矮”。 .
哈哈,歡迎繼續(xù)關(guān)注我的博客,嗯,一直很用心。