Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
n/a
0 / 0
n/a
0 / 0
CRAP
n/a
0 / 0
1<?php
2
3namespace Wikimedia\ParamValidator;
4
5use Psr\Http\Message\UploadedFileInterface;
6use Wikimedia\Message\DataMessageValue;
7
8/**
9 * Interface defining callbacks needed by ParamValidator
10 *
11 * The user of ParamValidator is expected to pass an object implementing this
12 * interface to ParamValidator's constructor.
13 *
14 * All methods in this interface accept an "options array". This is the same `$options`
15 * passed to ParamValidator::getValue(), ParamValidator::validateValue(), and the like
16 * and is intended for communication of non-global state.
17 *
18 * @since 1.34
19 * @unstable
20 */
21interface Callbacks {
22
23    /**
24     * Test if a parameter exists in the request
25     * @param string $name Parameter name
26     * @param array $options Options array
27     * @return bool True if present, false if absent.
28     *  Return false for file upload parameters.
29     */
30    public function hasParam( $name, array $options );
31
32    /**
33     * Fetch a value from the request
34     *
35     * Return `$default` for file-upload parameters.
36     *
37     * @param string $name Parameter name to fetch
38     * @param mixed $default Default value to return if the parameter is unset.
39     * @param array $options Options array
40     * @return string|string[]|mixed A string or string[] if the parameter was found,
41     *  or $default if it was not.
42     */
43    public function getValue( $name, $default, array $options );
44
45    /**
46     * Test if a parameter exists as an upload in the request
47     * @param string $name Parameter name
48     * @param array $options Options array
49     * @return bool True if present, false if absent.
50     */
51    public function hasUpload( $name, array $options );
52
53    /**
54     * Fetch data for a file upload
55     * @param string $name Parameter name of the upload
56     * @param array $options Options array
57     * @return UploadedFileInterface|null Uploaded file, or null if there is no file for $name.
58     */
59    public function getUploadedFile( $name, array $options );
60
61    /**
62     * Record non-fatal conditions.
63     * @param DataMessageValue $message Failure message
64     * @param string $name Parameter name
65     * @param mixed $value Parameter value
66     * @param array $settings Parameter settings array
67     * @param array $options Options array
68     */
69    public function recordCondition(
70        DataMessageValue $message, $name, $value, array $settings, array $options
71    );
72
73    /**
74     * Indicate whether "high limits" should be used.
75     *
76     * Some settings have multiple limits, one for "normal" users and a higher
77     * one for "privileged" users. This is used to determine which class the
78     * current user is in when necessary.
79     *
80     * @param array $options Options array
81     * @return bool Whether the current user is privileged to use high limits
82     */
83    public function useHighLimits( array $options );
84
85}