我剛剛發現the official Symfony best practices大約控制器,它寫的是:什麼是Symfony文檔中的「控制器」和「動作」?
作爲一個經驗法則,你應該遵循的規則5-10-20,其中控制器應該只定義5個變量或更少,包含10個動作或更少,並且在每個動作中包括20行或更少的代碼。
我對它的含義有疑問,因爲它可以通過兩種不同的方式來理解。
「控制器」 表示控制器類(前
class MyController{}
)& 「動作」 表示控制器功能(例如public function indexAction(){}
)=>它是沒有意義的我「控制器」 表示控制器的功能(前
public function indexAction(){}
)&「行動」是指在這些功能的指令(例如if(){//do something}
)=>是有意義的我
在案例1中,這意味着類似:
// Approximate maximum number of lines : 200
class MyController {
// Max 20 lines of code
public function firstAction(){}
[...]
// Max 20 lines of code
public function tenthAction(){}
}
此外,我不能在這種情況下,什麼手段「5個變量或更少」獲得。 5個全局變量?所有10個動作的5個局部變量?
在案例2中,這意味着類似:
// No maximum number of lines
class MyController {
// Max 10 actions * 20 lines by actions = 200 lines of code, and 5 local variables
public function firstAction(){}
[...]
// Max 10 actions * 20 lines by actions = 200 lines of code, and 5 local variables
public function fiftiethAction(){}
}
我的問題的目標是成爲絕對的把握,瞭解好的意思。但是我也認爲讓Symfony團隊重寫這個句子而不留下任何含糊之處是有用的嗎?我特別想像我這樣的非英語開發人員,或者Symfony初學者。
考慮到情況2是好的,例如「動作」一詞可以替換爲「指令」或「指令」?
我完全同意你的觀點,控制器必須儘可能簡單,而且我討厭有很多線條。然而,我不確定你的答案,因爲例如在[Symfony控制器文檔](https://symfony.com/doc/current/controller.html)中的例子中,他們說:**控制器是一個PHP函數您創建從Symfony的Request對象中讀取信息,並創建並返回一個Response對象**以及一個代碼示例:**控制器是numberAction()方法,它位於控制器類LuckyController內。** – Seb
I和我的一位認證的SF開發人員的朋友聊了聊,他回答我的話和你一樣:在Symfony術語中,控制器是一個類,一個動作是一種方法。所以我想你對第一句話是正確的。但我堅持認爲,在文檔中並不清楚,正如我在之前的評論中所解釋的那樣(他們對類和方法都使用Controller這個詞),並且因爲一般來說(在Symfony上下文中)控制器角色是指導應用程序不同部分之間的數據,從請求到我們的應答。好吧,謝謝你的回答! – Seb