Files
investbrain/app/Providers/AppServiceProvider.php
T

57 lines
1.4 KiB
PHP
Raw Permalink Normal View History

2024-08-01 13:53:10 -05:00
<?php
2025-01-28 17:33:54 -06:00
declare(strict_types=1);
2024-08-01 13:53:10 -05:00
namespace App\Providers;
2025-01-23 22:47:16 -06:00
use Illuminate\Http\Resources\Json\JsonResource;
2025-04-09 19:25:15 -05:00
use Illuminate\Support\Arr;
use Illuminate\Support\Number;
2025-01-28 17:14:49 -06:00
use Illuminate\Support\ServiceProvider;
2025-04-09 19:25:15 -05:00
use NumberFormatter;
2024-08-01 13:53:10 -05:00
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*/
public function register(): void
{
2024-08-24 22:19:40 -05:00
$this->app->bind(
\App\Interfaces\MarketData\MarketDataInterface::class,
\App\Interfaces\MarketData\FallbackInterface::class
2024-08-24 22:19:40 -05:00
);
2024-08-01 13:53:10 -05:00
}
/**
* Bootstrap any application services.
*/
public function boot(): void
{
2025-01-23 22:47:16 -06:00
JsonResource::withoutWrapping();
2025-04-09 19:25:15 -05:00
Arr::macro('skipEmptyValues', function (array $array) {
return Arr::mapWithKeys($array, function (mixed $value, mixed $key) {
$result = [];
if (! empty($value)) {
$result[$key] = $value;
}
return $result;
});
});
Number::macro('currencySymbol', function (?string $currency = null, ?string $locale = null) {
$currency = $currency ?? Number::defaultCurrency();
$locale = $locale ?? Number::defaultLocale();
$formatter = new NumberFormatter($locale."@currency=$currency", NumberFormatter::CURRENCY);
return $formatter->getSymbol(NumberFormatter::CURRENCY_SYMBOL);
});
2024-08-01 13:53:10 -05:00
}
}