/home/techb158/immovalet.com/vendor/nesbot/carbon/src/Carbon/Traits
NameSizeModeActions
Boundaries.php113000644editdlrm
Cast.php8640644editdlrm
Comparison.php332240644editdlrm
Converter.php157710644editdlrm
Creator.php302860644editdlrm
Date.php1621130644editdlrm
Difference.php519870644editdlrm
IntervalRounding.php15760644editdlrm
IntervalStep.php23450644editdlrm
Localization.php278720644editdlrm
Macro.php30920644editdlrm
Mixin.php48990644editdlrm
Modifiers.php137060644editdlrm
Mutability.php13320644editdlrm
ObjectInitialisation.php4210644editdlrm
Options.php129410644editdlrm
Rounding.php68920644editdlrm
Serialization.php58430644editdlrm
Test.php49890644editdlrm
Timestamp.php65840644editdlrm
Units.php124650644editdlrm
Week.php73880644editdlrm
Edit: /home/techb158/immovalet.com/vendor/nesbot/carbon/src/Carbon/Traits/Macro.php (3092B)
* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Carbon\Traits; /** * Trait Macros. * * Allows users to register macros within the Carbon class. */ trait Macro { use Mixin; /** * The registered macros. * * @var array */ protected static $globalMacros = []; /** * The registered generic macros. * * @var array */ protected static $globalGenericMacros = []; /** * Register a custom macro. * * @example * ``` * $userSettings = [ * 'locale' => 'pt', * 'timezone' => 'America/Sao_Paulo', * ]; * Carbon::macro('userFormat', function () use ($userSettings) { * return $this->copy()->locale($userSettings['locale'])->tz($userSettings['timezone'])->calendar(); * }); * echo Carbon::yesterday()->hours(11)->userFormat(); * ``` * * @param string $name * @param object|callable $macro * * @return void */ public static function macro($name, $macro) { static::$globalMacros[$name] = $macro; } /** * Remove all macros and generic macros. */ public static function resetMacros() { static::$globalMacros = []; static::$globalGenericMacros = []; } /** * Register a custom macro. * * @param object|callable $macro * @param int $priority marco with higher priority is tried first * * @return void */ public static function genericMacro($macro, $priority = 0) { if (!isset(static::$globalGenericMacros[$priority])) { static::$globalGenericMacros[$priority] = []; krsort(static::$globalGenericMacros, SORT_NUMERIC); } static::$globalGenericMacros[$priority][] = $macro; } /** * Checks if macro is registered globally. * * @param string $name * * @return bool */ public static function hasMacro($name) { return isset(static::$globalMacros[$name]); } /** * Get the raw callable macro registered globally for a given name. * * @param string $name * * @return callable|null */ public static function getMacro($name) { return static::$globalMacros[$name] ?? null; } /** * Checks if macro is registered globally or locally. * * @param string $name * * @return bool */ public function hasLocalMacro($name) { return ($this->localMacros && isset($this->localMacros[$name])) || static::hasMacro($name); } /** * Get the raw callable macro registered globally or locally for a given name. * * @param string $name * * @return callable|null */ public function getLocalMacro($name) { return ($this->localMacros ?? [])[$name] ?? static::getMacro($name); } }