2011-08-25 50 views
33

Có cách nào để tắt chức năng bộ nhớ đệm trong Symfony2 không? Tôi đã cố gắng để tìm các thiết lập trong config * và các tập tin parameters.ini và tôi đã tìm kiếm rất nhiều. Ok, tôi đã tìm thấy một vài giải pháp, nhưng không có gì cho phiên bản mới nhất (Symfony2).Symfony2 tắt bộ nhớ cache?

TẠI SAO? Bởi vì tôi muốn thử nghiệm các mẫu và chức năng mới mà không cần xóa ứng dụng/bộ nhớ cache * mọi lúc.

+0

khái niệm bộ nhớ cache này vẫn gây nhầm lẫn cho tôi. không chắc chắn nếu nó có thể. có hai bộ nhớ cache thực sự - ít nhất - cho boostrapping (twig, config, routes) và một cho các thành phần được sử dụng. không chắc chắn nếu, với kiến ​​trúc của phân phối stf sf2, ý tưởng vô hiệu hóa cache có ý nghĩa gì cả. : -/mã sẽ phải được thay đổi đáng kể, tôi đoán, vì bạn sẽ phải dịch yml-configs, yml-routings và templates thành php ... có thể dễ dàng hơn để trở thành cache-independant nếu dùng php cho các tuyến, mẫu và cấu hình ở vị trí đầu tiên. – Raffael

+1

Bạn muốn tắt loại bộ nhớ cache nào?Đối với bộ đệm ẩn HTTP, tổng quan tốt nhất có thể là [ở đây] (http://symfony.com/doc/current/book/http_cache.html) - tuy nhiên, lưu ý nó không được bật theo mặc định. Bạn có thể giải thích chi tiết hơn một chút về vấn đề bạn đang cố giải quyết không? –

+1

Tôi muốn kiểm tra các mẫu và cấu hình mà không cần xóa/app/cache/* mọi lúc. – NaN

Trả lời

66

Tôi giả sử bạn đang sử dụng công cụ Twig, (công cụ tạo khuôn mẫu mặc định cho Symfony2). Để vô hiệu hóa bộ nhớ đệm trong cành lá, do đó bạn không cần phải giữ sạch bộ nhớ cache như vậy:

rm -rf app/cache/* 

Navigate to tập tin ứng dụng cấu hình của bạn (bởi defualt sẽ được đặt tại ../app/config/config. yml từ thư mục gốc của bạn). Di chuyển đến các thiết lập cấu hình cành lá (dưới cành lá:) và thay đổi giá trị bộ nhớ cache (mà phải được trỏ đến thư mục bộ nhớ cache) để sai như vậy:

twig: 
    cache: false 

Nếu bạn không nhìn thấy bất kỳ bộ nhớ cache mục nhập cấu hình, chỉ cần thêm dòng ở trên.

Nó cũng có thể hữu ích để kiểm tra các tài liệu tham khảo cấu hình cho các bó cành: http://symfony.com/doc/2.0/reference/configuration/twig.html

Sau khi chỉnh sửa tập tin config_dev.yml của bạn, đi đến thiết bị đầu cuối của bạn và chạy:

app/console cache:clear 
+0

Xin chào tất cả, tôi đã thử giải pháp được cung cấp và tất cả những gì tôi nhận được ngay bây giờ từ cành là một trang trống. tôi không bao giờ có tùy chọn bộ nhớ cache trong tệp yml của mình. Bất cứ ai cũng có một ý tưởng ..? – xeon

+2

Tôi khuyên bạn nên tắt bộ đệm ẩn trên 'app_dev.php'. Nó hoạt động tốt và tránh xa cấu hình sản xuất của bạn. – PutzKipa

+1

Làm thế nào để bạn vô hiệu hóa bộ nhớ cache twig trong app_dev.php? Tất cả các tài liệu nói rằng app_dev.php theo mặc định vô hiệu hóa bộ nhớ cache twig, nhưng im không nhìn thấy hành vi này. – jhnlsn

8

Được rồi, liên quan đến giải thích của bạn, giải pháp đơn giản là sử dụng môi trường dev thông qua web/app_dev.php trước bộ điều khiển. Sau đó sf2 theo dõi các điều chỉnh của bạn và bạn không phải xóa bộ nhớ cache.

4

Chỉnh sửa 'config_dev.yml' và 'config.yml' và sau đó đặt trong cả hai

twig: 
    cache: false 
3

Ngoài câu trả lời được chấp nhận, tôi đề xuất chỉnh sửa config_dev.yml của bạn theo cách để nó vẫn gỡ lỗi mẫu khuôn mẫu của bạn. Để làm như vậy, thêm mã này vào tập tin config_dev.yml của bạn:

twig: 
    cache: false 
    debug: true 

services: 
    twig.extension.debug: 
     class: Twig_Extension_Debug 
     tags: 
       - { name: 'twig.extension' } 

Sau khi chỉnh sửa tập tin config_dev.yml của bạn, đi đến thiết bị đầu cuối của bạn và chạy:

app/console cache:clear 

Bằng cách đó, bạn sẽ được tải lại cài đặt config_dev.yml của bạn - làm cho dự án của bạn chạy với cấu hình mới.

Hy vọng điều này sẽ hữu ích.

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