From 5849f2b52a881f096ff9ccd30f8a6627ed65bffb Mon Sep 17 00:00:00 2001 From: K Muller Date: Mon, 24 Aug 2026 11:51:25 +0200 Subject: [PATCH 1/2] fix: :bug: improve error catch for the generate command some sitemap does not generate, without throwing error --- .../Commands/GenerateSitemapCommand.php | 86 ++++++++++--------- 1 file changed, 45 insertions(+), 41 deletions(-) diff --git a/src/Console/Commands/GenerateSitemapCommand.php b/src/Console/Commands/GenerateSitemapCommand.php index faa096c..4db946c 100644 --- a/src/Console/Commands/GenerateSitemapCommand.php +++ b/src/Console/Commands/GenerateSitemapCommand.php @@ -37,43 +37,43 @@ class GenerateSitemapCommand extends Command { $this->info('Generating Sitemap..'); - $sitemap = Sitemap::create(); - - foreach (config('sitemap-generator.singlePages') as $page) { - foreach (config('sitemap-generator.supported_locales') as $locale) { - $sitemap->add(SitemapHelper::generateUrl( - SitemapHelper::getURLFromRouteNameTranslated($locale, $page), - getAlternate: fn ($locale) => SitemapHelper::getURLFromRouteNameTranslated($locale, $page) - )); - } - } - foreach (config('sitemap-generator.cruds') as $crud) { - $modelFilters = $crud['modelFilters'] ?? []; - $relationsFilters = $crud['relationFilters'] ?? []; - $allowNullRelations = $crud['allowNullRelations'] ?? []; - - $query = $crud['model']::query() - ->when($modelFilters, function (Builder $q) use ($modelFilters) { - $q->where($modelFilters); - }); - - if (! empty($relationsFilters)) { - $query->where(function (Builder $q) use ($relationsFilters, $allowNullRelations) { - foreach ($relationsFilters as $relation => $filter) { - if (in_array($relation, $allowNullRelations, true)) { - $q->whereDoesntHave($relation) - ->orWhereHas($relation, $filter); - } else { - $q->whereHas($relation, $filter); - } - } - }); - } - - $sitemap->add($query->get()); - } - try { + $sitemap = Sitemap::create(); + + foreach (config('sitemap-generator.singlePages') as $page) { + foreach (config('sitemap-generator.supported_locales') as $locale) { + $sitemap->add(SitemapHelper::generateUrl( + SitemapHelper::getURLFromRouteNameTranslated($locale, $page), + getAlternate: fn($locale) => SitemapHelper::getURLFromRouteNameTranslated($locale, $page) + )); + } + } + foreach (config('sitemap-generator.cruds') as $crud) { + $modelFilters = $crud['modelFilters'] ?? []; + $relationsFilters = $crud['relationFilters'] ?? []; + $allowNullRelations = $crud['allowNullRelations'] ?? []; + + $query = $crud['model']::query() + ->when($modelFilters, function (Builder $q) use ($modelFilters) { + $q->where($modelFilters); + }); + + if (! empty($relationsFilters)) { + $query->where(function (Builder $q) use ($relationsFilters, $allowNullRelations) { + foreach ($relationsFilters as $relation => $filter) { + if (in_array($relation, $allowNullRelations, true)) { + $q->whereDoesntHave($relation) + ->orWhereHas($relation, $filter); + } else { + $q->whereHas($relation, $filter); + } + } + }); + } + + $sitemap->add($query->get()); + } + if ($this->option('dry-run')) { $this->renderTable($sitemap); return 0; @@ -86,13 +86,17 @@ class GenerateSitemapCommand extends Command } $sitemap->writeToFile($dest); - } catch (SitemapException $e) { - $this->error('An error occured while generating sitemap'); + } catch (\Throwable $e) { + if ($e instanceof SitemapException) { + $this->error('Sitemap generation error'); + } else { + $this->error('Unexpected error while generating sitemap'); + } + $this->error($e->getMessage()); \report($e); - if (config('app.debug')) { - dump($e); - } + + return 1; } //end try $this->info('A new sitemap.xml was generated'); From 1984d4b65d770dabe26db17913c6cad0f0ad0a66 Mon Sep 17 00:00:00 2001 From: K Muller Date: Mon, 24 Aug 2026 11:52:05 +0200 Subject: [PATCH 2/2] =?UTF-8?q?chore:=20=F0=9F=94=96=20release=20v7.1.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 4 ++++ README.md | 2 +- composer.json | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 78ae58b..169472e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ All notable changes to `sitemap-generator` will be documented in this file. - This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html), - Commits respect [Conventionnal commits](https://www.conventionalcommits.org/en/v1.0.0/) & use [Gitmoji](https://gitmoji.dev/). +## **[v7.1.1] - 24/08/2026** + +- Improve error catch in `uwil:sitemap:refresh` command + ## **[v7.1.0] - 23/06/2026** - Added the possibility to get models with nullable relations. diff --git a/README.md b/README.md index 113e615..f4e0da9 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ If you discover any security related issues, please email in # Changelog -Latest version v5.0.1. +Latest version v7.1.1. See the [CHANGELOG.md](CHANGELOG.md) file for details. diff --git a/composer.json b/composer.json index 996e559..0f816fd 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,7 @@ { "name": "uwil/sitemap-generator", "description": "Create sitemap.xml", - "version": "7.1.0", + "version": "7.1.1", "require": { "illuminate/support": "~11|~12|~13", "laravel/framework": "~11|~12|~13",