![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mcoil.corals.io/vendor/laravel/framework/src/Illuminate/Support/ |
<?php namespace Illuminate\Support; use WeakMap; class Once { /** * The current globally used instance. * * @var static|null */ protected static ?self $instance = null; /** * Indicates if the once instance is enabled. * * @var bool */ protected static bool $enabled = true; /** * Create a new once instance. * * @param \WeakMap<object, array<string, mixed>> $values * @return void */ protected function __construct(protected WeakMap $values) { // } /** * Create a new once instance. * * @return static */ public static function instance() { return static::$instance ??= new static(new WeakMap); } /** * Get the value of the given onceable. * * @param Onceable $onceable * @return mixed */ public function value(Onceable $onceable) { if (! static::$enabled) { return call_user_func($onceable->callable); } $object = $onceable->object ?: $this; $hash = $onceable->hash; if (isset($this->values[$object][$hash])) { return $this->values[$object][$hash]; } if (! isset($this->values[$object])) { $this->values[$object] = []; } return $this->values[$object][$hash] = call_user_func($onceable->callable); } /** * Re-enable the once instance if it was disabled. * * @return void */ public static function enable() { static::$enabled = true; } /** * Disable the once instance. * * @return void */ public static function disable() { static::$enabled = false; } /** * Flush the once instance. * * @return void */ public static function flush() { static::$instance = null; } }