2012-03-09 27 views
5

में कैश शामिल और सत्यापन कैश शामिल है क्या सिम्फनी 2 के साथ ईएसआई में सत्यापन कैश का उपयोग करना संभव है?एज साइड सिम्फनी 2

आप HttpFoundation Response वर्ग देखो, तो आप देखते हैं कि कैसे काम करता है isNotModified कर सकते हैं:

/** 
* Determines if the Response validators (ETag, Last-Modified) match 
* a conditional value specified in the Request. 
* 
* If the Response is not modified, it sets the status code to 304 and 
* removes the actual content by calling the setNotModified() method. 
* 
* @param Request $request A Request instance 
* 
* @return Boolean true if the Response validators match the Request, false otherwise 
* 
* @api 
*/ 
public function isNotModified(Request $request) 
{ 
    $lastModified = $request->headers->get('If-Modified-Since'); 
    $notModified = false; 
    if ($etags = $request->getEtags()) { 
     $notModified = (in_array($this->getEtag(), $etags) || in_array('*', $etags)) && (!$lastModified || $this->headers->get('Last-Modified') == $lastModified); 
    } elseif ($lastModified) { 
     $notModified = $lastModified == $this->headers->get('Last-Modified'); 
    } 

    if ($notModified) { 
     $this->setNotModified(); 
    } 

    return $notModified; 
} 

समस्या यह है कि ईएसआई $ अनुरोध> headers-> प्राप्त ('यदि संशोधित के बाद से'); और $ अनुरोध-> getEtags() ईएसआई में कुछ भी नहीं लौटाता है ... तो कैश कभी ताजा नहीं होता है!

तो क्या आपके पास $ अनुरोध के लिए समाधान है?

यदि प्रमाणीकरण HTTP कैश ईएसआई में काम नहीं कर सकता है, तो क्या आंशिक कैश करने का कोई और तरीका है?

धन्यवाद!

उत्तर

1

मैंने सिम्फनी 2 (अभी तक) के साथ ईएसआई का उपयोग नहीं किया है - लेकिन सिम्फनी 2 दस्तावेज़ आलेख Using Edge Side Includes यह सुझाव देता है कि यह एक बहुत सीधी प्रक्रिया है।

+0

हां समाप्ति कैश के साथ हाँ यह वास्तव में आसान है और यह काम करता है! लेकिन यह सत्यापन कैश का उपयोग करते समय काम नहीं करता है ... इसलिए मैंने इसे डीबग करने का प्रयास किया और ऐसा संभव नहीं है ... – Sybio