Server : LiteSpeed System : Linux server335.web-hosting.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64 User : cardxfeb ( 2452) PHP Version : 8.1.34 Disable Function : NONE Directory : /home/cardxfeb/public_html/vendor/spatie/laravel-sitemap/src/ |
<?php
namespace Spatie\Sitemap;
use Illuminate\Contracts\Support\Renderable;
use Illuminate\Contracts\Support\Responsable;
use Illuminate\Support\Facades\Response;
use Illuminate\Support\Facades\Storage;
use Spatie\Sitemap\Tags\Sitemap;
use Spatie\Sitemap\Tags\Tag;
class SitemapIndex implements Responsable, Renderable
{
/** @var \Spatie\Sitemap\Tags\Sitemap[] */
protected array $tags = [];
public static function create(): static
{
return new static();
}
public function add(string | Sitemap $tag): static
{
if (is_string($tag)) {
$tag = Sitemap::create($tag);
}
$this->tags[] = $tag;
return $this;
}
public function getSitemap(string $url): ?Sitemap
{
return collect($this->tags)->first(function (Tag $tag) use ($url) {
return $tag->getType() === 'sitemap' && $tag->url === $url;
});
}
public function hasSitemap(string $url): bool
{
return (bool) $this->getSitemap($url);
}
public function render(): string
{
$tags = $this->tags;
return view('sitemap::sitemapIndex/index')
->with(compact('tags'))
->render();
}
public function writeToFile(string $path): static
{
file_put_contents($path, $this->render());
return $this;
}
public function writeToDisk(string $disk, string $path): static
{
Storage::disk($disk)->put($path, $this->render());
return $this;
}
/**
* Create an HTTP response that represents the object.
*
* @param \Illuminate\Http\Request $request
* @return \Symfony\Component\HttpFoundation\Response
*/
public function toResponse($request)
{
return Response::make($this->render(), 200, [
'Content-Type' => 'text/xml',
]);
}
}