for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Hyde\Framework\Models;
use Hyde\Framework\Contracts\MarkdownDocumentContract;
use Hyde\Framework\Hyde;
use Hyde\Framework\Modules\Markdown\MarkdownFileParser;
/**
* A MarkdownDocument is a simpler alternative to a MarkdownPage.
*
* It's an object that contains a parsed FrontMatter split from the body of the Markdown file.
* @see \Hyde\Framework\Testing\Unit\MarkdownDocumentTest
*/
class MarkdownDocument implements MarkdownDocumentContract
{
public FrontMatter $matter;
public Markdown $markdown;
/** @deprecated */
public string $body;
public function __construct(FrontMatter|array $matter = [], Markdown|string $body = '')
$this->matter = $matter instanceof FrontMatter ? $matter : new FrontMatter($matter);
$matter
Hyde\Framework\Models\FrontMatter
$this->markdown = $body instanceof Markdown ? $body : new Markdown($body);
$this->body = $this->markdown->body;
Hyde\Framework\Models\MarkdownDocument::$body
If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated annotation
ignore-deprecated
/** @scrutinizer ignore-deprecated */ $this->body = $this->markdown->body;
}
public function __toString(): string
return $this->markdown;
public function matter(string $key = null, mixed $default = null): mixed
return $key ? $this->matter->get($key, $default) : $this->matter;
public function markdown(): Markdown
* @deprecated v0.56.0 - Use static::parse() instead
public static function parseFile(string $localFilepath): static
return static::parse($localFilepath);
public static function parse(string $localFilepath): static
return (new MarkdownFileParser(Hyde::path($localFilepath)))->get();