| Server IP : 54.36.91.62 / Your IP : 216.73.217.111 Web Server : Apache System : Linux webm013.cluster127.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64 User : coopiak ( 151928) PHP Version : 8.3.23 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/coopiak/amisdesseniors-fr/nice2/libraries/src/TUF/ |
Upload File : |
<?php
/**
* Joomla! Content Management System
*
* @copyright (C) 2024 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace Joomla\CMS\TUF;
use Joomla\CMS\Table\Table;
use Joomla\CMS\Table\TableInterface;
use Joomla\CMS\Table\Tuf;
use Tuf\Metadata\StorageBase;
// phpcs:disable PSR1.Files.SideEffects
\defined('_JEXEC') or die;
// phpcs:enable PSR1.Files.SideEffects;
/**
* @since 5.1.0
*
* @internal Currently this class is only used for Joomla! updates and will be extended in the future to support 3rd party updates
* Don't extend this class in your own code, it is subject to change without notice.
*/
class DatabaseStorage extends StorageBase
{
public const METADATA_COLUMNS = ['root', 'targets', 'snapshot', 'timestamp', 'mirrors'];
/**
* The TUF table object
*
* @var Table
*/
protected $table;
protected $container = [];
/**
* Initialize the DatabaseStorage class
*
* @param TableInterface $table The table object that represents the metadata row
*/
public function __construct(TableInterface $table)
{
$this->table = $table;
foreach (self::METADATA_COLUMNS as $column) {
if ($this->table->$column === null) {
continue;
}
$this->write($column, $this->table->$column);
}
}
public function read(string $name): ?string
{
return $this->container[$name] ?? null;
}
public function write(string $name, string $data): void
{
$this->container[$name] = $data;
}
public function delete(string $name): void
{
unset($this->container[$name]);
}
public function persist(): bool
{
$data = [];
foreach (self::METADATA_COLUMNS as $column) {
if (!\array_key_exists($column, $this->container)) {
continue;
}
$data[$column] = $this->container[$column];
}
return $this->table->save($data);
}
}