Completed
Push — master ( 27322f...ead5e5 )
by Yann
02:16
created

TokenManagerInterface

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 44
c 0
b 0
f 0

5 Methods

Rating   Name   Duplication   Size   Complexity  
get() 0 1 ?
create() 0 1 ?
setUsed() 0 1 ?
consume() 0 1 ?
getUser() 0 1 ?
1
<?php
2
3
namespace Yokai\SecurityTokenBundle\Manager;
4
5
use DateTime;
6
use Yokai\SecurityTokenBundle\Entity\Token;
7
use Yokai\SecurityTokenBundle\Exception\TokenExpiredException;
8
use Yokai\SecurityTokenBundle\Exception\TokenNotFoundException;
9
use Yokai\SecurityTokenBundle\Exception\TokenUsedException;
10
11
/**
12
 * @author Yann Eugoné <[email protected]>
13
 */
14
interface TokenManagerInterface
15
{
16
    /**
17
     * @param string $purpose
18
     * @param string $value
19
     *
20
     * @return Token
21
     *
22
     * @throws TokenNotFoundException if the token cannot be found
23
     * @throws TokenExpiredException if the token is expired
24
     * @throws TokenUsedException if the token is used
25
     */
26
    public function get($purpose, $value);
27
28
    /**
29
     * @param string $purpose
30
     * @param mixed  $user
31
     * @param array  $payload
32
     *
33
     * @return Token
34
     */
35
    public function create($purpose, $user, array $payload = []);
36
37
    /**
38
     * @param Token         $token
39
     * @param DateTime|null $at
40
     *
41
     * @deprecated since version 2.2 and will be removed in 3.0
42
     */
43
    public function setUsed(Token $token, DateTime $at = null);
0 ignored issues
show
Documentation introduced by
For interfaces and abstract methods it is generally a good practice to add a @return annotation even if it is just @return void or @return null, so that implementors know what to do in the overridden method.

For interface and abstract methods, it is impossible to infer the return type from the immediate code. In these cases, it is generally advisible to explicitly annotate these methods with a @return doc comment to communicate to implementors of these methods what they are expected to return.

Loading history...
Comprehensibility introduced by
Avoid variables with short names like $at. Configured minimum length is 3.

Short variable names may make your code harder to understand. Variable names should be self-descriptive. This check looks for variable names who are shorter than a configured minimum.

Loading history...
44
45
    /**
46
     * @param Token         $token
47
     * @param DateTime|null $at
48
     */
49
    public function consume(Token $token, DateTime $at = null);
0 ignored issues
show
Documentation introduced by
For interfaces and abstract methods it is generally a good practice to add a @return annotation even if it is just @return void or @return null, so that implementors know what to do in the overridden method.

For interface and abstract methods, it is impossible to infer the return type from the immediate code. In these cases, it is generally advisible to explicitly annotate these methods with a @return doc comment to communicate to implementors of these methods what they are expected to return.

Loading history...
Comprehensibility introduced by
Avoid variables with short names like $at. Configured minimum length is 3.

Short variable names may make your code harder to understand. Variable names should be self-descriptive. This check looks for variable names who are shorter than a configured minimum.

Loading history...
50
51
    /**
52
     * @param Token $token
53
     *
54
     * @return mixed
55
     */
56
    public function getUser(Token $token);
57
}
58