HEX
Server: Apache
System: Linux server11 5.10.0-33-amd64 #1 SMP Debian 5.10.226-1 (2024-10-03) x86_64
User: web78 (5081)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/clients/client1/web78/web/wp-content/plugins/loco-translate/src/data/Transient.php
<?php
/**
 * 
 */
abstract class Loco_data_Transient extends Loco_data_Serializable {

    /**
     * Lifespan to persist object in transient cache
     * @var int seconds
     */
    private $ttl = 0;
    
    /**
     * Get short suffix for use as end of cache key.
     * DB allows 191 characters including "_transient_timeout_loco_" prefix, leaving 167 bytes
     * @return string
     */
    abstract public function getKey();

    /**
     * Persist object in WordPress cache
     * @param int
     * @param bool
     * @return Loco_data_Transient
     */
    public function persist(){
        $key = 'loco_'.$this->getKey();
        set_transient( $key, $this->getSerializable(), $this->ttl );
        $this->clean();
        return $this;
    }


    /**
     * Retrieve and unserialize this object from WordPress transient cache
     * @return bool whether object existed in cache
     */
    public function fetch(){
        $key = 'loco_'.$this->getKey();
        $data = get_transient( $key );
        try {
            $this->setUnserialized($data);
            return true;
        }
        catch( InvalidArgumentException $e ){
            return false;
        }
    }
    
    
    /**
     * @param int
     * @return self
     */
    public function setLifespan( $ttl ){
        $this->ttl = (int) $ttl;
        return $this;
    }
    
    
    /**
     * Set keep-alive interval
     * @param int
     * @return self
     */
    public function keepAlive( $timeout ){
        $time = $this->getTimestamp();
        // legacy objects (with ttl=0) had no timestamp, so will always be touched.
        // make dirty if this number of seconds has elapsed since last persisted.
        if( time() > ( $time + $timeout ) ){
            $this->touch()->persistLazily();
        }
        return $this;
    }
    

}