public function processCacheInvalidation(Doctrine_Record $record, array $rules = null) { if (is_null($rules) || !is_array($rules) || !count($rules)) { return; } if (!isset($rules['uris']) || !is_array($rules['uris'])) { return; } foreach ($rules['uris'] as $cacheUri => $applications) { if (is_null($applications)) { $applications = sfConfig::get('sf_app'); } $applications = array($applications); $resolver = new akDoctrineCacheUriResolver($record, $cacheUri); foreach ($resolver->computeUris() as $cacheUri) { foreach ($applications as $application) { $this->purgeCacheUri($cacheUri, $application); } } } }
public function processCacheInvalidation(Doctrine_Record $record, array $rules = null) { $model = get_class($record); if (is_null($rules) && array_key_exists($model, $this->configuration)) { $rules = $this->configuration[$model]; } if (is_null($rules) || !is_array($rules) || !count($rules)) { return; // nothing to process } $cacheUris = isset($rules['uris']) ? $rules['uris'] : array(); // Check for rules inheritance and merge cache uris when applicable if (isset($rules['extends']) && isset($this->configuration[$rules['extends']]) && isset($this->configuration[$rules['extends']]['uris'])) { $cacheUris = array_merge($cacheUris, $this->configuration[$rules['extends']]['uris']); } foreach ($cacheUris as $cacheUri => $applications) { if (is_null($applications)) { $applications = sfConfig::get('sf_app'); } $applications = array($applications); $resolver = new akDoctrineCacheUriResolver($record, $cacheUri); $computedUris = $resolver->computeUris(); foreach ($computedUris as $cacheUri) { foreach ($applications as $application) { $this->purgeCacheUri($cacheUri, $application); } } } }