YetiForceCompany/YetiForceCRM

View on GitHub
include/runtime/Cache.php

Summary

Maintainability
C
7 hrs
Test Coverage
F
15%
<?php
/* +***********************************************************************************
 * The contents of this file are subject to the vtiger CRM Public License Version 1.0
 * ("License"); You may not use this file except in compliance with the License
 * The Original Code is:  vtiger CRM Open Source
 * The Initial Developer of the Original Code is vtiger.
 * Portions created by vtiger are Copyright (C) vtiger.
 * All Rights Reserved.
 * *********************************************************************************** */

include_once __DIR__ . '/cache/Connector.php';

class Vtiger_Cache
{
    private static $selfInstance = false;
    public static $cacheEnable = true;
    protected $connector;

    private function __construct()
    {
        $this->connector = Vtiger_Cache_Connector::getInstance();
    }

    public static function getInstance()
    {
        if (self::$selfInstance) {
            return self::$selfInstance;
        } else {
            self::$selfInstance = new self();

            return self::$selfInstance;
        }
    }

    public static function get($ns, $key)
    {
        $self = self::getInstance();
        if ($key && self::$cacheEnable) {
            return $self->connector->get($ns, $key);
        }
        return false;
    }

    public static function set($ns, $key, $value)
    {
        $self = self::getInstance();
        if (self::$cacheEnable) {
            $self->connector->set($ns, $key, $value);
        }
    }

    public static function flush()
    {
        $self = self::getInstance();
        $self->connector->flush();
    }

    private static $_user_list;

    public function getUserList($module, $currentUser)
    {
        if (isset(self::$_user_list[$currentUser][$module])) {
            return self::$_user_list[$currentUser][$module];
        }
        return false;
    }

    public function setUserList($module, $userList, $currentUser)
    {
        if (self::$cacheEnable) {
            self::$_user_list[$currentUser][$module] = $userList;
        }
    }

    private static $_group_list;

    public function getGroupList($module, $currentUser)
    {
        if (isset(self::$_group_list[$currentUser][$module])) {
            return self::$_group_list[$currentUser][$module];
        }
        return false;
    }

    public function setGroupList($module, $GroupList, $currentUser)
    {
        if (self::$cacheEnable) {
            self::$_group_list[$currentUser][$module] = $GroupList;
        }
    }

    private static $_picklist_details;

    public function getPicklistDetails($module, $field)
    {
        if (isset(self::$_picklist_details[$module][$field])) {
            return self::$_picklist_details[$module][$field];
        }
        return false;
    }

    public function setPicklistDetails($module, $field, $picklistDetails)
    {
        if (self::$cacheEnable) {
            self::$_picklist_details[$module][$field] = $picklistDetails;
        }
    }

    private static $_module_ownedby;

    public function getModuleOwned($module)
    {
        if (isset(self::$_module_ownedby[$module])) {
            return self::$_module_ownedby[$module];
        }
        return false;
    }

    public function setModuleOwned($module, $ownedby)
    {
        if (self::$cacheEnable) {
            self::$_module_ownedby[$module] = $ownedby;
        }
    }

    private static $_field_instance;

    public function getFieldInstance($field, $moduleId)
    {
        if (isset(self::$_field_instance[$moduleId][$field])) {
            return self::$_field_instance[$moduleId][$field];
        }
        return false;
    }

    public function setFieldInstance($field, $moduleId, $instance)
    {
        if (self::$cacheEnable) {
            self::$_field_instance[$moduleId][$field] = $instance;
        }
    }

    private static $_admin_user_id = false;

    public function getAdminUserId()
    {
        return self::$_admin_user_id;
    }

    public function setAdminUserId($userId)
    {
        if (self::$cacheEnable) {
            self::$_admin_user_id = $userId;
        }
    }

    //cache for the module Instance
    private static $_module_name = [];

    public function getModuleName($moduleId)
    {
        if (isset(self::$_module_name[$moduleId])) {
            return self::$_module_name[$moduleId];
        }
        return false;
    }

    public function setModuleName($moduleId, $moduleName)
    {
        if (self::$cacheEnable) {
            self::$_module_name[$moduleId] = $moduleName;
        }
    }

    private static $_user_id;

    public function getUserId($userName)
    {
        if (isset(self::$_user_id[$userName])) {
            return self::$_user_id[$userName];
        }
        return false;
    }

    public function setUserId($userName, $userId)
    {
        if (self::$cacheEnable) {
            self::$_user_id[$userName] = $userId;
        }
    }

    private static $_table_exists;

    public function getTableExists($tableName)
    {
        if (isset(self::$_table_exists[$tableName])) {
            return self::$_table_exists[$tableName];
        }
        return false;
    }

    public function setTableExists($tableName, $exists)
    {
        if (self::$cacheEnable) {
            self::$_table_exists[$tableName] = $exists;
        }
    }

    private static $_picklist_id;

    public function getPicklistId($fieldName, $moduleName)
    {
        if (isset(self::$_picklist_id[$moduleName][$fieldName])) {
            return self::$_picklist_id[$moduleName][$fieldName];
        }
        return false;
    }

    public function setPicklistId($fieldName, $moduleName, $picklistId)
    {
        if (self::$cacheEnable) {
            self::$_picklist_id[$moduleName][$fieldName] = $picklistId;
        }
    }

    private static $_group_id;

    public function getGroupId($groupName)
    {
        if (isset(self::$_group_id[$groupName])) {
            return self::$_group_id[$groupName];
        }
        return false;
    }

    public function setGroupId($groupName, $groupId)
    {
        if (self::$cacheEnable) {
            self::$_group_id[$groupName] = $groupId;
        }
    }

    private static $_block_fields;

    public function getBlockFields($block, $module)
    {
        if (isset(self::$_block_fields[$module][$block])) {
            return self::$_block_fields[$module][$block];
        }
        return false;
    }

    public function setBlockFields($block, $module, $fields)
    {
        if (self::$cacheEnable) {
            self::$_block_fields[$module][$block] = $fields;
        }
    }

    private static $_name_fields;

    public function getNameFields($module)
    {
        if (isset(self::$_name_fields[$module])) {
            return self::$_name_fields[$module];
        }
        return false;
    }

    public function setNameFields($module, $nameFields)
    {
        if (self::$cacheEnable) {
            self::$_name_fields[$module] = $nameFields;
        }
    }

    public function purifyGet($key)
    {
        if (self::$cacheEnable) {
            return $this->connector->get('purify', $key);
        }
        return false;
    }

    public function purifySet($key, $value)
    {
        if (self::$cacheEnable) {
            $this->connector->set('purify', $key, $value);
        }
    }

    private static $_owners_names_list;

    public function getOwnerName($id)
    {
        if (isset(self::$_owners_names_list[$id])) {
            return self::$_owners_names_list[$id];
        }
        return false;
    }

    public function setOwnerName($id, $value)
    {
        if (self::$cacheEnable) {
            self::$_owners_names_list[$id] = $value;
        }
    }

    public function hasOwnerName($id)
    {
        $value = $this->getOwnerName($id);

        return $value !== false;
    }

    private static $_owners_db_names_list;

    public function getOwnerDbName($id)
    {
        if (isset(self::$_owners_db_names_list[$id])) {
            return self::$_owners_db_names_list[$id];
        }
        return false;
    }

    public function setOwnerDbName($id, $value)
    {
        if (self::$cacheEnable) {
            self::$_owners_db_names_list[$id] = $value;
        }
    }

    public function hasOwnerDbName($id)
    {
        $value = $this->getOwnerDbName($id);

        return $value !== false;
    }
}