PolicyManager::abilities()
last analyzed

Size

Total Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 1
ccs 0
cts 0
cp 0
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Arcanedev\LaravelPolicies\Contracts;
6
7
use Illuminate\Support\Collection;
8
9
/**
10
 * Interface  PolicyManager
11
 *
12
 * @author    ARCANEDEV <[email protected]>
13
 */
14
interface PolicyManager
15
{
16
    /* -----------------------------------------------------------------
17
     |  Getters
18
     | -----------------------------------------------------------------
19
     */
20
21
    /**
22
     * Get the registered policies.
23
     *
24
     * @return \Arcanedev\LaravelPolicies\Contracts\Policy[]|\Illuminate\Support\Collection
25
     */
26
    public function policies(): Collection;
27
28
    /**
29
     * Get the registered abilities.
30
     *
31
     * @return \Arcanedev\LaravelPolicies\Ability[]|\Illuminate\Support\Collection
32
     */
33
    public function abilities(): Collection;
34
35
    /* -----------------------------------------------------------------
36
     |  Main Methods
37
     | -----------------------------------------------------------------
38
     */
39
40
    /**
41
     * @param  array  $classes
42
     *
43
     * @return \Illuminate\Support\Collection
44
     */
45
    public function parsePolicies(array $classes): Collection;
46
47
    /**
48
     * Parse the class into a policy instance.
49
     *
50
     * @param  string  $class
51
     *
52
     * @return \Arcanedev\LaravelPolicies\Contracts\Policy
53
     */
54
    public function parsePolicy(string $class): Policy;
55
56
    /**
57
     * Register a policy class.
58
     *
59
     * @param  string  $class
60
     *
61
     * @return \Arcanedev\LaravelPolicies\PolicyManager
62
     */
63
    public function registerClass(string $class): self;
64
65
    /**
66
     * Register a policy instance.
67
     *
68
     * @param  \Arcanedev\LaravelPolicies\Contracts\Policy  $policy
69
     *
70
     * @return $this
71
     */
72
    public function register(Policy $policy): self;
73
}
74