實際上在我的項目中,如果用戶有請求,我需要在導航欄中顯示。要做到這一點我在樹枝模板使用:替代渲染(控制器())
{{ render(controller("AppBundle:TeamRequest:numberRequests")) }}
控制器是非常簡單的,只是做一個學說的請求,並生成視圖。
但是這部分代碼很慢......比如果我禁用它多200ms。
有沒有更好的方法來做到這一點?
PS:有人知道什麼是Symfony \ Component \ HttpKernel \ EventListerner \ ProfilerListener?因爲這部分在主要和次要請求中花費了很多時間。
非常感謝:-)
多虧了答案,這個想法是做一個服務。在我的情況下,我沒有改變它,因爲正如你在圖中看到的那樣,時間的主要部分是調試欄,最後,它需要幾ms來生成它。
您是否嘗試在生產模式下運行請求? ProfilerListener的名稱建議用於在開發模式下對應用程序進行性能分析,並且不使用生產模式。 你可以通過運行來驗證這個: ''console debug:event-dispatcher --env = dev | grep Profiler''' '''console debug:event-dispatcher --env = prod | grep Profiler''' – zajca
確切的說,它是Web調試工具欄的監聽器,我有一個疑問。這意味着最終做一個渲染(控制器())只需要15毫秒。 – mpiot
那是因爲它是subrequest,symfony會創建另一個請求,它會重新加載整個框架和處理請求,這會花費很多時間,尤其是在dev環境中。你可以避免像下面的人一樣建議。但是您將無法使用ESI緩存您的請求。 – zajca