Completed
Push — develop ( 32764c...cb3cfa )
by
unknown
20:26
created
vendor/psr/container/src/ContainerInterface.php 1 patch
Indentation   +23 added lines, -23 removed lines patch added patch discarded remove patch
@@ -9,28 +9,28 @@
 block discarded – undo
9 9
  */
10 10
 interface ContainerInterface
11 11
 {
12
-    /**
13
-     * Finds an entry of the container by its identifier and returns it.
14
-     *
15
-     * @param string $id Identifier of the entry to look for.
16
-     *
17
-     * @throws NotFoundExceptionInterface  No entry was found for **this** identifier.
18
-     * @throws ContainerExceptionInterface Error while retrieving the entry.
19
-     *
20
-     * @return mixed Entry.
21
-     */
22
-    public function get(string $id);
12
+	/**
13
+	 * Finds an entry of the container by its identifier and returns it.
14
+	 *
15
+	 * @param string $id Identifier of the entry to look for.
16
+	 *
17
+	 * @throws NotFoundExceptionInterface  No entry was found for **this** identifier.
18
+	 * @throws ContainerExceptionInterface Error while retrieving the entry.
19
+	 *
20
+	 * @return mixed Entry.
21
+	 */
22
+	public function get(string $id);
23 23
 
24
-    /**
25
-     * Returns true if the container can return an entry for the given identifier.
26
-     * Returns false otherwise.
27
-     *
28
-     * `has($id)` returning true does not mean that `get($id)` will not throw an exception.
29
-     * It does however mean that `get($id)` will not throw a `NotFoundExceptionInterface`.
30
-     *
31
-     * @param string $id Identifier of the entry to look for.
32
-     *
33
-     * @return bool
34
-     */
35
-    public function has(string $id);
24
+	/**
25
+	 * Returns true if the container can return an entry for the given identifier.
26
+	 * Returns false otherwise.
27
+	 *
28
+	 * `has($id)` returning true does not mean that `get($id)` will not throw an exception.
29
+	 * It does however mean that `get($id)` will not throw a `NotFoundExceptionInterface`.
30
+	 *
31
+	 * @param string $id Identifier of the entry to look for.
32
+	 *
33
+	 * @return bool
34
+	 */
35
+	public function has(string $id);
36 36
 }
Please login to merge, or discard this patch.
vendor/psr/simple-cache/src/CacheInterface.php 1 patch
Indentation   +100 added lines, -100 removed lines patch added patch discarded remove patch
@@ -4,111 +4,111 @@
 block discarded – undo
4 4
 
5 5
 interface CacheInterface
6 6
 {
7
-    /**
8
-     * Fetches a value from the cache.
9
-     *
10
-     * @param string $key     The unique key of this item in the cache.
11
-     * @param mixed  $default Default value to return if the key does not exist.
12
-     *
13
-     * @return mixed The value of the item from the cache, or $default in case of cache miss.
14
-     *
15
-     * @throws \Psr\SimpleCache\InvalidArgumentException
16
-     *   MUST be thrown if the $key string is not a legal value.
17
-     */
18
-    public function get($key, $default = null);
7
+	/**
8
+	 * Fetches a value from the cache.
9
+	 *
10
+	 * @param string $key     The unique key of this item in the cache.
11
+	 * @param mixed  $default Default value to return if the key does not exist.
12
+	 *
13
+	 * @return mixed The value of the item from the cache, or $default in case of cache miss.
14
+	 *
15
+	 * @throws \Psr\SimpleCache\InvalidArgumentException
16
+	 *   MUST be thrown if the $key string is not a legal value.
17
+	 */
18
+	public function get($key, $default = null);
19 19
 
20
-    /**
21
-     * Persists data in the cache, uniquely referenced by a key with an optional expiration TTL time.
22
-     *
23
-     * @param string                 $key   The key of the item to store.
24
-     * @param mixed                  $value The value of the item to store, must be serializable.
25
-     * @param null|int|\DateInterval $ttl   Optional. The TTL value of this item. If no value is sent and
26
-     *                                      the driver supports TTL then the library may set a default value
27
-     *                                      for it or let the driver take care of that.
28
-     *
29
-     * @return bool True on success and false on failure.
30
-     *
31
-     * @throws \Psr\SimpleCache\InvalidArgumentException
32
-     *   MUST be thrown if the $key string is not a legal value.
33
-     */
34
-    public function set($key, $value, $ttl = null);
20
+	/**
21
+	 * Persists data in the cache, uniquely referenced by a key with an optional expiration TTL time.
22
+	 *
23
+	 * @param string                 $key   The key of the item to store.
24
+	 * @param mixed                  $value The value of the item to store, must be serializable.
25
+	 * @param null|int|\DateInterval $ttl   Optional. The TTL value of this item. If no value is sent and
26
+	 *                                      the driver supports TTL then the library may set a default value
27
+	 *                                      for it or let the driver take care of that.
28
+	 *
29
+	 * @return bool True on success and false on failure.
30
+	 *
31
+	 * @throws \Psr\SimpleCache\InvalidArgumentException
32
+	 *   MUST be thrown if the $key string is not a legal value.
33
+	 */
34
+	public function set($key, $value, $ttl = null);
35 35
 
36
-    /**
37
-     * Delete an item from the cache by its unique key.
38
-     *
39
-     * @param string $key The unique cache key of the item to delete.
40
-     *
41
-     * @return bool True if the item was successfully removed. False if there was an error.
42
-     *
43
-     * @throws \Psr\SimpleCache\InvalidArgumentException
44
-     *   MUST be thrown if the $key string is not a legal value.
45
-     */
46
-    public function delete($key);
36
+	/**
37
+	 * Delete an item from the cache by its unique key.
38
+	 *
39
+	 * @param string $key The unique cache key of the item to delete.
40
+	 *
41
+	 * @return bool True if the item was successfully removed. False if there was an error.
42
+	 *
43
+	 * @throws \Psr\SimpleCache\InvalidArgumentException
44
+	 *   MUST be thrown if the $key string is not a legal value.
45
+	 */
46
+	public function delete($key);
47 47
 
48
-    /**
49
-     * Wipes clean the entire cache's keys.
50
-     *
51
-     * @return bool True on success and false on failure.
52
-     */
53
-    public function clear();
48
+	/**
49
+	 * Wipes clean the entire cache's keys.
50
+	 *
51
+	 * @return bool True on success and false on failure.
52
+	 */
53
+	public function clear();
54 54
 
55
-    /**
56
-     * Obtains multiple cache items by their unique keys.
57
-     *
58
-     * @param iterable $keys    A list of keys that can obtained in a single operation.
59
-     * @param mixed    $default Default value to return for keys that do not exist.
60
-     *
61
-     * @return iterable A list of key => value pairs. Cache keys that do not exist or are stale will have $default as value.
62
-     *
63
-     * @throws \Psr\SimpleCache\InvalidArgumentException
64
-     *   MUST be thrown if $keys is neither an array nor a Traversable,
65
-     *   or if any of the $keys are not a legal value.
66
-     */
67
-    public function getMultiple($keys, $default = null);
55
+	/**
56
+	 * Obtains multiple cache items by their unique keys.
57
+	 *
58
+	 * @param iterable $keys    A list of keys that can obtained in a single operation.
59
+	 * @param mixed    $default Default value to return for keys that do not exist.
60
+	 *
61
+	 * @return iterable A list of key => value pairs. Cache keys that do not exist or are stale will have $default as value.
62
+	 *
63
+	 * @throws \Psr\SimpleCache\InvalidArgumentException
64
+	 *   MUST be thrown if $keys is neither an array nor a Traversable,
65
+	 *   or if any of the $keys are not a legal value.
66
+	 */
67
+	public function getMultiple($keys, $default = null);
68 68
 
69
-    /**
70
-     * Persists a set of key => value pairs in the cache, with an optional TTL.
71
-     *
72
-     * @param iterable               $values A list of key => value pairs for a multiple-set operation.
73
-     * @param null|int|\DateInterval $ttl    Optional. The TTL value of this item. If no value is sent and
74
-     *                                       the driver supports TTL then the library may set a default value
75
-     *                                       for it or let the driver take care of that.
76
-     *
77
-     * @return bool True on success and false on failure.
78
-     *
79
-     * @throws \Psr\SimpleCache\InvalidArgumentException
80
-     *   MUST be thrown if $values is neither an array nor a Traversable,
81
-     *   or if any of the $values are not a legal value.
82
-     */
83
-    public function setMultiple($values, $ttl = null);
69
+	/**
70
+	 * Persists a set of key => value pairs in the cache, with an optional TTL.
71
+	 *
72
+	 * @param iterable               $values A list of key => value pairs for a multiple-set operation.
73
+	 * @param null|int|\DateInterval $ttl    Optional. The TTL value of this item. If no value is sent and
74
+	 *                                       the driver supports TTL then the library may set a default value
75
+	 *                                       for it or let the driver take care of that.
76
+	 *
77
+	 * @return bool True on success and false on failure.
78
+	 *
79
+	 * @throws \Psr\SimpleCache\InvalidArgumentException
80
+	 *   MUST be thrown if $values is neither an array nor a Traversable,
81
+	 *   or if any of the $values are not a legal value.
82
+	 */
83
+	public function setMultiple($values, $ttl = null);
84 84
 
85
-    /**
86
-     * Deletes multiple cache items in a single operation.
87
-     *
88
-     * @param iterable $keys A list of string-based keys to be deleted.
89
-     *
90
-     * @return bool True if the items were successfully removed. False if there was an error.
91
-     *
92
-     * @throws \Psr\SimpleCache\InvalidArgumentException
93
-     *   MUST be thrown if $keys is neither an array nor a Traversable,
94
-     *   or if any of the $keys are not a legal value.
95
-     */
96
-    public function deleteMultiple($keys);
85
+	/**
86
+	 * Deletes multiple cache items in a single operation.
87
+	 *
88
+	 * @param iterable $keys A list of string-based keys to be deleted.
89
+	 *
90
+	 * @return bool True if the items were successfully removed. False if there was an error.
91
+	 *
92
+	 * @throws \Psr\SimpleCache\InvalidArgumentException
93
+	 *   MUST be thrown if $keys is neither an array nor a Traversable,
94
+	 *   or if any of the $keys are not a legal value.
95
+	 */
96
+	public function deleteMultiple($keys);
97 97
 
98
-    /**
99
-     * Determines whether an item is present in the cache.
100
-     *
101
-     * NOTE: It is recommended that has() is only to be used for cache warming type purposes
102
-     * and not to be used within your live applications operations for get/set, as this method
103
-     * is subject to a race condition where your has() will return true and immediately after,
104
-     * another script can remove it making the state of your app out of date.
105
-     *
106
-     * @param string $key The cache item key.
107
-     *
108
-     * @return bool
109
-     *
110
-     * @throws \Psr\SimpleCache\InvalidArgumentException
111
-     *   MUST be thrown if the $key string is not a legal value.
112
-     */
113
-    public function has($key);
98
+	/**
99
+	 * Determines whether an item is present in the cache.
100
+	 *
101
+	 * NOTE: It is recommended that has() is only to be used for cache warming type purposes
102
+	 * and not to be used within your live applications operations for get/set, as this method
103
+	 * is subject to a race condition where your has() will return true and immediately after,
104
+	 * another script can remove it making the state of your app out of date.
105
+	 *
106
+	 * @param string $key The cache item key.
107
+	 *
108
+	 * @return bool
109
+	 *
110
+	 * @throws \Psr\SimpleCache\InvalidArgumentException
111
+	 *   MUST be thrown if the $key string is not a legal value.
112
+	 */
113
+	public function has($key);
114 114
 }
Please login to merge, or discard this patch.
vendor/psr/log/Psr/Log/NullLogger.php 1 patch
Indentation   +15 added lines, -15 removed lines patch added patch discarded remove patch
@@ -12,19 +12,19 @@
 block discarded – undo
12 12
  */
13 13
 class NullLogger extends AbstractLogger
14 14
 {
15
-    /**
16
-     * Logs with an arbitrary level.
17
-     *
18
-     * @param mixed  $level
19
-     * @param string $message
20
-     * @param array  $context
21
-     *
22
-     * @return void
23
-     *
24
-     * @throws \Psr\Log\InvalidArgumentException
25
-     */
26
-    public function log($level, $message, array $context = array())
27
-    {
28
-        // noop
29
-    }
15
+	/**
16
+	 * Logs with an arbitrary level.
17
+	 *
18
+	 * @param mixed  $level
19
+	 * @param string $message
20
+	 * @param array  $context
21
+	 *
22
+	 * @return void
23
+	 *
24
+	 * @throws \Psr\Log\InvalidArgumentException
25
+	 */
26
+	public function log($level, $message, array $context = array())
27
+	{
28
+		// noop
29
+	}
30 30
 }
Please login to merge, or discard this patch.
vendor/psr/log/Psr/Log/LoggerTrait.php 1 patch
Indentation   +119 added lines, -119 removed lines patch added patch discarded remove patch
@@ -12,131 +12,131 @@
 block discarded – undo
12 12
  */
13 13
 trait LoggerTrait
14 14
 {
15
-    /**
16
-     * System is unusable.
17
-     *
18
-     * @param string $message
19
-     * @param array  $context
20
-     *
21
-     * @return void
22
-     */
23
-    public function emergency($message, array $context = array())
24
-    {
25
-        $this->log(LogLevel::EMERGENCY, $message, $context);
26
-    }
15
+	/**
16
+	 * System is unusable.
17
+	 *
18
+	 * @param string $message
19
+	 * @param array  $context
20
+	 *
21
+	 * @return void
22
+	 */
23
+	public function emergency($message, array $context = array())
24
+	{
25
+		$this->log(LogLevel::EMERGENCY, $message, $context);
26
+	}
27 27
 
28
-    /**
29
-     * Action must be taken immediately.
30
-     *
31
-     * Example: Entire website down, database unavailable, etc. This should
32
-     * trigger the SMS alerts and wake you up.
33
-     *
34
-     * @param string $message
35
-     * @param array  $context
36
-     *
37
-     * @return void
38
-     */
39
-    public function alert($message, array $context = array())
40
-    {
41
-        $this->log(LogLevel::ALERT, $message, $context);
42
-    }
28
+	/**
29
+	 * Action must be taken immediately.
30
+	 *
31
+	 * Example: Entire website down, database unavailable, etc. This should
32
+	 * trigger the SMS alerts and wake you up.
33
+	 *
34
+	 * @param string $message
35
+	 * @param array  $context
36
+	 *
37
+	 * @return void
38
+	 */
39
+	public function alert($message, array $context = array())
40
+	{
41
+		$this->log(LogLevel::ALERT, $message, $context);
42
+	}
43 43
 
44
-    /**
45
-     * Critical conditions.
46
-     *
47
-     * Example: Application component unavailable, unexpected exception.
48
-     *
49
-     * @param string $message
50
-     * @param array  $context
51
-     *
52
-     * @return void
53
-     */
54
-    public function critical($message, array $context = array())
55
-    {
56
-        $this->log(LogLevel::CRITICAL, $message, $context);
57
-    }
44
+	/**
45
+	 * Critical conditions.
46
+	 *
47
+	 * Example: Application component unavailable, unexpected exception.
48
+	 *
49
+	 * @param string $message
50
+	 * @param array  $context
51
+	 *
52
+	 * @return void
53
+	 */
54
+	public function critical($message, array $context = array())
55
+	{
56
+		$this->log(LogLevel::CRITICAL, $message, $context);
57
+	}
58 58
 
59
-    /**
60
-     * Runtime errors that do not require immediate action but should typically
61
-     * be logged and monitored.
62
-     *
63
-     * @param string $message
64
-     * @param array  $context
65
-     *
66
-     * @return void
67
-     */
68
-    public function error($message, array $context = array())
69
-    {
70
-        $this->log(LogLevel::ERROR, $message, $context);
71
-    }
59
+	/**
60
+	 * Runtime errors that do not require immediate action but should typically
61
+	 * be logged and monitored.
62
+	 *
63
+	 * @param string $message
64
+	 * @param array  $context
65
+	 *
66
+	 * @return void
67
+	 */
68
+	public function error($message, array $context = array())
69
+	{
70
+		$this->log(LogLevel::ERROR, $message, $context);
71
+	}
72 72
 
73
-    /**
74
-     * Exceptional occurrences that are not errors.
75
-     *
76
-     * Example: Use of deprecated APIs, poor use of an API, undesirable things
77
-     * that are not necessarily wrong.
78
-     *
79
-     * @param string $message
80
-     * @param array  $context
81
-     *
82
-     * @return void
83
-     */
84
-    public function warning($message, array $context = array())
85
-    {
86
-        $this->log(LogLevel::WARNING, $message, $context);
87
-    }
73
+	/**
74
+	 * Exceptional occurrences that are not errors.
75
+	 *
76
+	 * Example: Use of deprecated APIs, poor use of an API, undesirable things
77
+	 * that are not necessarily wrong.
78
+	 *
79
+	 * @param string $message
80
+	 * @param array  $context
81
+	 *
82
+	 * @return void
83
+	 */
84
+	public function warning($message, array $context = array())
85
+	{
86
+		$this->log(LogLevel::WARNING, $message, $context);
87
+	}
88 88
 
89
-    /**
90
-     * Normal but significant events.
91
-     *
92
-     * @param string $message
93
-     * @param array  $context
94
-     *
95
-     * @return void
96
-     */
97
-    public function notice($message, array $context = array())
98
-    {
99
-        $this->log(LogLevel::NOTICE, $message, $context);
100
-    }
89
+	/**
90
+	 * Normal but significant events.
91
+	 *
92
+	 * @param string $message
93
+	 * @param array  $context
94
+	 *
95
+	 * @return void
96
+	 */
97
+	public function notice($message, array $context = array())
98
+	{
99
+		$this->log(LogLevel::NOTICE, $message, $context);
100
+	}
101 101
 
102
-    /**
103
-     * Interesting events.
104
-     *
105
-     * Example: User logs in, SQL logs.
106
-     *
107
-     * @param string $message
108
-     * @param array  $context
109
-     *
110
-     * @return void
111
-     */
112
-    public function info($message, array $context = array())
113
-    {
114
-        $this->log(LogLevel::INFO, $message, $context);
115
-    }
102
+	/**
103
+	 * Interesting events.
104
+	 *
105
+	 * Example: User logs in, SQL logs.
106
+	 *
107
+	 * @param string $message
108
+	 * @param array  $context
109
+	 *
110
+	 * @return void
111
+	 */
112
+	public function info($message, array $context = array())
113
+	{
114
+		$this->log(LogLevel::INFO, $message, $context);
115
+	}
116 116
 
117
-    /**
118
-     * Detailed debug information.
119
-     *
120
-     * @param string $message
121
-     * @param array  $context
122
-     *
123
-     * @return void
124
-     */
125
-    public function debug($message, array $context = array())
126
-    {
127
-        $this->log(LogLevel::DEBUG, $message, $context);
128
-    }
117
+	/**
118
+	 * Detailed debug information.
119
+	 *
120
+	 * @param string $message
121
+	 * @param array  $context
122
+	 *
123
+	 * @return void
124
+	 */
125
+	public function debug($message, array $context = array())
126
+	{
127
+		$this->log(LogLevel::DEBUG, $message, $context);
128
+	}
129 129
 
130
-    /**
131
-     * Logs with an arbitrary level.
132
-     *
133
-     * @param mixed  $level
134
-     * @param string $message
135
-     * @param array  $context
136
-     *
137
-     * @return void
138
-     *
139
-     * @throws \Psr\Log\InvalidArgumentException
140
-     */
141
-    abstract public function log($level, $message, array $context = array());
130
+	/**
131
+	 * Logs with an arbitrary level.
132
+	 *
133
+	 * @param mixed  $level
134
+	 * @param string $message
135
+	 * @param array  $context
136
+	 *
137
+	 * @return void
138
+	 *
139
+	 * @throws \Psr\Log\InvalidArgumentException
140
+	 */
141
+	abstract public function log($level, $message, array $context = array());
142 142
 }
Please login to merge, or discard this patch.
vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php 1 patch
Indentation   +121 added lines, -121 removed lines patch added patch discarded remove patch
@@ -14,125 +14,125 @@
 block discarded – undo
14 14
  */
15 15
 abstract class LoggerInterfaceTest extends TestCase
16 16
 {
17
-    /**
18
-     * @return LoggerInterface
19
-     */
20
-    abstract public function getLogger();
21
-
22
-    /**
23
-     * This must return the log messages in order.
24
-     *
25
-     * The simple formatting of the messages is: "<LOG LEVEL> <MESSAGE>".
26
-     *
27
-     * Example ->error('Foo') would yield "error Foo".
28
-     *
29
-     * @return string[]
30
-     */
31
-    abstract public function getLogs();
32
-
33
-    public function testImplements()
34
-    {
35
-        $this->assertInstanceOf('Psr\Log\LoggerInterface', $this->getLogger());
36
-    }
37
-
38
-    /**
39
-     * @dataProvider provideLevelsAndMessages
40
-     */
41
-    public function testLogsAtAllLevels($level, $message)
42
-    {
43
-        $logger = $this->getLogger();
44
-        $logger->{$level}($message, array('user' => 'Bob'));
45
-        $logger->log($level, $message, array('user' => 'Bob'));
46
-
47
-        $expected = array(
48
-            $level.' message of level '.$level.' with context: Bob',
49
-            $level.' message of level '.$level.' with context: Bob',
50
-        );
51
-        $this->assertEquals($expected, $this->getLogs());
52
-    }
53
-
54
-    public function provideLevelsAndMessages()
55
-    {
56
-        return array(
57
-            LogLevel::EMERGENCY => array(LogLevel::EMERGENCY, 'message of level emergency with context: {user}'),
58
-            LogLevel::ALERT => array(LogLevel::ALERT, 'message of level alert with context: {user}'),
59
-            LogLevel::CRITICAL => array(LogLevel::CRITICAL, 'message of level critical with context: {user}'),
60
-            LogLevel::ERROR => array(LogLevel::ERROR, 'message of level error with context: {user}'),
61
-            LogLevel::WARNING => array(LogLevel::WARNING, 'message of level warning with context: {user}'),
62
-            LogLevel::NOTICE => array(LogLevel::NOTICE, 'message of level notice with context: {user}'),
63
-            LogLevel::INFO => array(LogLevel::INFO, 'message of level info with context: {user}'),
64
-            LogLevel::DEBUG => array(LogLevel::DEBUG, 'message of level debug with context: {user}'),
65
-        );
66
-    }
67
-
68
-    /**
69
-     * @expectedException \Psr\Log\InvalidArgumentException
70
-     */
71
-    public function testThrowsOnInvalidLevel()
72
-    {
73
-        $logger = $this->getLogger();
74
-        $logger->log('invalid level', 'Foo');
75
-    }
76
-
77
-    public function testContextReplacement()
78
-    {
79
-        $logger = $this->getLogger();
80
-        $logger->info('{Message {nothing} {user} {foo.bar} a}', array('user' => 'Bob', 'foo.bar' => 'Bar'));
81
-
82
-        $expected = array('info {Message {nothing} Bob Bar a}');
83
-        $this->assertEquals($expected, $this->getLogs());
84
-    }
85
-
86
-    public function testObjectCastToString()
87
-    {
88
-        if (method_exists($this, 'createPartialMock')) {
89
-            $dummy = $this->createPartialMock('Psr\Log\Test\DummyTest', array('__toString'));
90
-        } else {
91
-            $dummy = $this->getMock('Psr\Log\Test\DummyTest', array('__toString'));
92
-        }
93
-        $dummy->expects($this->once())
94
-            ->method('__toString')
95
-            ->will($this->returnValue('DUMMY'));
96
-
97
-        $this->getLogger()->warning($dummy);
98
-
99
-        $expected = array('warning DUMMY');
100
-        $this->assertEquals($expected, $this->getLogs());
101
-    }
102
-
103
-    public function testContextCanContainAnything()
104
-    {
105
-        $closed = fopen('php://memory', 'r');
106
-        fclose($closed);
107
-
108
-        $context = array(
109
-            'bool' => true,
110
-            'null' => null,
111
-            'string' => 'Foo',
112
-            'int' => 0,
113
-            'float' => 0.5,
114
-            'nested' => array('with object' => new DummyTest),
115
-            'object' => new \DateTime,
116
-            'resource' => fopen('php://memory', 'r'),
117
-            'closed' => $closed,
118
-        );
119
-
120
-        $this->getLogger()->warning('Crazy context data', $context);
121
-
122
-        $expected = array('warning Crazy context data');
123
-        $this->assertEquals($expected, $this->getLogs());
124
-    }
125
-
126
-    public function testContextExceptionKeyCanBeExceptionOrOtherValues()
127
-    {
128
-        $logger = $this->getLogger();
129
-        $logger->warning('Random message', array('exception' => 'oops'));
130
-        $logger->critical('Uncaught Exception!', array('exception' => new \LogicException('Fail')));
131
-
132
-        $expected = array(
133
-            'warning Random message',
134
-            'critical Uncaught Exception!'
135
-        );
136
-        $this->assertEquals($expected, $this->getLogs());
137
-    }
17
+	/**
18
+	 * @return LoggerInterface
19
+	 */
20
+	abstract public function getLogger();
21
+
22
+	/**
23
+	 * This must return the log messages in order.
24
+	 *
25
+	 * The simple formatting of the messages is: "<LOG LEVEL> <MESSAGE>".
26
+	 *
27
+	 * Example ->error('Foo') would yield "error Foo".
28
+	 *
29
+	 * @return string[]
30
+	 */
31
+	abstract public function getLogs();
32
+
33
+	public function testImplements()
34
+	{
35
+		$this->assertInstanceOf('Psr\Log\LoggerInterface', $this->getLogger());
36
+	}
37
+
38
+	/**
39
+	 * @dataProvider provideLevelsAndMessages
40
+	 */
41
+	public function testLogsAtAllLevels($level, $message)
42
+	{
43
+		$logger = $this->getLogger();
44
+		$logger->{$level}($message, array('user' => 'Bob'));
45
+		$logger->log($level, $message, array('user' => 'Bob'));
46
+
47
+		$expected = array(
48
+			$level.' message of level '.$level.' with context: Bob',
49
+			$level.' message of level '.$level.' with context: Bob',
50
+		);
51
+		$this->assertEquals($expected, $this->getLogs());
52
+	}
53
+
54
+	public function provideLevelsAndMessages()
55
+	{
56
+		return array(
57
+			LogLevel::EMERGENCY => array(LogLevel::EMERGENCY, 'message of level emergency with context: {user}'),
58
+			LogLevel::ALERT => array(LogLevel::ALERT, 'message of level alert with context: {user}'),
59
+			LogLevel::CRITICAL => array(LogLevel::CRITICAL, 'message of level critical with context: {user}'),
60
+			LogLevel::ERROR => array(LogLevel::ERROR, 'message of level error with context: {user}'),
61
+			LogLevel::WARNING => array(LogLevel::WARNING, 'message of level warning with context: {user}'),
62
+			LogLevel::NOTICE => array(LogLevel::NOTICE, 'message of level notice with context: {user}'),
63
+			LogLevel::INFO => array(LogLevel::INFO, 'message of level info with context: {user}'),
64
+			LogLevel::DEBUG => array(LogLevel::DEBUG, 'message of level debug with context: {user}'),
65
+		);
66
+	}
67
+
68
+	/**
69
+	 * @expectedException \Psr\Log\InvalidArgumentException
70
+	 */
71
+	public function testThrowsOnInvalidLevel()
72
+	{
73
+		$logger = $this->getLogger();
74
+		$logger->log('invalid level', 'Foo');
75
+	}
76
+
77
+	public function testContextReplacement()
78
+	{
79
+		$logger = $this->getLogger();
80
+		$logger->info('{Message {nothing} {user} {foo.bar} a}', array('user' => 'Bob', 'foo.bar' => 'Bar'));
81
+
82
+		$expected = array('info {Message {nothing} Bob Bar a}');
83
+		$this->assertEquals($expected, $this->getLogs());
84
+	}
85
+
86
+	public function testObjectCastToString()
87
+	{
88
+		if (method_exists($this, 'createPartialMock')) {
89
+			$dummy = $this->createPartialMock('Psr\Log\Test\DummyTest', array('__toString'));
90
+		} else {
91
+			$dummy = $this->getMock('Psr\Log\Test\DummyTest', array('__toString'));
92
+		}
93
+		$dummy->expects($this->once())
94
+			->method('__toString')
95
+			->will($this->returnValue('DUMMY'));
96
+
97
+		$this->getLogger()->warning($dummy);
98
+
99
+		$expected = array('warning DUMMY');
100
+		$this->assertEquals($expected, $this->getLogs());
101
+	}
102
+
103
+	public function testContextCanContainAnything()
104
+	{
105
+		$closed = fopen('php://memory', 'r');
106
+		fclose($closed);
107
+
108
+		$context = array(
109
+			'bool' => true,
110
+			'null' => null,
111
+			'string' => 'Foo',
112
+			'int' => 0,
113
+			'float' => 0.5,
114
+			'nested' => array('with object' => new DummyTest),
115
+			'object' => new \DateTime,
116
+			'resource' => fopen('php://memory', 'r'),
117
+			'closed' => $closed,
118
+		);
119
+
120
+		$this->getLogger()->warning('Crazy context data', $context);
121
+
122
+		$expected = array('warning Crazy context data');
123
+		$this->assertEquals($expected, $this->getLogs());
124
+	}
125
+
126
+	public function testContextExceptionKeyCanBeExceptionOrOtherValues()
127
+	{
128
+		$logger = $this->getLogger();
129
+		$logger->warning('Random message', array('exception' => 'oops'));
130
+		$logger->critical('Uncaught Exception!', array('exception' => new \LogicException('Fail')));
131
+
132
+		$expected = array(
133
+			'warning Random message',
134
+			'critical Uncaught Exception!'
135
+		);
136
+		$this->assertEquals($expected, $this->getLogs());
137
+	}
138 138
 }
Please login to merge, or discard this patch.
vendor/psr/log/Psr/Log/LoggerInterface.php 1 patch
Indentation   +95 added lines, -95 removed lines patch added patch discarded remove patch
@@ -19,107 +19,107 @@
 block discarded – undo
19 19
  */
20 20
 interface LoggerInterface
21 21
 {
22
-    /**
23
-     * System is unusable.
24
-     *
25
-     * @param string  $message
26
-     * @param mixed[] $context
27
-     *
28
-     * @return void
29
-     */
30
-    public function emergency($message, array $context = array());
22
+	/**
23
+	 * System is unusable.
24
+	 *
25
+	 * @param string  $message
26
+	 * @param mixed[] $context
27
+	 *
28
+	 * @return void
29
+	 */
30
+	public function emergency($message, array $context = array());
31 31
 
32
-    /**
33
-     * Action must be taken immediately.
34
-     *
35
-     * Example: Entire website down, database unavailable, etc. This should
36
-     * trigger the SMS alerts and wake you up.
37
-     *
38
-     * @param string  $message
39
-     * @param mixed[] $context
40
-     *
41
-     * @return void
42
-     */
43
-    public function alert($message, array $context = array());
32
+	/**
33
+	 * Action must be taken immediately.
34
+	 *
35
+	 * Example: Entire website down, database unavailable, etc. This should
36
+	 * trigger the SMS alerts and wake you up.
37
+	 *
38
+	 * @param string  $message
39
+	 * @param mixed[] $context
40
+	 *
41
+	 * @return void
42
+	 */
43
+	public function alert($message, array $context = array());
44 44
 
45
-    /**
46
-     * Critical conditions.
47
-     *
48
-     * Example: Application component unavailable, unexpected exception.
49
-     *
50
-     * @param string  $message
51
-     * @param mixed[] $context
52
-     *
53
-     * @return void
54
-     */
55
-    public function critical($message, array $context = array());
45
+	/**
46
+	 * Critical conditions.
47
+	 *
48
+	 * Example: Application component unavailable, unexpected exception.
49
+	 *
50
+	 * @param string  $message
51
+	 * @param mixed[] $context
52
+	 *
53
+	 * @return void
54
+	 */
55
+	public function critical($message, array $context = array());
56 56
 
57
-    /**
58
-     * Runtime errors that do not require immediate action but should typically
59
-     * be logged and monitored.
60
-     *
61
-     * @param string  $message
62
-     * @param mixed[] $context
63
-     *
64
-     * @return void
65
-     */
66
-    public function error($message, array $context = array());
57
+	/**
58
+	 * Runtime errors that do not require immediate action but should typically
59
+	 * be logged and monitored.
60
+	 *
61
+	 * @param string  $message
62
+	 * @param mixed[] $context
63
+	 *
64
+	 * @return void
65
+	 */
66
+	public function error($message, array $context = array());
67 67
 
68
-    /**
69
-     * Exceptional occurrences that are not errors.
70
-     *
71
-     * Example: Use of deprecated APIs, poor use of an API, undesirable things
72
-     * that are not necessarily wrong.
73
-     *
74
-     * @param string  $message
75
-     * @param mixed[] $context
76
-     *
77
-     * @return void
78
-     */
79
-    public function warning($message, array $context = array());
68
+	/**
69
+	 * Exceptional occurrences that are not errors.
70
+	 *
71
+	 * Example: Use of deprecated APIs, poor use of an API, undesirable things
72
+	 * that are not necessarily wrong.
73
+	 *
74
+	 * @param string  $message
75
+	 * @param mixed[] $context
76
+	 *
77
+	 * @return void
78
+	 */
79
+	public function warning($message, array $context = array());
80 80
 
81
-    /**
82
-     * Normal but significant events.
83
-     *
84
-     * @param string  $message
85
-     * @param mixed[] $context
86
-     *
87
-     * @return void
88
-     */
89
-    public function notice($message, array $context = array());
81
+	/**
82
+	 * Normal but significant events.
83
+	 *
84
+	 * @param string  $message
85
+	 * @param mixed[] $context
86
+	 *
87
+	 * @return void
88
+	 */
89
+	public function notice($message, array $context = array());
90 90
 
91
-    /**
92
-     * Interesting events.
93
-     *
94
-     * Example: User logs in, SQL logs.
95
-     *
96
-     * @param string  $message
97
-     * @param mixed[] $context
98
-     *
99
-     * @return void
100
-     */
101
-    public function info($message, array $context = array());
91
+	/**
92
+	 * Interesting events.
93
+	 *
94
+	 * Example: User logs in, SQL logs.
95
+	 *
96
+	 * @param string  $message
97
+	 * @param mixed[] $context
98
+	 *
99
+	 * @return void
100
+	 */
101
+	public function info($message, array $context = array());
102 102
 
103
-    /**
104
-     * Detailed debug information.
105
-     *
106
-     * @param string  $message
107
-     * @param mixed[] $context
108
-     *
109
-     * @return void
110
-     */
111
-    public function debug($message, array $context = array());
103
+	/**
104
+	 * Detailed debug information.
105
+	 *
106
+	 * @param string  $message
107
+	 * @param mixed[] $context
108
+	 *
109
+	 * @return void
110
+	 */
111
+	public function debug($message, array $context = array());
112 112
 
113
-    /**
114
-     * Logs with an arbitrary level.
115
-     *
116
-     * @param mixed   $level
117
-     * @param string  $message
118
-     * @param mixed[] $context
119
-     *
120
-     * @return void
121
-     *
122
-     * @throws \Psr\Log\InvalidArgumentException
123
-     */
124
-    public function log($level, $message, array $context = array());
113
+	/**
114
+	 * Logs with an arbitrary level.
115
+	 *
116
+	 * @param mixed   $level
117
+	 * @param string  $message
118
+	 * @param mixed[] $context
119
+	 *
120
+	 * @return void
121
+	 *
122
+	 * @throws \Psr\Log\InvalidArgumentException
123
+	 */
124
+	public function log($level, $message, array $context = array());
125 125
 }
Please login to merge, or discard this patch.
vendor/symfony/polyfill-ctype/bootstrap.php 1 patch
Indentation   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -12,39 +12,39 @@
 block discarded – undo
12 12
 use Symfony\Polyfill\Ctype as p;
13 13
 
14 14
 if (\PHP_VERSION_ID >= 80000) {
15
-    return require __DIR__.'/bootstrap80.php';
15
+	return require __DIR__.'/bootstrap80.php';
16 16
 }
17 17
 
18 18
 if (!function_exists('ctype_alnum')) {
19
-    function ctype_alnum($text) { return p\Ctype::ctype_alnum($text); }
19
+	function ctype_alnum($text) { return p\Ctype::ctype_alnum($text); }
20 20
 }
21 21
 if (!function_exists('ctype_alpha')) {
22
-    function ctype_alpha($text) { return p\Ctype::ctype_alpha($text); }
22
+	function ctype_alpha($text) { return p\Ctype::ctype_alpha($text); }
23 23
 }
24 24
 if (!function_exists('ctype_cntrl')) {
25
-    function ctype_cntrl($text) { return p\Ctype::ctype_cntrl($text); }
25
+	function ctype_cntrl($text) { return p\Ctype::ctype_cntrl($text); }
26 26
 }
27 27
 if (!function_exists('ctype_digit')) {
28
-    function ctype_digit($text) { return p\Ctype::ctype_digit($text); }
28
+	function ctype_digit($text) { return p\Ctype::ctype_digit($text); }
29 29
 }
30 30
 if (!function_exists('ctype_graph')) {
31
-    function ctype_graph($text) { return p\Ctype::ctype_graph($text); }
31
+	function ctype_graph($text) { return p\Ctype::ctype_graph($text); }
32 32
 }
33 33
 if (!function_exists('ctype_lower')) {
34
-    function ctype_lower($text) { return p\Ctype::ctype_lower($text); }
34
+	function ctype_lower($text) { return p\Ctype::ctype_lower($text); }
35 35
 }
36 36
 if (!function_exists('ctype_print')) {
37
-    function ctype_print($text) { return p\Ctype::ctype_print($text); }
37
+	function ctype_print($text) { return p\Ctype::ctype_print($text); }
38 38
 }
39 39
 if (!function_exists('ctype_punct')) {
40
-    function ctype_punct($text) { return p\Ctype::ctype_punct($text); }
40
+	function ctype_punct($text) { return p\Ctype::ctype_punct($text); }
41 41
 }
42 42
 if (!function_exists('ctype_space')) {
43
-    function ctype_space($text) { return p\Ctype::ctype_space($text); }
43
+	function ctype_space($text) { return p\Ctype::ctype_space($text); }
44 44
 }
45 45
 if (!function_exists('ctype_upper')) {
46
-    function ctype_upper($text) { return p\Ctype::ctype_upper($text); }
46
+	function ctype_upper($text) { return p\Ctype::ctype_upper($text); }
47 47
 }
48 48
 if (!function_exists('ctype_xdigit')) {
49
-    function ctype_xdigit($text) { return p\Ctype::ctype_xdigit($text); }
49
+	function ctype_xdigit($text) { return p\Ctype::ctype_xdigit($text); }
50 50
 }
Please login to merge, or discard this patch.
vendor/symfony/polyfill-ctype/bootstrap80.php 1 patch
Indentation   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -12,35 +12,35 @@
 block discarded – undo
12 12
 use Symfony\Polyfill\Ctype as p;
13 13
 
14 14
 if (!function_exists('ctype_alnum')) {
15
-    function ctype_alnum(mixed $text): bool { return p\Ctype::ctype_alnum($text); }
15
+	function ctype_alnum(mixed $text): bool { return p\Ctype::ctype_alnum($text); }
16 16
 }
17 17
 if (!function_exists('ctype_alpha')) {
18
-    function ctype_alpha(mixed $text): bool { return p\Ctype::ctype_alpha($text); }
18
+	function ctype_alpha(mixed $text): bool { return p\Ctype::ctype_alpha($text); }
19 19
 }
20 20
 if (!function_exists('ctype_cntrl')) {
21
-    function ctype_cntrl(mixed $text): bool { return p\Ctype::ctype_cntrl($text); }
21
+	function ctype_cntrl(mixed $text): bool { return p\Ctype::ctype_cntrl($text); }
22 22
 }
23 23
 if (!function_exists('ctype_digit')) {
24
-    function ctype_digit(mixed $text): bool { return p\Ctype::ctype_digit($text); }
24
+	function ctype_digit(mixed $text): bool { return p\Ctype::ctype_digit($text); }
25 25
 }
26 26
 if (!function_exists('ctype_graph')) {
27
-    function ctype_graph(mixed $text): bool { return p\Ctype::ctype_graph($text); }
27
+	function ctype_graph(mixed $text): bool { return p\Ctype::ctype_graph($text); }
28 28
 }
29 29
 if (!function_exists('ctype_lower')) {
30
-    function ctype_lower(mixed $text): bool { return p\Ctype::ctype_lower($text); }
30
+	function ctype_lower(mixed $text): bool { return p\Ctype::ctype_lower($text); }
31 31
 }
32 32
 if (!function_exists('ctype_print')) {
33
-    function ctype_print(mixed $text): bool { return p\Ctype::ctype_print($text); }
33
+	function ctype_print(mixed $text): bool { return p\Ctype::ctype_print($text); }
34 34
 }
35 35
 if (!function_exists('ctype_punct')) {
36
-    function ctype_punct(mixed $text): bool { return p\Ctype::ctype_punct($text); }
36
+	function ctype_punct(mixed $text): bool { return p\Ctype::ctype_punct($text); }
37 37
 }
38 38
 if (!function_exists('ctype_space')) {
39
-    function ctype_space(mixed $text): bool { return p\Ctype::ctype_space($text); }
39
+	function ctype_space(mixed $text): bool { return p\Ctype::ctype_space($text); }
40 40
 }
41 41
 if (!function_exists('ctype_upper')) {
42
-    function ctype_upper(mixed $text): bool { return p\Ctype::ctype_upper($text); }
42
+	function ctype_upper(mixed $text): bool { return p\Ctype::ctype_upper($text); }
43 43
 }
44 44
 if (!function_exists('ctype_xdigit')) {
45
-    function ctype_xdigit(mixed $text): bool { return p\Ctype::ctype_xdigit($text); }
45
+	function ctype_xdigit(mixed $text): bool { return p\Ctype::ctype_xdigit($text); }
46 46
 }
Please login to merge, or discard this patch.
vendor/symfony/polyfill-ctype/Ctype.php 1 patch
Indentation   +204 added lines, -204 removed lines patch added patch discarded remove patch
@@ -20,208 +20,208 @@
 block discarded – undo
20 20
  */
21 21
 final class Ctype
22 22
 {
23
-    /**
24
-     * Returns TRUE if every character in text is either a letter or a digit, FALSE otherwise.
25
-     *
26
-     * @see https://php.net/ctype-alnum
27
-     *
28
-     * @param string|int $text
29
-     *
30
-     * @return bool
31
-     */
32
-    public static function ctype_alnum($text)
33
-    {
34
-        $text = self::convert_int_to_char_for_ctype($text);
35
-
36
-        return \is_string($text) && '' !== $text && !preg_match('/[^A-Za-z0-9]/', $text);
37
-    }
38
-
39
-    /**
40
-     * Returns TRUE if every character in text is a letter, FALSE otherwise.
41
-     *
42
-     * @see https://php.net/ctype-alpha
43
-     *
44
-     * @param string|int $text
45
-     *
46
-     * @return bool
47
-     */
48
-    public static function ctype_alpha($text)
49
-    {
50
-        $text = self::convert_int_to_char_for_ctype($text);
51
-
52
-        return \is_string($text) && '' !== $text && !preg_match('/[^A-Za-z]/', $text);
53
-    }
54
-
55
-    /**
56
-     * Returns TRUE if every character in text is a control character from the current locale, FALSE otherwise.
57
-     *
58
-     * @see https://php.net/ctype-cntrl
59
-     *
60
-     * @param string|int $text
61
-     *
62
-     * @return bool
63
-     */
64
-    public static function ctype_cntrl($text)
65
-    {
66
-        $text = self::convert_int_to_char_for_ctype($text);
67
-
68
-        return \is_string($text) && '' !== $text && !preg_match('/[^\x00-\x1f\x7f]/', $text);
69
-    }
70
-
71
-    /**
72
-     * Returns TRUE if every character in the string text is a decimal digit, FALSE otherwise.
73
-     *
74
-     * @see https://php.net/ctype-digit
75
-     *
76
-     * @param string|int $text
77
-     *
78
-     * @return bool
79
-     */
80
-    public static function ctype_digit($text)
81
-    {
82
-        $text = self::convert_int_to_char_for_ctype($text);
83
-
84
-        return \is_string($text) && '' !== $text && !preg_match('/[^0-9]/', $text);
85
-    }
86
-
87
-    /**
88
-     * Returns TRUE if every character in text is printable and actually creates visible output (no white space), FALSE otherwise.
89
-     *
90
-     * @see https://php.net/ctype-graph
91
-     *
92
-     * @param string|int $text
93
-     *
94
-     * @return bool
95
-     */
96
-    public static function ctype_graph($text)
97
-    {
98
-        $text = self::convert_int_to_char_for_ctype($text);
99
-
100
-        return \is_string($text) && '' !== $text && !preg_match('/[^!-~]/', $text);
101
-    }
102
-
103
-    /**
104
-     * Returns TRUE if every character in text is a lowercase letter.
105
-     *
106
-     * @see https://php.net/ctype-lower
107
-     *
108
-     * @param string|int $text
109
-     *
110
-     * @return bool
111
-     */
112
-    public static function ctype_lower($text)
113
-    {
114
-        $text = self::convert_int_to_char_for_ctype($text);
115
-
116
-        return \is_string($text) && '' !== $text && !preg_match('/[^a-z]/', $text);
117
-    }
118
-
119
-    /**
120
-     * Returns TRUE if every character in text will actually create output (including blanks). Returns FALSE if text contains control characters or characters that do not have any output or control function at all.
121
-     *
122
-     * @see https://php.net/ctype-print
123
-     *
124
-     * @param string|int $text
125
-     *
126
-     * @return bool
127
-     */
128
-    public static function ctype_print($text)
129
-    {
130
-        $text = self::convert_int_to_char_for_ctype($text);
131
-
132
-        return \is_string($text) && '' !== $text && !preg_match('/[^ -~]/', $text);
133
-    }
134
-
135
-    /**
136
-     * Returns TRUE if every character in text is printable, but neither letter, digit or blank, FALSE otherwise.
137
-     *
138
-     * @see https://php.net/ctype-punct
139
-     *
140
-     * @param string|int $text
141
-     *
142
-     * @return bool
143
-     */
144
-    public static function ctype_punct($text)
145
-    {
146
-        $text = self::convert_int_to_char_for_ctype($text);
147
-
148
-        return \is_string($text) && '' !== $text && !preg_match('/[^!-\/\:-@\[-`\{-~]/', $text);
149
-    }
150
-
151
-    /**
152
-     * Returns TRUE if every character in text creates some sort of white space, FALSE otherwise. Besides the blank character this also includes tab, vertical tab, line feed, carriage return and form feed characters.
153
-     *
154
-     * @see https://php.net/ctype-space
155
-     *
156
-     * @param string|int $text
157
-     *
158
-     * @return bool
159
-     */
160
-    public static function ctype_space($text)
161
-    {
162
-        $text = self::convert_int_to_char_for_ctype($text);
163
-
164
-        return \is_string($text) && '' !== $text && !preg_match('/[^\s]/', $text);
165
-    }
166
-
167
-    /**
168
-     * Returns TRUE if every character in text is an uppercase letter.
169
-     *
170
-     * @see https://php.net/ctype-upper
171
-     *
172
-     * @param string|int $text
173
-     *
174
-     * @return bool
175
-     */
176
-    public static function ctype_upper($text)
177
-    {
178
-        $text = self::convert_int_to_char_for_ctype($text);
179
-
180
-        return \is_string($text) && '' !== $text && !preg_match('/[^A-Z]/', $text);
181
-    }
182
-
183
-    /**
184
-     * Returns TRUE if every character in text is a hexadecimal 'digit', that is a decimal digit or a character from [A-Fa-f] , FALSE otherwise.
185
-     *
186
-     * @see https://php.net/ctype-xdigit
187
-     *
188
-     * @param string|int $text
189
-     *
190
-     * @return bool
191
-     */
192
-    public static function ctype_xdigit($text)
193
-    {
194
-        $text = self::convert_int_to_char_for_ctype($text);
195
-
196
-        return \is_string($text) && '' !== $text && !preg_match('/[^A-Fa-f0-9]/', $text);
197
-    }
198
-
199
-    /**
200
-     * Converts integers to their char versions according to normal ctype behaviour, if needed.
201
-     *
202
-     * If an integer between -128 and 255 inclusive is provided,
203
-     * it is interpreted as the ASCII value of a single character
204
-     * (negative values have 256 added in order to allow characters in the Extended ASCII range).
205
-     * Any other integer is interpreted as a string containing the decimal digits of the integer.
206
-     *
207
-     * @param string|int $int
208
-     *
209
-     * @return mixed
210
-     */
211
-    private static function convert_int_to_char_for_ctype($int)
212
-    {
213
-        if (!\is_int($int)) {
214
-            return $int;
215
-        }
216
-
217
-        if ($int < -128 || $int > 255) {
218
-            return (string) $int;
219
-        }
220
-
221
-        if ($int < 0) {
222
-            $int += 256;
223
-        }
224
-
225
-        return \chr($int);
226
-    }
23
+	/**
24
+	 * Returns TRUE if every character in text is either a letter or a digit, FALSE otherwise.
25
+	 *
26
+	 * @see https://php.net/ctype-alnum
27
+	 *
28
+	 * @param string|int $text
29
+	 *
30
+	 * @return bool
31
+	 */
32
+	public static function ctype_alnum($text)
33
+	{
34
+		$text = self::convert_int_to_char_for_ctype($text);
35
+
36
+		return \is_string($text) && '' !== $text && !preg_match('/[^A-Za-z0-9]/', $text);
37
+	}
38
+
39
+	/**
40
+	 * Returns TRUE if every character in text is a letter, FALSE otherwise.
41
+	 *
42
+	 * @see https://php.net/ctype-alpha
43
+	 *
44
+	 * @param string|int $text
45
+	 *
46
+	 * @return bool
47
+	 */
48
+	public static function ctype_alpha($text)
49
+	{
50
+		$text = self::convert_int_to_char_for_ctype($text);
51
+
52
+		return \is_string($text) && '' !== $text && !preg_match('/[^A-Za-z]/', $text);
53
+	}
54
+
55
+	/**
56
+	 * Returns TRUE if every character in text is a control character from the current locale, FALSE otherwise.
57
+	 *
58
+	 * @see https://php.net/ctype-cntrl
59
+	 *
60
+	 * @param string|int $text
61
+	 *
62
+	 * @return bool
63
+	 */
64
+	public static function ctype_cntrl($text)
65
+	{
66
+		$text = self::convert_int_to_char_for_ctype($text);
67
+
68
+		return \is_string($text) && '' !== $text && !preg_match('/[^\x00-\x1f\x7f]/', $text);
69
+	}
70
+
71
+	/**
72
+	 * Returns TRUE if every character in the string text is a decimal digit, FALSE otherwise.
73
+	 *
74
+	 * @see https://php.net/ctype-digit
75
+	 *
76
+	 * @param string|int $text
77
+	 *
78
+	 * @return bool
79
+	 */
80
+	public static function ctype_digit($text)
81
+	{
82
+		$text = self::convert_int_to_char_for_ctype($text);
83
+
84
+		return \is_string($text) && '' !== $text && !preg_match('/[^0-9]/', $text);
85
+	}
86
+
87
+	/**
88
+	 * Returns TRUE if every character in text is printable and actually creates visible output (no white space), FALSE otherwise.
89
+	 *
90
+	 * @see https://php.net/ctype-graph
91
+	 *
92
+	 * @param string|int $text
93
+	 *
94
+	 * @return bool
95
+	 */
96
+	public static function ctype_graph($text)
97
+	{
98
+		$text = self::convert_int_to_char_for_ctype($text);
99
+
100
+		return \is_string($text) && '' !== $text && !preg_match('/[^!-~]/', $text);
101
+	}
102
+
103
+	/**
104
+	 * Returns TRUE if every character in text is a lowercase letter.
105
+	 *
106
+	 * @see https://php.net/ctype-lower
107
+	 *
108
+	 * @param string|int $text
109
+	 *
110
+	 * @return bool
111
+	 */
112
+	public static function ctype_lower($text)
113
+	{
114
+		$text = self::convert_int_to_char_for_ctype($text);
115
+
116
+		return \is_string($text) && '' !== $text && !preg_match('/[^a-z]/', $text);
117
+	}
118
+
119
+	/**
120
+	 * Returns TRUE if every character in text will actually create output (including blanks). Returns FALSE if text contains control characters or characters that do not have any output or control function at all.
121
+	 *
122
+	 * @see https://php.net/ctype-print
123
+	 *
124
+	 * @param string|int $text
125
+	 *
126
+	 * @return bool
127
+	 */
128
+	public static function ctype_print($text)
129
+	{
130
+		$text = self::convert_int_to_char_for_ctype($text);
131
+
132
+		return \is_string($text) && '' !== $text && !preg_match('/[^ -~]/', $text);
133
+	}
134
+
135
+	/**
136
+	 * Returns TRUE if every character in text is printable, but neither letter, digit or blank, FALSE otherwise.
137
+	 *
138
+	 * @see https://php.net/ctype-punct
139
+	 *
140
+	 * @param string|int $text
141
+	 *
142
+	 * @return bool
143
+	 */
144
+	public static function ctype_punct($text)
145
+	{
146
+		$text = self::convert_int_to_char_for_ctype($text);
147
+
148
+		return \is_string($text) && '' !== $text && !preg_match('/[^!-\/\:-@\[-`\{-~]/', $text);
149
+	}
150
+
151
+	/**
152
+	 * Returns TRUE if every character in text creates some sort of white space, FALSE otherwise. Besides the blank character this also includes tab, vertical tab, line feed, carriage return and form feed characters.
153
+	 *
154
+	 * @see https://php.net/ctype-space
155
+	 *
156
+	 * @param string|int $text
157
+	 *
158
+	 * @return bool
159
+	 */
160
+	public static function ctype_space($text)
161
+	{
162
+		$text = self::convert_int_to_char_for_ctype($text);
163
+
164
+		return \is_string($text) && '' !== $text && !preg_match('/[^\s]/', $text);
165
+	}
166
+
167
+	/**
168
+	 * Returns TRUE if every character in text is an uppercase letter.
169
+	 *
170
+	 * @see https://php.net/ctype-upper
171
+	 *
172
+	 * @param string|int $text
173
+	 *
174
+	 * @return bool
175
+	 */
176
+	public static function ctype_upper($text)
177
+	{
178
+		$text = self::convert_int_to_char_for_ctype($text);
179
+
180
+		return \is_string($text) && '' !== $text && !preg_match('/[^A-Z]/', $text);
181
+	}
182
+
183
+	/**
184
+	 * Returns TRUE if every character in text is a hexadecimal 'digit', that is a decimal digit or a character from [A-Fa-f] , FALSE otherwise.
185
+	 *
186
+	 * @see https://php.net/ctype-xdigit
187
+	 *
188
+	 * @param string|int $text
189
+	 *
190
+	 * @return bool
191
+	 */
192
+	public static function ctype_xdigit($text)
193
+	{
194
+		$text = self::convert_int_to_char_for_ctype($text);
195
+
196
+		return \is_string($text) && '' !== $text && !preg_match('/[^A-Fa-f0-9]/', $text);
197
+	}
198
+
199
+	/**
200
+	 * Converts integers to their char versions according to normal ctype behaviour, if needed.
201
+	 *
202
+	 * If an integer between -128 and 255 inclusive is provided,
203
+	 * it is interpreted as the ASCII value of a single character
204
+	 * (negative values have 256 added in order to allow characters in the Extended ASCII range).
205
+	 * Any other integer is interpreted as a string containing the decimal digits of the integer.
206
+	 *
207
+	 * @param string|int $int
208
+	 *
209
+	 * @return mixed
210
+	 */
211
+	private static function convert_int_to_char_for_ctype($int)
212
+	{
213
+		if (!\is_int($int)) {
214
+			return $int;
215
+		}
216
+
217
+		if ($int < -128 || $int > 255) {
218
+			return (string) $int;
219
+		}
220
+
221
+		if ($int < 0) {
222
+			$int += 256;
223
+		}
224
+
225
+		return \chr($int);
226
+	}
227 227
 }
Please login to merge, or discard this patch.