BossBey File Manager
PHP:
8.2.30
OS:
Linux
User:
imagivibe
Root
/
home
/
imagivibe
/
www
/
app.imagivibe.com
/
vendor
/
spatie
/
once
/
src
📤 Upload
📝 New File
📁 New Folder
Close
Editing: functions.php
<?php use Spatie\Once\Backtrace; use Spatie\Once\Cache; /** * @template T * * @param (callable(): T) $callback * @return T */ function once(callable $callback): mixed { $trace = debug_backtrace( DEBUG_BACKTRACE_PROVIDE_OBJECT, 2 ); $backtrace = new Backtrace($trace); if ($backtrace->getFunctionName() === 'eval') { return call_user_func($callback); } $object = $backtrace->getObject(); $hash = $backtrace->getHash(); $cache = Cache::getInstance(); if (is_string($object)) { $object = $cache; } if (! $cache->isEnabled()) { return call_user_func($callback, $backtrace->getArguments()); } if (! $cache->has($object, $hash)) { $result = call_user_func($callback, $backtrace->getArguments()); $cache->set($object, $hash, $result); } return $cache->get($object, $hash); }
Save
Cancel