carry on我建立了乙個名字叫yaf的小人物,他的樣貌是這樣的
-bootstrap.php
+ controllers
-index.php
+ views
+ index
-index.phtml
+ conf
-index.php
yaf手冊看到了路由的部分,由於安裝完之後,就一直沒有著手寫過什麼**,總感覺少點什麼,並且路由對於每乙個框架,應該都算是很重要的部分。所以就開始寫了幾行**。可是真的是不動手不知道會有什麼問題。明明按照手冊的說明去寫的**,卻一直得不到想要的結果。難道陰天會鬧鬼嗎?
給yaf做了個小小的配置
[yaf]
;product section inherit from yaf section
[product:yaf]
foo=bar
[common]
routes.******.type = '******'
routes.******.controller = 'c'
routes.******.module = 'm'
routes.******.action = 'a'
入口檔案是這樣的:
<?php
安裝laruence的手冊上寫的一樣,引導檔案的**寫成了這樣:
<?php然而。。。class
bootstrap
extends
yaf_bootstrap_abstract
}
就這麼遇上鬼了。。。
報錯了。。。。。。。。。
getproperty
line 9
warning: yaf_router::addconfig(): expect a yaf_config_abstract instance or an array, null given
line 9
為啥沒有物件。。。
可是就是不對
既然報錯,我就換種方式吧
class
bootstrap
extends
yaf_bootstrap_abstract
}
看看結果:
object(yaf_router)#5 (2) ["******"]=> object(yaf_route_******)#11 (3) } ["_current":protected]=> null }
這回好了,終於拿到routes中的******的引數了。
由於一臉懵逼,嘗試了很多次,也查了一些資料,但是都沒有解決。於是請教了下leader。leader說了兩種解決方案:
一般情況下,不會通過配置中的不同配置名稱去獲取配置,可以通過配置的節點進行配置的獲取。
於是,我把yaf這個小怪物的配置改了[捂臉][捂臉][捂臉]
[yaf]
;product section inherit from yaf section
[product:yaf]
foo=bar
然後引導檔案變成了這樣:
<?php
class
bootstrap
extends
yaf_bootstrap_abstract
public
function
_initroute
(yaf_dispatcher $dispatcher)
}
來看下輸出的內容:
object(yaf_config_ini)#11 (2) } ["_readonly":protected]=> bool(true) }
object(yaf_router)#5 (2) ["******"]=> object(yaf_route_******)#11 (3) } ["_current":protected]=>null }
不好看是吧。。。看這個
object(yaf_config_ini)#11 (2)
} ["_readonly":protected]=>
bool(true)
}object(yaf_router)#5 (2)
["******"]=>
object(yaf_route_******)#11 (3)
} ["_current":protected]=>
null
}
看看,兩個物件,這就是對了吧
這樣,就可以通過yaf_registry::get()獲取到所有的配置內容,由於返回的是乙個陣列物件,所以,可以通過key來獲取到你想要的任何配置。然後就可以把自己的配置寫到路由中。
bingo!!!
通過物件的方式,進行路由的配置。
首先,yaf提供了不同的路由協議,如下:
yaf_route_******然後呢,嘿嘿��,我就這麼幹了yaf_route_supervar
yaf_route_static
yaf_route_map
yaf_route_rewrite
yaf_route_regex
<?php
class
bootstrap
extends
yaf_bootstrap_abstract
}
來看看輸出是啥吧
object(yaf_router)#5 (2)
["******"]=>
object(yaf_route_******)#9 (3)
} ["_current":protected]=>
null
}
不用說啥了,結果已經很明顯了
再嘗試下其他的協議,gogogo
yaf_route_supervar
<?php
class
bootstrap
extends
yaf_bootstrap_abstract
}
輸出:
object(yaf_router)#5 (2)
["supervar"]=>
object(yaf_route_supervar)#10 (1)
} ["_current":protected]=>
null
}
yaf_route_rewrite<?php
class
bootstrap
extends
yaf_bootstrap_abstract
}
輸出:
object(yaf_router)#5 (2)
["rewrite"]=>
object(yaf_route_rewrite)#11 (3)
["_verify":protected]=>
null
}} ["_current":protected]=>
null
}
yaf_route_regex<?php
class
bootstrap
extends
yaf_bootstrap_abstract */
public
function
_initroute
(yaf_dispatcher $dispatcher)
}
輸出:
object(yaf_router)#5 (2)
["regex"]=>
object(yaf_route_regex)#12 (5)
["_maps":protected]=>
array(1)
["_verify":protected]=>
null
["_reverse":protected]=>
null
}} ["_current":protected]=>
null
}
laruence的手冊有點老舊了,有些地方寫的不對。
個人並不是要噴什麼,而是說,現在學習yaf,laruence的手冊,可以作為參考,帶你慢慢入門。如果遇到問題,還是自己動手實現以下,或者參考php手冊和github上的說明和原始碼比較好。
that』s all
Yaf零基礎學習總結2 Yaf框架的安裝
yaf零基礎學習總結1 yaf框架簡介 我們對yaf框架有那麼乙個大概的了解了,但是對於程式設計師來說,那些文字都是表面的,他們最想的就是開始敲 了。當然這也是學習yaf框架最有效的方法,敲得越多肯定學得越快,對於任何語言來說也是一樣的,在寫 之前我們得把yaf框架安裝上。相比於其它php框架,ya...
學習yaf(五)yaf 異常和錯誤的捕捉
yaf實現了一套錯誤和異常捕獲機制,主要是對常見的錯誤處理和異常捕獲方法做了乙個簡單抽象,方便應用組織自己的錯誤統一處理邏輯.那麼對應的,就有倆套錯誤處理方式可 用選用.在error action中可以通過 request getrequest getparam exception 獲取當前發生的異...
學習記錄2
pv操作同步過程 對訊號燈狀態進行改變,p呼叫一次 1,v呼叫一次 1。p操作 p s 是乙個原語操作,p操作執行 s 若s為負數,呼叫p s 的程序被阻塞,放到等待佇列q中。p s v操作 v s 剛好與p s 操作相反,v操作執行 s 若s為大於0,繼續執行 s 0,從訊號燈等待佇列移出乙個程序...