How to work/flow Enterprise_PageCache_Model_Container_Placeholder class in Magento?
(Magento EE 1.13.0.2)

Object: $this => Enterprise_PageCache_Model_Validator

Following constants is used in above class :

  • const XML_PATH_DEPENDENCIES_CHANGE = ‘adminhtml/cache/dependency/change’;
  • const XML_PATH_DEPENDENCIES_DELETE = ‘adminhtml/cache/dependency/delete’;

Following variables is used in above class :

  •  Data change dependency :
             protected $_dataChangeDependency = array(
            'Mage_Catalog_Model_Product',
            'Mage_Catalog_Model_Category',
            'Mage_Catalog_Model_Resource_Eav_Attribute',
            'Mage_Tag_Model_Tag',
            'Mage_Review_Model_Review',
            'Enterprise_Cms_Model_Hierarchy_Node',
            'Enterprise_Banner_Model_Banner',
            'Mage_Core_Model_Store_Group',
            'Mage_Poll_Model_Poll',
        );
    
  • Data delete dependency :
             protected $_dataDeleteDependency = array(
            'Mage_Catalog_Model_Category',
            'Mage_Catalog_Model_Resource_Eav_Attribute',
            'Mage_Tag_Model_Tag',
            'Mage_Review_Model_Review',
            'Enterprise_Cms_Model_Hierarchy_Node',
            'Enterprise_Banner_Model_Banner',
            'Mage_Core_Model_Store_Group',
            'Mage_Poll_Model_Poll',
        );
    

Functions in class Enterprise_PageCache_Model_Validator
There are 10 functions are present in class Enterprise_PageCache_Model_Validator

  • /**Mark full page cache as invalidated
         * @deprecated after 1.12.0.2  **/
        protected function _invelidateCache(){}
    
  •  /** Mark full page cache as invalidated **/
         protected function _invalidateCache()
        {
            Mage::app()->getCacheInstance()->invalidateType('full_page');
        }
    
  • /**Get list of all classes related with object instance
         * @param $object * @return array*/
         protected function _getObjectClasses($object){}
       
  • /**Check if during data change was used some model related with page cache and invalidate cache
         * @param mixed $object
         * @return Enterprise_PageCache_Model_Validator*/
         public function checkDataChange($object){}
        
  • /**Check if during data delete was used some model related with page cache and invalidate cache*/
         * @param mixed $object
         * @return Enterprise_PageCache_Model_Validator
         public function checkDataDelete($object){}
     
  • /**Clean cache by entity tags
         * @param Mage_Core_Model_Abstract $object
         * @return Enterprise_PageCache_Model_Validator**/
         public function cleanEntityCache(Mage_Core_Model_Abstract $object) {}
     
  • /** Retrieves cache instance
         * @return Mage_Core_Model_Cache  **/
        protected function _getCacheInstance()
        {
            return Enterprise_PageCache_Model_Cache::getCacheInstance();
        }
    
  • /**Returns array of data change dependencies from config 
        *@return array **/
        protected function _getDataChangeDependencies()
        {
            return $this->_getDataDependencies(self::XML_PATH_DEPENDENCIES_CHANGE);
        }
    
  • /**Returns array of data delete dependencies from config
         * @return array*/
        protected function _getDataDeleteDependencies()
        {
            return $this->_getDataDependencies(self::XML_PATH_DEPENDENCIES_DELETE);
        }
    
  • /** Get data dependencies by xpath
         * @param string $xpath * @return array */
         protected function _getDataDependencies($xpath)
        {
            $node = Mage::getConfig()->getNode($xpath);
            return (!$node)? array() : array_values($node->asArray());
        } 
    

Variation of sample data for different pages (Homepage, Product Listing Page, Product Info Page)

Variables: These values for Homepage

URL : http://localhost/oscp-store/mage-ent-test/index.php

  • $_dataChangeDependency = Array [9]	
    	0 = Mage_Catalog_Model_Product	
    	1 = Mage_Catalog_Model_Category	
    	2 = Mage_Catalog_Model_Resource_Eav_Attribute	
    	3 = Mage_Tag_Model_Tag	
    	4 = Mage_Review_Model_Review	
    	5 = Enterprise_Cms_Model_Hierarchy_Node	
    	6 = Enterprise_Banner_Model_Banner	
    	7 = Mage_Core_Model_Store_Group	
    	8 = Mage_Poll_Model_Poll
    	
  • $_dataDeleteDependency = Array [8]	
    	0 = Mage_Catalog_Model_Category	
    	1 = Mage_Catalog_Model_Resource_Eav_Attribute	
    	2 = Mage_Tag_Model_Tag	
    	3 = Mage_Review_Model_Review	
    	4 = Enterprise_Cms_Model_Hierarchy_Node	
    	5 = Enterprise_Banner_Model_Banner	
    	6 = Mage_Core_Model_Store_Group	
    	7 = Mage_Poll_Model_Poll	
    

Note : It gives same output for Product Listing page and Product Info page