12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Framework;
- /**
- * Registry model. Used to manage values in registry
- *
- * Registry usage as a shared service introduces temporal, hard to detect coupling into system.
- * It's usage should be avoid. Use service classes or data providers instead.
- *
- * @api
- * @deprecated 102.0.0
- * @since 100.0.2
- */
- class Registry
- {
- /**
- * Registry collection
- *
- * @var array
- */
- private $_registry = [];
- /**
- * Retrieve a value from registry by a key
- *
- * @param string $key
- * @return mixed
- *
- * @deprecated 102.0.0
- */
- public function registry($key)
- {
- if (isset($this->_registry[$key])) {
- return $this->_registry[$key];
- }
- return null;
- }
- /**
- * Register a new variable
- *
- * @param string $key
- * @param mixed $value
- * @param bool $graceful
- * @return void
- * @throws \RuntimeException
- *
- * @deprecated 102.0.0
- */
- public function register($key, $value, $graceful = false)
- {
- if (isset($this->_registry[$key])) {
- if ($graceful) {
- return;
- }
- throw new \RuntimeException('Registry key "' . $key . '" already exists');
- }
- $this->_registry[$key] = $value;
- }
- /**
- * Unregister a variable from register by key
- *
- * @param string $key
- * @return void
- *
- * @deprecated 102.0.0
- */
- public function unregister($key)
- {
- if (isset($this->_registry[$key])) {
- if (is_object($this->_registry[$key])
- && method_exists($this->_registry[$key], '__destruct')
- && is_callable([$this->_registry[$key], '__destruct'])
- ) {
- $this->_registry[$key]->__destruct();
- }
- unset($this->_registry[$key]);
- }
- }
- /**
- * Destruct registry items
- */
- public function __destruct()
- {
- $keys = array_keys($this->_registry);
- array_walk($keys, [$this, 'unregister']);
- }
- }
|