web/lib/Collection.php
Mike Colagrosso 2098b265a8 Rename the constructor Ebook::__construct() to static Ebook::FromFilesystem()
Also added `GetFoo()` methods for all the derived properties like `GetUrl()`, `GetHasDownloads()`, etc. Removed that logic from the constructor so that it's reusable in `Ebook::FromFilesystem()` and `Ebook::GetByIdentifier()`
2024-11-04 13:16:56 -06:00

34 lines
724 B
PHP

<?
use function Safe\preg_replace;
/**
* @property string $Url
*/
class Collection{
use Traits\Accessor;
public string $Name;
public string $UrlName;
public ?int $SequenceNumber = null;
public ?string $Type = null;
protected ?string $_Url = null;
protected function GetUrl(): ?string{
if($this->_Url === null){
$this->Url = '/collections/' . $this->UrlName;
}
return $this->_Url;
}
public static function FromName(string $name): Collection{
$instance = new Collection();
$instance->Name = $name;
$instance->UrlName = Formatter::MakeUrlSafe($instance->Name);
return $instance;
}
public function GetSortedName(): string{
return preg_replace('/^(the|and|a|)\s/ius', '', $this->Name);
}
}