summaryrefslogtreecommitdiff
path: root/app/Console/Commands/GenerateSitemap.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/Console/Commands/GenerateSitemap.php')
-rw-r--r--app/Console/Commands/GenerateSitemap.php52
1 files changed, 52 insertions, 0 deletions
diff --git a/app/Console/Commands/GenerateSitemap.php b/app/Console/Commands/GenerateSitemap.php
new file mode 100644
index 0000000..46bb0ac
--- /dev/null
+++ b/app/Console/Commands/GenerateSitemap.php
@@ -0,0 +1,52 @@
+<?php
+
+namespace App\Console\Commands;
+
+use Illuminate\Console\Command;
+use Spatie\Sitemap\SitemapGenerator;
+use Psr\Http\Message\UriInterface;
+
+class GenerateSitemap extends Command
+{
+ /**
+ * The name and signature of the console command.
+ *
+ * @var string
+ */
+ protected $signature = 'sitemap:generate';
+
+ /**
+ * The console command description.
+ *
+ * @var string
+ */
+ protected $description = 'Generate the sitemap';
+
+ /**
+ * Create a new command instance.
+ *
+ * @return void
+ */
+ public function __construct()
+ {
+ parent::__construct();
+ }
+
+ /**
+ * Execute the console command.
+ *
+ * @return int
+ */
+ public function handle()
+ {
+ // modify this to your own needs
+ SitemapGenerator::create(config('app.url'))
+ ->shouldCrawl(function (UriInterface $url) {
+ /**
+ * Prevent the crawler from crawling the random pages.
+ */
+ return strpos($url->getPath(), '/random') === false;
+ })
+ ->writeToFile(public_path('sitemap.xml'));
+ }
+}