2012-01-05 24 views
36

Nó không thêm bất cứ điều gì và nó làm cho trang chậm hơn và tôi muốn nó biến mất. Đừng hỏi. Có rất ít về profiler trên trang web và không có gì trong cấu hình ứng dụng.Làm cách nào để vô hiệu hóa thanh công cụ Symfony 2?

+1

Nó xuất hiện chỉ trong dev và có sooo nhiều, mà làm cho trang chậm hơn (trong dev env): Tôi nghĩ rằng nó không phải là giá trị nó;) – KingCrunch

Trả lời

81

Cài đặt này trong app/config/config_dev.yml:

web_profiler: 
    toolbar: true 
    intercept_redirects: false 
+2

Là một bình luận cho các nhà phát triển trong tương lai. Câu trả lời này là tốt nhất nếu bạn muốn "DISABLE" REDIRECTS trong chế độ dev và có thể gỡ lỗi POST và cứ thế.Chỉ cần intercept_redirects: true và nó sẽ hoạt động: D –

76

bổ sung: nếu bạn muốn vô hiệu hóa nó cho một hành động đặc biệt trong điều khiển của bạn vì sử dụng này:

if ($this->container->has('profiler')) 
{ 
    $this->container->get('profiler')->disable(); 
} 
+1

+1, rất hữu ích :-) – richsage

+0

+1 chỉ là những gì tôi đang tìm kiếm! – coder4show

+0

+1, tuyệt vời! – sickelap

4

Hãy thử điều này

framework: 
    profiler: { only_exceptions: true } 

trong số app/config/config_dev.yml

của bạn
0

Nếu bạn lo lắng về hiệu suất - thì bạn không nên chạy dưới dev. Dev cũng giới hạn bộ nhớ đệm và có thể kéo thêm các gói.

Chạy ở chế độ prod và làm ấm bộ nhớ cache trước khi bạn chạy thử nghiệm hiệu suất.

+0

Tôi không biết tại sao điều này lại bị giảm giá, đó là thông tin hữu ích, chính xác giải quyết câu hỏi. – NDM

+0

không, nó không trả lời câu hỏi của OP, nếu chức năng cung cấp profiler là không cần thiết, sau đó nó không có gì, nhưng làm chậm môi trường phát triển – user3531149

13

Nếu bạn đặt framework.profiler.collect thành false trong config.yml, thanh hồ sơ sẽ không được hiển thị (ngay cả khi web_profiler.toolbar được đặt thành true).

framework: 
    profiler: 
     collect: false 

này sau đó cho phép bạn lựa chọn kích hoạt nhà sưu tập trong mã của bạn bằng tay, như thế này:

$this->container->get('profiler')->enable(); 

Tài liệu ở đây: http://symfony.com/doc/current/reference/configuration/framework.html#collect

+0

(Điều này trái ngược với cách tiếp cận hợp lệ được thực hiện trong câu trả lời của @ besnik .) – Alex

5

Nếu bạn đã tạo ra một dự án Symfony mới kể từ Symfony 2.5, các thông số này được đặt trong app/config/paramaters.yml

parameters: 
    # ... 
    debug_toolbar: true 
    debug_redirects: false 

Chỉ cần đặt debug_toolbar thành false.

-1

Một cách khác có vẻ như vô hiệu hóa nó, là không có _dev trong định tuyến của ứng dụng.

Vì vậy, đối với tôi trong một BitNami cài đặt của Symfony 2, chỉ đơn giản bằng cách thay đổi app/conf/httpd-app.conf hơi nó sẽ thay đổi chương trình:

RewriteBase /symfony/app_dev.php 

để

RewriteBase /symfony/ 

và nó sẽ giữ cho các thanh công cụ từ mọc lên .

2

Để vẫn có được đầu ra trong/_profiler nhưng không có thanh công cụ, bạn có thể gian lận:

$request->headers->add(array('X-Requested-With' => 'XMLHttpRequest')); 

Đó là bởi vì trong WebProfilerBundle/EventListener/WebDebugToolbarListener.php có một kiểm tra rõ ràng cho điều này trước khi tiêm thanh công cụ.

Các vấn đề liên quan