2013-01-09 24 views
7

Có cách nào để tắt bộ đệm biên dịch Twig cho một mẫu cụ thể không?Tắt bộ đệm biên dịch Twig cho một mẫu cụ thể

Tôi đang sử dụng Twig cho mẫu email của mình. Khi ai đó cập nhật các mẫu này, chúng được ghi vào đĩa. Mặc dù trong sản xuất, tôi nên xóa toàn bộ bộ nhớ cache nếu không các bản cập nhật không được chú ý.

Đó là lý do tại sao tôi muốn tắt bộ nhớ cache Twig cho các mẫu cụ thể này. Tôi không nhớ sức mạnh xử lý thêm, như thanh toán bù trừ toàn bộ bộ nhớ cache của tôi là một hit hiệu suất lớn hơn.

+0

Tại sao bạn muốn đi tuyến đường này? Nếu bạn có thể cho chúng tôi biết thêm ngữ cảnh về lý do tại sao bạn cần điều này, chúng tôi có thể cung cấp giải pháp thay thế. Nếu những gì bạn đang yêu cầu là có thể (mà nó có thể được, nhưng tôi không biết làm thế nào), bạn sẽ mất đi vào thời gian xử lý khi mọi yêu cầu cho rằng mẫu cành phải phân tích và tải nó. – Mike

+0

Tôi không thể trả lời câu hỏi ban đầu của bạn, nhưng tôi có thể chỉ cho bạn nhóm mà tôi sử dụng để xử lý các mẫu e-mail: https://github.com/getme/EmailTemplateBundle .. Điều đó sẽ giúp bạn khắc phục sự cố của mình. – Mike

+0

Trình tải Doctrine quá xấu không hỗ trợ kế thừa. Tôi vẫn mở cho các đề xuất câu hỏi ban đầu của tôi. – hvtilborg

Trả lời

2

Tôi nghĩ câu trả lời của bạn có thể không tắt bộ nhớ cache cho một mẫu cụ thể, nhưng xóa bộ nhớ cache cho mẫu sau khi được cập nhật. Tôi chưa thử nghiệm mã dưới đây, nhưng có vẻ hợp lý. Chơi đùa với nó một chút

Trong hành động của bạn/dịch vụ mà tiết kiệm một mẫu (sau khi mẫu đã được lưu):

$fileCache = $this->container->get('twig')->getCacheFilename('AcmeDemoBundle:Default:index.html.twig'); 

if (is_file($fileCache)) { 
    @unlink($fileCache); 
} 

Để biết thêm thông tin, hãy kiểm tra như thế nào cành lá file cache được lưu truyền trong/nhà cung cấp /twig/twig/lib/Twig/Environment.php (\ Twig_Environment) - phương thức loadTemplate().

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