Giống như in this topic, tôi có vấn đề về hiệu suất ở chế độ nhà phát khi thêm thẻ "render" trong ứng dụng của tôi (tài liệu liên quan: Embedding controllers).Symfony2 và Twig hiển thị các vấn đề về hiệu suất
Nếu không có thẻ kết xuất này, các trang của tôi sẽ được tạo dưới 70 mili giây. Với thẻ kết xuất, tối thiểu 170 mili giây. Và mỗi thẻ kết xuất được thêm vào trong ứng dụng sẽ làm tăng việc tạo trang thêm 100 mili giây (đó là A LOT: tại sao một trang bình thường chạy trong 60 mili giây và thẻ kết xuất trong 100 mili giây?). Tôi có thể cần 4 hoặc 5 trong số chúng trên mỗi trang trong ứng dụng của tôi, vì vậy điều đó có nghĩa là ít nhất 500 ms cho mỗi trang ở chế độ nhà phát triển.
Tôi hoàn toàn hiểu rằng không có vấn đề gì trong chế độ prod, nhưng rõ ràng là không thoải mái khi phát triển. Vì vậy, không ai biết cách nào để loại bỏ bất kỳ cuộc gọi, nhật ký hoặc mã vô dụng nào trong khi sử dụng thẻ "render" trong chế độ dev?
Trong trường hợp này, việc tạo một dịch vụ cho logic điều khiển là IMHO tốt hơn. Nếu logic điều khiển có hoạt động db thì tôi nghĩ tốt hơn là không chuyển logic sang chức năng twig. Tạo một dịch vụ riêng biệt cũng đảm bảo khả năng sử dụng lại nếu bộ điều khiển nhúng có tuyến đường được đính kèm và có thể được gọi độc lập. –
Không có gì ngăn bạn gọi dịch vụ từ tiện ích mở rộng Twig. Trong thực tế, đó là những gì tôi làm. Nó không phải là một vấn đề này-VS-đó. Phần mở rộng Twig của tôi chỉ gọi các hành động của các bộ điều khiển được định nghĩa là các dịch vụ. Những hành động đó có thể tái sử dụng mà không cần phần mở rộng Twig. –
Cũng dịch vụ cũng có thể được tiếp xúc với cành bằng cách thêm twig biến toàn cục trong 'app/config.yml'. Chỉ là cách khác nhau để hoàn thành mọi thứ. Không có gì để tranh luận về thực sự :). –