Changeset 2410

Show
Ignore:
Timestamp:
03/28/08 18:29:23 (10 months ago)
Author:
david
Message:

Added ability to cache complete request attribute namespaces in Execution Filter, closes #740

Location:
branches/0.11
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • branches/0.11/CHANGELOG

    r2404 r2410  
    440.11.1 RC3 (March ??, 2008) 
    55--------------------------- 
     6 
     7ADD: Add ability to cache complete request attribute namespaces in Execution Filter (#740) (David) 
    68 
    79CHG: Update timezone database to 2008b (#728) (David) 
  • branches/0.11/src/config/AgaviCachingConfigHandler.class.php

    r2258 r2410  
    123123            } 
    124124             
     125            $requestAttributeNamespaces = array(); 
     126            if(isset($outputType->request_attribute_namespaces)) { 
     127              foreach($outputType->request_attribute_namespaces as $requestAttributeNamespace) { 
     128                $requestAttributeNamespaces[] = $requestAttributeNamespace->getValue(); 
     129              } 
     130            } 
     131             
    125132            $otnames = array_map('trim', explode(' ', $outputType->getAttribute('name', '*'))); 
    126133            foreach($otnames as $otname) { 
     
    129136                'template_variables' => $templateVariables, 
    130137                'request_attributes' => $requestAttributes, 
     138                'request_attribute_namespaces' => $requestAttributeNamespaces, 
    131139              ); 
    132140            } 
  • branches/0.11/src/config/xsd/caching.xsd

    r2306 r2410  
    100100    <xs:sequence maxOccurs="unbounded"> 
    101101      <xs:group ref="request_attributes" /> 
     102      <xs:group ref="request_attribute_namespaces" /> 
    102103      <xs:group ref="template_variables" /> 
    103104      <xs:group ref="layers" /> 
     
    123124      </xs:extension> 
    124125    </xs:simpleContent> 
     126  </xs:complexType> 
     127 
     128  <xs:group name="request_attribute_namespaces"> 
     129    <xs:choice> 
     130      <xs:element name="request_attribute_namespaces" type="request_attribute_namespaces" minOccurs="0" /> 
     131      <xs:element name="request_attribute_namespace" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> 
     132    </xs:choice> 
     133  </xs:group> 
     134  <xs:complexType name="request_attribute_namespaces"> 
     135    <xs:sequence> 
     136      <xs:element name="request_attribute_namespace" type="xs:string" minOccurs="0" maxOccurs="unbounded" /> 
     137    </xs:sequence> 
    125138  </xs:complexType> 
    126139 
  • branches/0.11/src/filter/AgaviExecutionFilter.class.php

    r2308 r2410  
    388388          foreach($viewCache['request_attributes'] as $requestAttribute) { 
    389389            $request->setAttribute($requestAttribute['name'], $requestAttribute['value'], $requestAttribute['namespace']); 
     390          } 
     391           
     392          foreach($viewCache['request_attribute_namespaces'] as $ranName => $ranValues) { 
     393            $request->setAttributes($ranValues, $ranName); 
    390394          } 
    391395 
     
    500504            $viewCache['request_attributes'][] = $requestAttribute + array('value' => $request->getAttribute($requestAttribute['name'], $requestAttribute['namespace'])); 
    501505          } 
     506          foreach($otConfig['request_attribute_namespaces'] as $requestAttributeNamespace) { 
     507            $viewCache['request_attribute_namespaces'][$requestAttributeNamespace] = $request->getAttributes($requestAttributeNamespace); 
     508          } 
    502509 
    503510          $this->writeCache(array_merge($groups, array($outputType)), $viewCache, $config['lifetime']);