getClientIp(); } else { return request()->server('HTTP_X_FORWARDED_FOR') ?? request()->getClientIp(); } }); // * LOCAL FORCE eg: for Carbon setlocale(LC_ALL, \sprintf( '%s_%s.UTF-8', config('app.locale'), \strtoupper(config('app.locale')) )); Carbon::setLocale(config('app.locale')); $this->sharetoView(); // * Instagram Singleton App::singleton('Instagram', function () { $url = config('services.facebook.graph_url'); $version = config('services.facebook.graph_version'); $access_token = config('services.facebook.graph_access_token'); if (empty($url) or !is_string($url)) { throw new \RuntimeException( 'Missing services.facebook.graph_url, FACEBOOK_GRAPH_URL' ); } if (empty($version) or !is_string($version)) { throw new \RuntimeException( 'Missing services.facebook.graph_version, FACEBOOK_GRAPH_ACCESS_TOKEN' ); } if (empty($access_token) or !is_string($access_token)) { throw new \RuntimeException( 'Missing services.facebook.graph_access_token, FACEBOOK_GRAPH_VERSION' ); } return new ApiFetcher( $url, $version, $access_token ); }); } /** * Share Vars to view * * @return void */ private function sharetoView() { if (app()->runningInConsole()) { return; } // * VITE ALIASES Vite::macro('image', function (string $asset) { /** @var \Illuminate\Foundation\Vite $self */ $self = $this; $self->asset("resources/assets/images/{$asset}"); }); // * FORCE BOOTSTRAP PAGINATOR (or custom if in front) // Early boot, request wont be filled as expected. if (collect(explode('/', \request()->getPathInfo()))->get(1) === 'bo') { Paginator::useBootstrap(); } else { Paginator::useBootstrap(); } // * Hashtag Fetch App::singleton('topMediaHashTag', fn () => Cache::remember( 'top_media_hashtag', // * Remember 7 days. 7 * 24 * 60 * 60, function () { /** @var string|null */ $hashtag_id = config('services.facebook.enpoints.ig_top_media.hashtag_id'); $hashtag_id = !empty($hashtag_id) ? \intval($hashtag_id) : $hashtag_id; if (empty($hashtag_id) or !\is_int($hashtag_id)) { return 'Non configuré'; } /** @var \App\Lib\Instagram\ApiFetcher */ $igFetcherClient = \app('Instagram'); try { return $igFetcherClient->fetchTagName($hashtag_id); } catch (\RuntimeException $e) { report($e); return 'Erreur IG api call'; } } )); } }