2012-05-30 19 views

回答

1

一個非常大的控制器需要更長的時間來解析。每次調用Controller的任何方法時,都會調用控制器類並進行實例化,因此必須對整個控制器進行分析(更好地說,胖控制器需要在每次請求時進行一次完整的解析)。解析較大的文件需要更長的時間,但是額外的時間會非常短暫。

這是我在性能方面可以考慮的唯一缺點。

當然,還有許多維護問題。當您訪問

example.com/controller/method

所以說: '在實例調用其方法之一,每次班' CI中

URL路由

說明這種方式工作example.com/user/create

create是控制器類user中的一項功能。要調用create方法,必須首先實例化user類,然後調用該方法。

如果你的控制器類有200個其他功能,他們也需要解析。

如果你現在的瀏覽器指向

example.com/user/delete

的類的實例化以前不再存在。整個班級需要再次解析。

+0

你是什麼意思,每次你調用它的一個方法時,該類就被實例化了? – Esailija

+0

@Esailija:請參閱編輯 – xbonez

+0

是的,但是我仍然可以爲每個請求調用多個方法,並且不會導致類的重新定義。在codeigniter中,幾乎所有的方法都在控制器上('$ this-> whatever()',等等),這將是瘋狂的 – Esailija

相關問題