1
0
mirror of https://github.com/BookStackApp/BookStack.git synced 2025-07-31 15:24:31 +03:00

Fleshed out entity provided and optimized imports

This commit is contained in:
Dan Brown
2018-09-25 16:58:03 +01:00
parent 919660678b
commit 257a5a23ec
49 changed files with 144 additions and 133 deletions

View File

@ -1,7 +1,78 @@
<?php namespace BookStack\Entities;
/**
* Class EntityProvider
*
* Provides access to the core entity models.
* Wrapped up in this provider since they are often used together
* so this is a neater alternative to injecting all in individually.
*
* @package BookStack\Entities
*/
class EntityProvider
{
// TODO -
/**
* @var Bookshelf
*/
protected $bookshelf;
/**
* @var Book
*/
protected $book;
/**
* @var Chapter
*/
protected $chapter;
/**
* @var Page
*/
protected $page;
/**
* @var PageRevision
*/
protected $pageRevision;
/**
* EntityProvider constructor.
* @param Bookshelf $bookshelf
* @param Book $book
* @param Chapter $chapter
* @param Page $page
* @param PageRevision $pageRevision
*/
public function __construct(
Bookshelf $bookshelf,
Book $book,
Chapter $chapter,
Page $page,
PageRevision $pageRevision
) {
$this->bookshelf = $bookshelf;
$this->book = $book;
$this->chapter = $chapter;
$this->page = $page;
$this->pageRevision = $pageRevision;
}
/**
* Fetch all core entity types as an associated array
* with their basic names as the keys.
* @return Entity[]
*/
public function all()
{
return [
'bookshelf' => $this->bookshelf,
'book' => $this->book,
'chapter' => $this->chapter,
'page' => $this->page,
];
}
}