vendor/pimcore/pimcore/models/Tool/SettingsStore/Dao.php line 79

Open in your IDE?
  1. <?php
  2. /**
  3.  * Pimcore
  4.  *
  5.  * This source file is available under two different licenses:
  6.  * - GNU General Public License version 3 (GPLv3)
  7.  * - Pimcore Commercial License (PCL)
  8.  * Full copyright and license information is available in
  9.  * LICENSE.md which is distributed with this source code.
  10.  *
  11.  *  @copyright  Copyright (c) Pimcore GmbH (http://www.pimcore.org)
  12.  *  @license    http://www.pimcore.org/license     GPLv3 and PCL
  13.  */
  14. namespace Pimcore\Model\Tool\SettingsStore;
  15. use Pimcore\Db\Helper;
  16. use Pimcore\Model;
  17. use Pimcore\Model\Tool\SettingsStore;
  18. /**
  19.  * @internal
  20.  *
  21.  * @property SettingsStore $model
  22.  */
  23. class Dao extends Model\Dao\AbstractDao
  24. {
  25.     const TABLE_NAME 'settings_store';
  26.     /**
  27.      * @param string $id
  28.      * @param int|string|bool|float $data
  29.      * @param string $type
  30.      * @param string|null $scope
  31.      *
  32.      * @return bool
  33.      */
  34.     public function set(string $id$datastring $type 'string', ?string $scope null): bool
  35.     {
  36.         try {
  37.             Helper::insertOrUpdate($this->dbself::TABLE_NAME, [
  38.                 'id' => $id,
  39.                 'data' => $data,
  40.                 'scope' => (string) $scope,
  41.                 'type' => $type,
  42.             ]);
  43.             return true;
  44.         } catch (\Exception $e) {
  45.             return false;
  46.         }
  47.     }
  48.     /**
  49.      * @param string $id
  50.      * @param string|null $scope
  51.      *
  52.      * @return mixed
  53.      */
  54.     public function delete(string $id, ?string $scope null)
  55.     {
  56.         return $this->db->delete(self::TABLE_NAME, [
  57.             'id' => $id,
  58.             'scope' => (string) $scope,
  59.         ]);
  60.     }
  61.     /**
  62.      * @param string $id
  63.      * @param string|null $scope
  64.      *
  65.      * @return bool
  66.      */
  67.     public function getById(string $id, ?string $scope null): bool
  68.     {
  69.         $item $this->db->fetchAssociative('SELECT * FROM ' self::TABLE_NAME ' WHERE id = :id AND scope = :scope', [
  70.             'id' => $id,
  71.             'scope' => (string) $scope,
  72.         ]);
  73.         if (is_array($item) && array_key_exists('id'$item)) {
  74.             $this->assignVariablesToModel($item);
  75.             $data $item['data'] ?? null;
  76.             $this->model->setData($data);
  77.             return true;
  78.         }
  79.         return false;
  80.     }
  81.     /**
  82.      * @param string $scope
  83.      *
  84.      * @return array
  85.      */
  86.     public function getIdsByScope(string $scope): array
  87.     {
  88.         return $this->db->fetchFirstColumn('SELECT id FROM ' self::TABLE_NAME ' WHERE scope = ?', [$scope]);
  89.     }
  90. }