403Webshell
Server IP : 162.213.251.208  /  Your IP : 3.16.82.195
Web Server : LiteSpeed
System : Linux business55.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
User : jmoroovq ( 1890)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/jmoroovq/mariowesser.com/wp-content/mu-plugins/object-cache-pro/src/Clients/Concerns/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/jmoroovq/mariowesser.com/wp-content/mu-plugins/object-cache-pro/src/Clients/Concerns/PhpRedisTransactions.php
<?php
/**
 * Copyright © 2019-2023 Rhubarb Tech Inc. All Rights Reserved.
 *
 * The Object Cache Pro Software and its related materials are property and confidential
 * information of Rhubarb Tech Inc. Any reproduction, use, distribution, or exploitation
 * of the Object Cache Pro Software and its related materials, in whole or in part,
 * is strictly forbidden unless prior permission is obtained from Rhubarb Tech Inc.
 *
 * In addition, any reproduction, use, distribution, or exploitation of the Object Cache Pro
 * Software and its related materials, in whole or in part, is subject to the End-User License
 * Agreement accessible in the included `LICENSE` file, or at: https://objectcache.pro/eula
 */

declare(strict_types=1);

namespace RedisCachePro\Clients\Concerns;

use Throwable;
use LogicException;

use RedisCachePro\Clients\Transaction;

trait PhpRedisTransactions
{
    /**
     * Hijack pipeline calls to trace them.
     *
     * @return \RedisCachePro\Clients\Transaction
     */
    public function pipeline()
    {
        return new Transaction($this, self::PIPELINE);
    }

    /**
     * Hijack multi calls to trace them.
     *
     * @param  int  $mode
     * @return \RedisCachePro\Clients\Transaction
     */
    public function multi(int $mode = self::MULTI)
    {
        return new Transaction($this, $mode);
    }

    /**
     * Block non-chained transactions.
     *
     * @return void
     */
    public function exec()
    {
        throw new LogicException('Non-chained transactions are not supported');
    }

    /**
     * Executes buffered transaction using client's callback.
     *
     * @phpstan-return mixed
     *
     * @param  \RedisCachePro\Clients\Transaction  $transaction
     * @return array<int, mixed>|bool
     */
    public function executeBufferedTransaction(Transaction $transaction)
    {
        $method = $transaction->context === self::MULTI ? 'multi' : 'pipeline';

        try {
            return $this->{$this->callback}(function () use ($transaction, $method) {
                $pipe = $this->client->{$method}();

                foreach ($transaction->commands as $command) {
                    $pipe->{$command[0]}(...$command[1]);
                }

                return $pipe->exec();
            }, 'exec');
        } catch (Throwable $th) {
            if ($this->client->getMode() !== self::ATOMIC) {
                $this->client->discard();
            }

            throw $th;
        }
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit