public static function forgetAll($forgetDbLevelCache = true)
 {
     if (static::supportsAndAllowsDatabaseCaching() && $forgetDbLevelCache) {
         ZurmoDatabaseCompatibilityUtil::callProcedureWithoutOuts("clear_cache_actual_rights()");
     }
     parent::forgetAll();
 }
 /**
  * Any changes to the model must be re-cached.
  * @see RedBeanModel::save()
  */
 public function save($runValidation = true, array $attributeNames = null)
 {
     $saved = parent::save($runValidation, $attributeNames);
     if ($saved) {
         GeneralCache::cacheEntry('NamedSecurableItem' . $this->name, $this);
     }
     return $saved;
 }
Example #3
0
 public static function &get($id)
 {
     if (GeneralCache::find($id)) {
         $data =& unserialize(file_get_contents("/tmp/hcache-{$id}"));
         return $data;
     }
     return false;
 }
Example #4
0
 /**
  * Any changes to the model must be re-cached.
  * @see RedBeanModel::save()
  */
 public function save($runValidation = true, array $attributeNames = null)
 {
     $saved = parent::save($runValidation, $attributeNames);
     if ($saved) {
         GeneralCache::cacheEntry('CustomFieldData' . $this->name, $this);
     }
     return $saved;
 }
 public static function setAsProcessed($tableName, $identifier)
 {
     $processedTables = static::resolveProcessedTableNames($identifier);
     if (!in_array($tableName, $processedTables)) {
         $processedTables[] = $tableName;
         GeneralCache::cacheEntry($identifier, $processedTables);
     }
 }
Example #6
0
 public function testCanSetNullValueToCache()
 {
     //if memcache is off this test will fail because memcache will not cache null values.
     if (MEMCACHE_ON) {
         GeneralCache::cacheEntry('somethingForTesting', null);
         $value = GeneralCache::getEntry('somethingForTesting');
         $this->assertNull($value);
     }
 }
Example #7
0
 public static function forgetAll()
 {
     if (PHP_CACHING_ON) {
         self::$cachedEntries = array();
     }
     if (MEMCACHE_ON && Yii::app()->cache !== null) {
         @Yii::app()->cache->flush();
     }
 }
 /**
  * Get all read subscription model class names
  * @return array|mixed
  */
 public static function getReadSubscriptionModelClassNames()
 {
     try {
         return GeneralCache::getEntry('readPermissionsSubscriptionModelClassNames');
     } catch (NotFoundException $e) {
         $readPermissionsSubscriptionModelClassNames = self::findReadSubscriptionModelClassNames();
         GeneralCache::cacheEntry('readPermissionsSubscriptionModelClassNames', $readPermissionsSubscriptionModelClassNames);
         return $readPermissionsSubscriptionModelClassNames;
     }
 }
Example #9
0
 /**
  * Given a user, return an array of module names and their translated labels, for which the user
  * has the right to access and only modules that support the global search.
  * @param  User $user
  * @return array of module names and labels.
  */
 public static function getGlobalSearchScopingModuleNamesAndLabelsDataByUser(User $user)
 {
     assert('$user->id > 0');
     try {
         return GeneralCache::getEntry(self::getGlobalSearchScopingCacheIdentifier($user));
     } catch (NotFoundException $e) {
         $moduleNamesAndLabels = self::findGlobalSearchScopingModuleNamesAndLabelsDataByUser($user);
         GeneralCache::cacheEntry(self::getGlobalSearchScopingCacheIdentifier($user), $moduleNamesAndLabels);
         return $moduleNamesAndLabels;
     }
 }
Example #10
0
 public static function forgetAllCaches()
 {
     RedBeanModelsCache::forgetAll();
     RedBeansCache::forgetAll();
     PermissionsCache::forgetAll();
     RightsCache::forgetAll();
     PoliciesCache::forgetAll();
     GeneralCache::forgetAll();
     BeanModelCache::forgetAll();
     Currency::resetCaches();
     //php only cache
 }
 /**
  * Given a user, return an array of module names and their translated labels, for which the user
  * has the right to access and only modules that support the global search.
  * @param  User $user
  * @return array of module names and labels.
  */
 public static function getGlobalSearchScopingModuleNamesAndLabelsDataByUser(User $user)
 {
     assert('$user->id > 0');
     try {
         // not using default value to save cpu cycles on requests that follow the first exception.
         return GeneralCache::getEntry(self::getGlobalSearchScopingCacheIdentifier($user));
     } catch (NotFoundException $e) {
         $moduleNamesAndLabels = self::findGlobalSearchScopingModuleNamesAndLabelsDataByUser($user);
         GeneralCache::cacheEntry(self::getGlobalSearchScopingCacheIdentifier($user), $moduleNamesAndLabels);
         return $moduleNamesAndLabels;
     }
 }
Example #12
0
 /**
  * Override of the parent method because of problems with Yii's default cache
  * @see CDbMessageSource::loadMessages()
  * @param string $category
  * @param string $languageCode
  * @return array $messages
  */
 protected function loadMessages($category, $languageCode)
 {
     assert('is_string($category)');
     assert('is_string($languageCode)');
     try {
         $messages = GeneralCache::getEntry(self::getMessageSourceCacheIdentifier($category, $languageCode));
     } catch (NotFoundException $e) {
         $messages = $this->loadMessagesFromDb($category, $languageCode);
         GeneralCache::cacheEntry(self::getMessageSourceCacheIdentifier($category, $languageCode), $messages);
     }
     return $messages;
 }
 /**
  * Override of the parent method because of problems with Yii's default cache
  * @see CDbMessageSource::loadMessages()
  * @param string $category
  * @param string $languageCode
  * @return array $messages
  */
 protected function loadMessages($category, $languageCode)
 {
     assert('is_string($category)');
     assert('is_string($languageCode)');
     try {
         // not using default value to save cpu cycles on requests that follow the first exception.
         $messages = GeneralCache::getEntry(self::getMessageSourceCacheIdentifier($category, $languageCode));
     } catch (NotFoundException $e) {
         $messages = $this->loadMessagesFromDb($category, $languageCode);
         GeneralCache::cacheEntry(self::getMessageSourceCacheIdentifier($category, $languageCode), $messages);
     }
     return $messages;
 }
Example #14
0
 public static function tearDownAfterClass()
 {
     if (RedBeanDatabase::isFrozen()) {
         TestDatabaseUtil::deleteRowsFromAllTablesExceptLog();
     } else {
         TestDatabaseUtil::deleteAllTablesExceptLog();
     }
     RedBeanModel::forgetAll();
     RedBeanDatabase::close();
     assert('!RedBeanDatabase::isSetup()');
     // Not Coding Standard
     GeneralCache::forgetAll();
 }
 /**
  * Import all files that need to be included(for lazy loading)
  * @param $event
  */
 public function handleImports($event)
 {
     try {
         $filesToInclude = GeneralCache::getEntry('filesToIncludeForTests');
     } catch (NotFoundException $e) {
         $filesToInclude = FileUtil::getFilesFromDir(Yii::app()->basePath . '/modules', Yii::app()->basePath . '/modules', 'application.modules', true);
         $filesToIncludeFromFramework = FileUtil::getFilesFromDir(Yii::app()->basePath . '/core', Yii::app()->basePath . '/core', 'application.core', true);
         $totalFilesToIncludeFromModules = count($filesToInclude);
         foreach ($filesToIncludeFromFramework as $key => $file) {
             $filesToInclude[$totalFilesToIncludeFromModules + $key] = $file;
         }
         GeneralCache::cacheEntry('filesToIncludeForTests', $filesToInclude);
     }
     foreach ($filesToInclude as $file) {
         Yii::import($file);
     }
 }
 public static function resolveCustomMetadataAndLoad()
 {
     $shouldSaveZurmoModuleMetadata = false;
     $metadata = ZurmoModule::getMetadata();
     //Add Material to Menu if it doesn't exist
     if (!in_array('costbook', $metadata['global']['tabMenuItemsModuleOrdering'])) {
         $metadata['global']['tabMenuItemsModuleOrdering'][] = 'costbook';
         $shouldSaveZurmoModuleMetadata = true;
     }
     if (!in_array('departmentReferences', $metadata['global']['tabMenuItemsModuleOrdering'])) {
         $metadata['global']['tabMenuItemsModuleOrdering'][] = 'departmentReferences';
         $shouldSaveZurmoModuleMetadata = true;
     }
     if (!in_array('agreements', $metadata['global']['tabMenuItemsModuleOrdering'])) {
         $metadata['global']['tabMenuItemsModuleOrdering'][] = 'agreements';
         $shouldSaveZurmoModuleMetadata = true;
     }
     if (!in_array('agreementProducts', $metadata['global']['tabMenuItemsModuleOrdering'])) {
         $metadata['global']['tabMenuItemsModuleOrdering'][] = 'agreementProducts';
         $shouldSaveZurmoModuleMetadata = true;
     }
     if (!in_array('opportunityProducts', $metadata['global']['tabMenuItemsModuleOrdering'])) {
         $metadata['global']['tabMenuItemsModuleOrdering'][] = 'opportunityProducts';
         $shouldSaveZurmoModuleMetadata = true;
     }
     if (!in_array('categories', $metadata['global']['tabMenuItemsModuleOrdering'])) {
         $metadata['global']['tabMenuItemsModuleOrdering'][] = 'categories';
         $shouldSaveZurmoModuleMetadata = true;
     }
     if ($shouldSaveZurmoModuleMetadata) {
         ZurmoModule::setMetadata($metadata);
         GeneralCache::forgetAll();
     }
     Yii::import('application.extensions.zurmoinc.framework.data.*');
     $defaultDataMaker = new AgreementsDefaultDataMaker();
     $defaultDataMaker->make();
     $defaultDataMaker = new CostbooksDefaultDataMaker();
     $defaultDataMaker->make();
     $defaultDataMaker = new OpportunitiesDefaultDataMaker();
     $defaultDataMaker->make();
 }
 public static function resolveCustomMetadataAndLoad()
 {
     $shouldSaveZurmoModuleMetadata = false;
     $metadata = ZurmoModule::getMetadata();
     if (!in_array('animals', $metadata['global']['tabMenuItemsModuleOrdering'])) {
         $metadata['global']['tabMenuItemsModuleOrdering'][] = 'animals';
         $shouldSaveZurmoModuleMetadata = true;
     }
     if ($shouldSaveZurmoModuleMetadata) {
         ZurmoModule::setMetadata($metadata);
         GeneralCache::forgetAll();
     }
     $metadata = Activity::getMetadata();
     if (!in_array('Animal', $metadata['Activity']['activityItemsModelClassNames'])) {
         $metadata['Activity']['activityItemsModelClassNames'][] = 'Animal';
         Activity::setMetadata($metadata);
         GeneralCache::forgetAll();
     }
     Yii::import('application.extensions.zurmoinc.framework.data.*');
     Yii::import('application.modules.animals.data.*');
     $defaultDataMaker = new AnimalsDefaultDataMaker();
     $defaultDataMaker->make();
 }
Example #18
0
 public static function forgetAll()
 {
     GeneralCache::forgetAll();
 }
 protected static function registerUniqueIndexByMemberName($member, $modelClassName)
 {
     $indexName = RedBeanModelMemberIndexMetadataAdapter::resolveRandomIndexName($member, true);
     $uniqueIndexes = GeneralCache::getEntry(static::CACHE_KEY, array());
     $uniqueIndexes[$modelClassName][$indexName] = array('members' => array($member), 'unique' => true);
     GeneralCache::cacheEntry(static::CACHE_KEY, $uniqueIndexes);
 }
 /**
  * Downloads the l10n info XML file
  *
  * @return SimpleXMLElement
  */
 protected static function getServerInfo()
 {
     if (self::$l10nInfo && isset(self::$l10nInfo) && self::$l10nInfo->version == '1.1') {
         return self::$l10nInfo;
     }
     $cacheIdentifier = 'l10nServerInfo';
     try {
         self::$l10nInfo = GeneralCache::getEntry($cacheIdentifier);
     } catch (NotFoundException $e) {
         $infoFileUrl = self::$serverDomain . '/' . self::$infoXmlPath;
         $xml = simplexml_load_file($infoFileUrl);
         self::$l10nInfo = json_decode(json_encode($xml));
         GeneralCache::cacheEntry($cacheIdentifier, self::$l10nInfo);
     }
     if (isset(self::$l10nInfo->version) && self::$l10nInfo->version == '1.1') {
         return self::$l10nInfo;
     }
     throw new FailedServiceException();
 }
 public static function getNonMonitorJobClassNames()
 {
     try {
         $jobClassNames = GeneralCache::getEntry(self::NON_MONITOR_JOBS_CACHE_ID);
     } catch (NotFoundException $e) {
         $jobClassNames = array();
         $modules = Module::getModuleObjects();
         foreach ($modules as $module) {
             $jobsClassNames = $module::getAllClassNamesByPathFolder('jobs');
             foreach ($jobsClassNames as $jobClassName) {
                 $classToEvaluate = new ReflectionClass($jobClassName);
                 if (is_subclass_of($jobClassName, 'BaseJob') && !$classToEvaluate->isAbstract() && $jobClassName != 'MonitorJob') {
                     $jobClassNames[] = $jobClassName;
                 }
             }
         }
         GeneralCache::cacheEntry(self::NON_MONITOR_JOBS_CACHE_ID, $jobClassNames);
     }
     return $jobClassNames;
 }
 protected function unrestrictedDelete()
 {
     unset(self::$cachedModelsByName[$this->name]);
     GeneralCache::forgetEntry('CustomFieldData' . $this->name);
     return parent::unrestrictedDelete();
 }
 public static function getMungableModelClassNames()
 {
     try {
         return GeneralCache::getEntry('mungableModelClassNames');
     } catch (NotFoundException $e) {
         $mungableClassNames = self::findMungableModelClassNames();
         GeneralCache::cacheEntry('mungableModelClassNames', $mungableClassNames);
         return $mungableClassNames;
     }
 }
Example #24
0
 /**
  * @param string $cacheType
  * @param mixed $value
  */
 protected static function setCacheIncrementValue($cacheType, $value)
 {
     GeneralCache::cacheEntry(static::$cacheIncrementValueVariableName . $cacheType, $value);
 }
Example #25
0
 /**
  * @param $user
  */
 public static function forgetCacheEntryForTabMenuByUser($user)
 {
     $identifier = self::getMenuViewItemsCacheIdentifierByUser($user);
     GeneralCache::forgetEntry($identifier);
 }
 protected static function setColumnsForPolymorphicLink($relatedModelClassName, $linkName)
 {
     $columns = array();
     $columns[] = RedBeanModelMemberToColumnUtil::resolveForeignKeyColumnMetadata(RedBeanModelMemberToColumnUtil::resolve($linkName) . '_id');
     $columns[] = static::resolvePolymorphicTypeColumnByLinkName($linkName);
     $tableName = $relatedModelClassName::getTableName();
     $polymorphicLinkColumns = GeneralCache::getEntry(static::CACHE_KEY, array());
     $polymorphicLinkColumns[$tableName] = $columns;
     GeneralCache::cacheEntry(static::CACHE_KEY, $polymorphicLinkColumns);
 }
Example #27
0
 /**
  * Sets metadata for the model.
  * @see getDefaultMetadata()
  * @returns An array of metadata.
  */
 public static function setMetadata(array $metadata)
 {
     if (YII_DEBUG) {
         self::assertMetadataIsValid($metadata);
     }
     $className = get_called_class();
     foreach (array_reverse(RuntimeUtil::getClassHierarchy($className, static::$lastClassInBeanHeirarchy)) as $modelClassName) {
         if ($modelClassName::getCanHaveBean()) {
             if ($modelClassName::canSaveMetadata()) {
                 if (isset($metadata[$modelClassName])) {
                     try {
                         $globalMetadata = GlobalMetadata::getByClassName($modelClassName);
                     } catch (NotFoundException $e) {
                         $globalMetadata = new GlobalMetadata();
                         $globalMetadata->className = $modelClassName;
                     }
                     $globalMetadata->serializedMetadata = serialize($metadata[$modelClassName]);
                     $saved = $globalMetadata->save();
                     // TODO: decide how to deal with this properly if it fails.
                     //       ie: throw or return false, or something other than
                     //           this naughty assert.
                     assert('$saved');
                 }
             }
         }
     }
     self::forgetBeanModel(get_called_class());
     RedBeanModelsCache::forgetAllByModelType(get_called_class());
     GeneralCache::forgetEntry(get_called_class() . 'Metadata');
 }
Example #28
0
 public function testForgetAllNotDeleteOtherDataFromCache()
 {
     if (MEMCACHE_ON && !PHP_CACHING_ON) {
         GeneralCache::cacheEntry('somethingForTesting4', 34);
         $value = GeneralCache::getEntry('somethingForTesting4');
         $this->assertEquals(34, $value);
         $originalAdditionalStringForCachePrefix = GeneralCache::getAdditionalStringForCachePrefix();
         GeneralCache::setAdditionalStringForCachePrefix('ATEST');
         GeneralCache::cacheEntry('somethingForTesting4', 43);
         $value = GeneralCache::getEntry('somethingForTesting4');
         $this->assertEquals(43, $value);
         GeneralCache::forgetAll();
         try {
             GeneralCache::getEntry('somethingForTesting4');
             $this->fail('NotFoundException exception is not thrown.');
         } catch (NotFoundException $e) {
             $this->assertTrue(true);
         }
         GeneralCache::setAdditionalStringForCachePrefix($originalAdditionalStringForCachePrefix);
         $value = GeneralCache::getEntry('somethingForTesting4');
         $this->assertEquals(34, $value);
     }
 }
Example #29
0
 protected static function getAllEmailTemplateElementClassNamesWithFilterFromCache($identifier, $filter)
 {
     try {
         $filteredElementClassNames = GeneralCache::getEntry($identifier);
     } catch (NotFoundException $e) {
         $filteredElementClassNames = static::getAllEmailTemplateElementClassNames($filter);
         GeneralCache::cacheEntry($identifier, $filteredElementClassNames);
     }
     return $filteredElementClassNames;
 }
 public function actionDeactivate($languageCode)
 {
     $languageData = LanguagesCollectionView::getLanguageDataByLanguageCode($languageCode);
     try {
         if (Yii::app()->languageHelper->deactivateLanguage($languageCode)) {
             $message = Zurmo::t('ZurmoModule', '{languageName} deactivated successfully', array('{languageName}' => $languageData['label']));
             $content = LanguagesCollectionView::renderFlashMessage($message);
             RedBeansCache::forgetAll();
             GeneralCache::forgetAll();
         }
     } catch (Exception $e) {
         $exceptionMessage = $e->getMessage();
         if (!empty($exceptionMessage)) {
             $message = Zurmo::t('ZurmoModule', '{languageName} deactivate failed. Error: {errorMessage}', array('{languageName}' => $languageData['label'], '{errorMessage}' => $exceptionMessage));
         } else {
             $message = Zurmo::t('ZurmoModule', '{languageName} deactivate failed. Unexpected error.', array('{languageName}' => $languageData['label']));
         }
         $content = LanguagesCollectionView::renderFlashMessage($message, true);
     }
     $view = new LanguagesCollectionView($this->getId(), $this->getModule()->getId());
     $content .= $view->renderLanguageRow($languageCode);
     echo $content;
 }