X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/c429cf78187e80deb63982a282a1c6889f30291a..refs/pull/5721/head:/app/Entities/EntityProvider.php diff --git a/app/Entities/EntityProvider.php b/app/Entities/EntityProvider.php index aaf392c7b..3276a6c7a 100644 --- a/app/Entities/EntityProvider.php +++ b/app/Entities/EntityProvider.php @@ -18,30 +18,11 @@ use BookStack\Entities\Models\PageRevision; */ class EntityProvider { - /** - * @var Bookshelf - */ - public $bookshelf; - - /** - * @var Book - */ - public $book; - - /** - * @var Chapter - */ - public $chapter; - - /** - * @var Page - */ - public $page; - - /** - * @var PageRevision - */ - public $pageRevision; + public Bookshelf $bookshelf; + public Book $book; + public Chapter $chapter; + public Page $page; + public PageRevision $pageRevision; public function __construct() { @@ -56,7 +37,7 @@ class EntityProvider * Fetch all core entity types as an associated array * with their basic names as the keys. * - * @return array + * @return array */ public function all(): array { @@ -69,13 +50,18 @@ class EntityProvider } /** - * Get an entity instance by it's basic name. + * Get an entity instance by its basic name. */ public function get(string $type): Entity { $type = strtolower($type); + $instance = $this->all()[$type] ?? null; + + if (is_null($instance)) { + throw new \InvalidArgumentException("Provided type \"{$type}\" is not a valid entity type"); + } - return $this->all()[$type]; + return $instance; } /**