Prado\I18N\core\MessageCache::get PHP Метод

get() публичный Метод

Get the data from the cache.
public get ( string $catalogue, string $culture, $lastmodified ) : mixed
$catalogue string The translation section.
$culture string The translation locale, e.g. "en_AU".
Результат mixed Boolean FALSE if no cache hit. Otherwise, translation table data for the specified section and locale.
    public function get($catalogue, $culture, $lastmodified = 0)
    {
        $ID = $this->getID($catalogue, $culture);
        $group = $this->getGroup($catalogue, $culture);
        $this->cache->_setFileName($ID, $group);
        $cache = $this->cache->getCacheFile();
        if (is_file($cache) == false) {
            return false;
        }
        $lastmodified = (int) $lastmodified;
        if ($lastmodified <= 0 || $lastmodified > filemtime($cache)) {
            return false;
        }
        //echo '@@ Cache hit: "'.$ID.'" : "'.$group.'"';
        //echo "<br>\n";
        return $this->cache->get($ID, $group);
    }

Usage Example

Пример #1
0
 /**
  * Load a particular message catalogue. Use read() to 
  * to get the array of messages. The catalogue loading sequence
  * is as follows
  *
  *  # [1] call getCatalogeList($catalogue) to get a list of 
  *    variants for for the specified $catalogue.
  *  # [2] for each of the variants, call getSource($variant)
  *    to get the resource, could be a file or catalogue ID.
  *  # [3] verify that this resource is valid by calling isValidSource($source)
  *  # [4] try to get the messages from the cache
  *  # [5] if a cache miss, call load($source) to load the message array
  *  # [6] store the messages to cache.
  *  # [7] continue with the foreach loop, e.g. goto [2].
  * 
  * @param string a catalogue to load
  * @return boolean true if loaded, false otherwise.	 
  * @see read()
  */
 function load($catalogue = 'messages')
 {
     $variants = $this->getCatalogueList($catalogue);
     $this->messages = array();
     foreach ($variants as $variant) {
         $source = $this->getSource($variant);
         if ($this->isValidSource($source) == false) {
             continue;
         }
         $loadData = true;
         if ($this->cache) {
             $data = $this->cache->get($variant, $this->culture, $this->getLastModified($source));
             if (is_array($data)) {
                 $this->messages[$variant] = $data;
                 $loadData = false;
             }
             unset($data);
         }
         if ($loadData) {
             $data =& $this->loadData($source);
             if (is_array($data)) {
                 $this->messages[$variant] = $data;
                 if ($this->cache) {
                     $this->cache->save($data, $variant, $this->culture);
                 }
             }
             unset($data);
         }
     }
     return true;
 }