Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
GenerateSitemap
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
2 / 2
3
100.00% covered (success)
100.00%
1 / 1
 handle
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
2
 printFinishMessage
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3declare(strict_types=1);
4
5namespace Hyde\Framework\Actions\PostBuildTasks;
6
7use Hyde\Hyde;
8use Hyde\Framework\Features\BuildTasks\PostBuildTask;
9use Hyde\Framework\Concerns\InteractsWithDirectories;
10use Hyde\Framework\Features\XmlGenerators\SitemapGenerator;
11
12use function file_put_contents;
13
14class GenerateSitemap extends PostBuildTask
15{
16    use InteractsWithDirectories;
17
18    public static string $message = 'Generating sitemap';
19
20    protected string $path;
21
22    public function handle(): void
23    {
24        if (! Hyde::hasSiteUrl()) {
25            $this->skip('Cannot generate sitemap without a valid base URL');
26        }
27
28        $this->path = Hyde::sitePath('sitemap.xml');
29
30        $this->needsParentDirectory($this->path);
31
32        file_put_contents($this->path, SitemapGenerator::make());
33    }
34
35    public function printFinishMessage(): void
36    {
37        $this->createdSiteFile($this->path)->withExecutionTime();
38    }
39}