Funciones Globales

Objetivo

Crear funciones globales que podamos llamar de cualquier parte de nuestro código.

Crear Archivo

Crear archivo donde vamos a almacenar nuestras funciones. En app/Funciones/globales.php

<?php


// Convertir Currency a Numero Float
function getAmount($money)
{
    $cleanString = preg_replace('/([^0-9\.,])/i', '', $money);
    $onlyNumbersString = preg_replace('/([^0-9])/i', '', $money);

    $separatorsCountToBeErased = strlen($cleanString) - strlen($onlyNumbersString) - 1;

    $stringWithCommaOrDot = preg_replace('/([,\.])/', '', $cleanString, $separatorsCountToBeErased);
    $removedThousandSeparator = preg_replace('/(\.|,)(?=[0-9]{3,}$)/', '',  $stringWithCommaOrDot);

    return (float) str_replace(',', '.', $removedThousandSeparator);
}

?>

Registrar

Ahora registrar el archivo de funciones globales bajo la sección de auto load. En composer.json

...
"autoload": {
	"psr-4": {
		"App\\": "app/",
		"Database\\Factories\\": "database/factories/",
		"Database\\Seeders\\": "database/seeders/"
	},
	"files": [
		"app/Funciones/globales.php"
	]
},
...

Como le hicimos cambios a composer, tenemos que correr: composer dump-autoload

Colisiones

Para asegurarnos que no exista otra funcion con el mismo nombre y pueda existir alguna colision, protegemos nuestra función con: En app/Funciones/globales.php

Texto
if(!function_exists('getAmount')){

    // Convertir Currency a Numero Float
    function getAmount($money)
    {
        $cleanString = preg_replace('/([^0-9\.,])/i', '', $money);
        $onlyNumbersString = preg_replace('/([^0-9])/i', '', $money);

        $separatorsCountToBeErased = strlen($cleanString) - strlen($onlyNumbersString) - 1;

        $stringWithCommaOrDot = preg_replace('/([,\.])/', '', $cleanString, $separatorsCountToBeErased);
        $removedThousandSeparator = preg_replace('/(\.|,)(?=[0-9]{3,}$)/', '',  $stringWithCommaOrDot);

        return (float) str_replace(',', '.', $removedThousandSeparator);
    }
    
}


Listo!