Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
3 / 3
CRAP
100.00% covered (success)
100.00%
1 / 1
Author
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
3 / 3
3
100.00% covered (success)
100.00%
1 / 1
 create
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 get
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 all
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3declare(strict_types=1);
4
5namespace Hyde\Facades;
6
7use Hyde\Framework\Features\Blogging\Models\PostAuthor;
8use Illuminate\Support\Collection;
9
10/**
11 * Allows you to easily add pre-defined authors for your blog posts.
12 *
13 * @see \Hyde\Framework\Features\Blogging\Models\PostAuthor
14 */
15class Author
16{
17    /**
18     * Construct a new Post Author. For Hyde to discover this author,
19     * you must call this method from your hyde.php config file.
20     *
21     * @see https://hydephp.com/docs/1.x/customization#authors
22     *
23     * @param  string  $username  The username of the author. This is the key used to find authors in the config.
24     * @param  string|null  $name  The optional display name of the author, leave blank to use the username.
25     * @param  string|null  $website  The author's optional website URL. Website, Twitter, etc.
26     */
27    public static function create(string $username, ?string $name = null, ?string $website = null): PostAuthor
28    {
29        return new PostAuthor($username, $name, $website);
30    }
31
32    /**
33     * Get a Post Author instance from the config. If no author matching the username is found,
34     * a new Post Author instance will be created with just username supplied to the method.
35     */
36    public static function get(string $username): PostAuthor
37    {
38        return PostAuthor::get($username);
39    }
40
41    /**
42     * Get all the defined Post Author instances from the config.
43     *
44     * @return \Illuminate\Support\Collection<\Hyde\Framework\Features\Blogging\Models\PostAuthor>
45     */
46    public static function all(): Collection
47    {
48        return PostAuthor::all();
49    }
50}