這是Thinkphp5.0的源代碼中think/app這個(gè)類文件的run方法,他在形參中直接指定request是起什么作用?
是不是當(dāng)前面有自動(dòng)加載函數(shù)的時(shí)候,這樣聲明就會(huì)立即把對(duì)應(yīng)的request類文件加載進(jìn)來(lái)?
另外我在看依賴注入的概念的時(shí)候也看過(guò)這種寫(xiě)法,請(qǐng)問(wèn)他和依賴注入之間又有什么關(guān)系?
第三個(gè)問(wèn)題依賴注入我了解的也不是特別多, 有幾種實(shí)現(xiàn)!如果參數(shù)限定是一個(gè)類, 我們就可以借助反射自動(dòng)把變量注入進(jìn)去!但是如果是一個(gè)接口那就還需要自己指定對(duì)應(yīng)的類才行!我的這些說(shuō)法也不一定都對(duì)! 你可以自己在搜索一下
Requset的目的就是限定參數(shù), 限定這個(gè)變量只能傳入
這個(gè)問(wèn)題牽扯的東西比較多我先回答第一個(gè)問(wèn)題參數(shù)中的Request是干什么用的Requset的目的就是限定參數(shù), 限定這個(gè)變量只能傳入指定的類, 類的子類, 實(shí)現(xiàn)了接口的類的對(duì)象這樣有一個(gè)好處就是我們可以調(diào)用該對(duì)象內(nèi)部的方法 而不擔(dān)心這個(gè)方法是否存在!
當(dāng)訪問(wèn)這個(gè)one
方法的時(shí)候,如果傳入的參數(shù)不符合限定要求,則會(huì)拋出ERROR;
當(dāng)你訪問(wèn)這個(gè)OrderRepository
下的create
方法的時(shí)候,$order
就是Order
這個(gè)類的實(shí)例;
第二個(gè)問(wèn)題動(dòng)態(tài)加載這個(gè)和這個(gè)參數(shù)沒(méi)有什么關(guān)系!