create-berna-stencil 2.0.9 → 2.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/bin/create.js +2 -1
- package/package.json +1 -1
- package/src/backend/_core/vendor/composer/autoload_static.php +10 -10
- package/src/backend/_core/vendor/composer/installed.json +6 -6
- package/src/backend/_core/vendor/composer/installed.php +2 -2
- package/src/backend/_core/vendor/graham-campbell/result-type/.gitattributes +9 -0
- package/src/backend/_core/vendor/graham-campbell/result-type/.github/CODE_OF_CONDUCT.md +132 -0
- package/src/backend/_core/vendor/graham-campbell/result-type/.github/CONTRIBUTING.md +31 -0
- package/src/backend/_core/vendor/graham-campbell/result-type/.github/FUNDING.yml +2 -0
- package/src/backend/_core/vendor/graham-campbell/result-type/.github/SECURITY.md +14 -0
- package/src/backend/_core/vendor/graham-campbell/result-type/.github/workflows/stale.yml +11 -0
- package/src/backend/_core/vendor/graham-campbell/result-type/.github/workflows/tests.yml +40 -0
- package/src/backend/_core/vendor/graham-campbell/result-type/CHANGELOG.md +53 -0
- package/src/backend/_core/vendor/graham-campbell/result-type/LICENSE +21 -21
- package/src/backend/_core/vendor/graham-campbell/result-type/README.md +42 -0
- package/src/backend/_core/vendor/graham-campbell/result-type/composer.json +33 -33
- package/src/backend/_core/vendor/graham-campbell/result-type/phpunit.xml.dist +13 -0
- package/src/backend/_core/vendor/graham-campbell/result-type/src/Error.php +121 -121
- package/src/backend/_core/vendor/graham-campbell/result-type/src/Result.php +69 -69
- package/src/backend/_core/vendor/graham-campbell/result-type/src/Success.php +120 -120
- package/src/backend/_core/vendor/graham-campbell/result-type/tests/ResultTest.php +95 -0
- package/src/backend/_core/vendor/phpoption/phpoption/.gitattributes +13 -0
- package/src/backend/_core/vendor/phpoption/phpoption/.github/CODE_OF_CONDUCT.md +132 -0
- package/src/backend/_core/vendor/phpoption/phpoption/.github/CONTRIBUTING.md +30 -0
- package/src/backend/_core/vendor/phpoption/phpoption/.github/FUNDING.yml +2 -0
- package/src/backend/_core/vendor/phpoption/phpoption/.github/SECURITY.md +14 -0
- package/src/backend/_core/vendor/phpoption/phpoption/.github/workflows/static.yml +40 -0
- package/src/backend/_core/vendor/phpoption/phpoption/.github/workflows/tests.yml +40 -0
- package/src/backend/_core/vendor/phpoption/phpoption/LICENSE +200 -200
- package/src/backend/_core/vendor/phpoption/phpoption/Makefile +17 -0
- package/src/backend/_core/vendor/phpoption/phpoption/README.md +201 -0
- package/src/backend/_core/vendor/phpoption/phpoption/composer.json +50 -50
- package/src/backend/_core/vendor/phpoption/phpoption/phpstan-baseline.neon +44 -0
- package/src/backend/_core/vendor/phpoption/phpoption/phpstan.neon.dist +7 -0
- package/src/backend/_core/vendor/phpoption/phpoption/phpunit.xml.dist +13 -0
- package/src/backend/_core/vendor/phpoption/phpoption/src/PhpOption/LazyOption.php +175 -175
- package/src/backend/_core/vendor/phpoption/phpoption/src/PhpOption/None.php +136 -136
- package/src/backend/_core/vendor/phpoption/phpoption/src/PhpOption/Option.php +434 -434
- package/src/backend/_core/vendor/phpoption/phpoption/src/PhpOption/Some.php +169 -169
- package/src/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/EnsureTest.php +72 -0
- package/src/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/LazyOptionTest.php +357 -0
- package/src/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/NoneTest.php +153 -0
- package/src/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/OptionTest.php +166 -0
- package/src/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/SomeTest.php +194 -0
- package/src/backend/_core/vendor/phpoption/phpoption/tests/bootstrap.php +8 -0
- package/src/backend/_core/vendor/phpoption/phpoption/vendor-bin/phpstan/composer.json +8 -0
- package/src/backend/_core/vendor/symfony/polyfill-ctype/Ctype.php +232 -232
- package/src/backend/_core/vendor/symfony/polyfill-ctype/LICENSE +19 -19
- package/src/backend/_core/vendor/symfony/polyfill-ctype/README.md +12 -12
- package/src/backend/_core/vendor/symfony/polyfill-ctype/bootstrap.php +50 -50
- package/src/backend/_core/vendor/symfony/polyfill-ctype/bootstrap80.php +46 -46
- package/src/backend/_core/vendor/symfony/polyfill-ctype/composer.json +38 -38
- package/src/backend/_core/vendor/symfony/polyfill-mbstring/LICENSE +19 -19
- package/src/backend/_core/vendor/symfony/polyfill-mbstring/Mbstring.php +1077 -1077
- package/src/backend/_core/vendor/symfony/polyfill-mbstring/README.md +13 -13
- package/src/backend/_core/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php +119 -119
- package/src/backend/_core/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php +1397 -1397
- package/src/backend/_core/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php +5 -5
- package/src/backend/_core/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php +1489 -1489
- package/src/backend/_core/vendor/symfony/polyfill-mbstring/bootstrap.php +171 -171
- package/src/backend/_core/vendor/symfony/polyfill-mbstring/bootstrap80.php +167 -167
- package/src/backend/_core/vendor/symfony/polyfill-mbstring/composer.json +39 -39
- package/src/backend/_core/vendor/symfony/polyfill-php80/LICENSE +19 -19
- package/src/backend/_core/vendor/symfony/polyfill-php80/Php80.php +115 -115
- package/src/backend/_core/vendor/symfony/polyfill-php80/PhpToken.php +106 -106
- package/src/backend/_core/vendor/symfony/polyfill-php80/README.md +25 -25
- package/src/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php +31 -31
- package/src/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/PhpToken.php +16 -16
- package/src/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php +20 -20
- package/src/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php +16 -16
- package/src/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php +16 -16
- package/src/backend/_core/vendor/symfony/polyfill-php80/bootstrap.php +42 -42
- package/src/backend/_core/vendor/symfony/polyfill-php80/composer.json +37 -37
- package/src/backend/_core/vendor/vlucas/phpdotenv/.editorconfig +15 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/.gitattributes +15 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/.github/CODE_OF_CONDUCT.md +132 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/.github/CONTRIBUTING.md +30 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/.github/FUNDING.yml +2 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/.github/SECURITY.md +14 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/.github/workflows/static.yml +40 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/.github/workflows/tests.yml +70 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/LICENSE +30 -30
- package/src/backend/_core/vendor/vlucas/phpdotenv/Makefile +17 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/README.md +370 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/UPGRADING.md +196 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/composer.json +60 -60
- package/src/backend/_core/vendor/vlucas/phpdotenv/phpstan-baseline.neon +157 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/phpstan.neon.dist +7 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/phpunit.xml.dist +13 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Dotenv.php +267 -267
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Exception/ExceptionInterface.php +12 -12
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Exception/InvalidEncodingException.php +12 -12
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Exception/InvalidFileException.php +12 -12
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Exception/InvalidPathException.php +12 -12
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Exception/ValidationException.php +12 -12
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Loader/Loader.php +48 -48
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Loader/LoaderInterface.php +20 -20
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Loader/Resolver.php +65 -65
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Entry.php +59 -59
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/EntryParser.php +299 -299
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Lexer.php +58 -58
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Lines.php +127 -127
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Parser.php +53 -53
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/ParserInterface.php +19 -19
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Value.php +88 -88
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/AdapterInterface.php +15 -15
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ApacheAdapter.php +89 -89
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ArrayAdapter.php +80 -80
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/EnvConstAdapter.php +88 -88
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/GuardedWriter.php +85 -85
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ImmutableWriter.php +110 -110
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/MultiReader.php +48 -48
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/MultiWriter.php +64 -64
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/PutenvAdapter.php +91 -91
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReaderInterface.php +17 -17
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReplacingWriter.php +104 -104
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ServerConstAdapter.php +88 -88
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/WriterInterface.php +27 -27
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/AdapterRepository.php +107 -107
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/RepositoryBuilder.php +272 -272
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/RepositoryInterface.php +51 -51
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/File/Paths.php +44 -44
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/File/Reader.php +81 -81
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/FileStore.php +72 -72
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/StoreBuilder.php +141 -141
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/StoreInterface.php +17 -17
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/StringStore.php +37 -37
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Util/Regex.php +112 -112
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Util/Str.php +108 -108
- package/src/backend/_core/vendor/vlucas/phpdotenv/src/Validator.php +207 -207
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/DotenvTest.php +387 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Loader/LoaderTest.php +86 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/EntryParserTest.php +234 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/LexerTest.php +40 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/LinesTest.php +53 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/ParserTest.php +98 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/ArrayAdapterTest.php +57 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/EnvConstAdapterTest.php +75 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/PutenvAdapterTest.php +52 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/ServerConstAdapterTest.php +75 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/RepositoryTest.php +305 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Store/StoreTest.php +141 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/ValidatorTest.php +479 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/.env +5 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/assertions.env +18 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/booleans.env +33 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/commented.env +15 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/empty.env +1 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/example.env +1 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/exported.env +7 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/immutable.env +1 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/integers.env +17 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/large.env +2 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/multibyte.env +3 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/multiline.env +14 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/multiple.env +4 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/mutable.env +1 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/nested.env +15 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/quoted.env +11 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/specialchars.env +8 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/unicodevarnames.env +2 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/utf8-with-bom-encoding.env +3 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/windows.env +1 -0
- package/src/backend/_core/vendor/vlucas/phpdotenv/vendor-bin/phpstan/composer.json +15 -0
- package/src/backend/config.php +19 -0
- package/src/frontend/data/site.json +43 -43
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
namespace PhpOption\Tests;
|
|
4
|
+
|
|
5
|
+
use PhpOption\None;
|
|
6
|
+
use PhpOption\Option;
|
|
7
|
+
use PhpOption\Some;
|
|
8
|
+
use PHPUnit\Framework\TestCase;
|
|
9
|
+
|
|
10
|
+
class SomeTest extends TestCase
|
|
11
|
+
{
|
|
12
|
+
public function testGet(): void
|
|
13
|
+
{
|
|
14
|
+
$some = new Some('foo');
|
|
15
|
+
self::assertSame('foo', $some->get());
|
|
16
|
+
self::assertSame('foo', $some->getOrElse(null));
|
|
17
|
+
self::assertSame('foo', $some->getOrCall('does_not_exist'));
|
|
18
|
+
self::assertSame('foo', $some->getOrThrow(new \RuntimeException('Not found')));
|
|
19
|
+
self::assertFalse($some->isEmpty());
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
public function testCreate(): void
|
|
23
|
+
{
|
|
24
|
+
$some = Some::create('foo');
|
|
25
|
+
self::assertSame('foo', $some->get());
|
|
26
|
+
self::assertSame('foo', $some->getOrElse(null));
|
|
27
|
+
self::assertSame('foo', $some->getOrCall('does_not_exist'));
|
|
28
|
+
self::assertSame('foo', $some->getOrThrow(new \RuntimeException('Not found')));
|
|
29
|
+
self::assertFalse($some->isEmpty());
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
public function testOrElse(): void
|
|
33
|
+
{
|
|
34
|
+
$some = Some::create('foo');
|
|
35
|
+
self::assertSame($some, $some->orElse(None::create()));
|
|
36
|
+
self::assertSame($some, $some->orElse(Some::create('bar')));
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
public function testifDefined(): void
|
|
40
|
+
{
|
|
41
|
+
$called = false;
|
|
42
|
+
$self = $this;
|
|
43
|
+
$some = new Some('foo');
|
|
44
|
+
$some->ifDefined(function ($v) use (&$called, $self) {
|
|
45
|
+
$called = true;
|
|
46
|
+
$self->assertSame('foo', $v);
|
|
47
|
+
});
|
|
48
|
+
self::assertTrue($called);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
public function testForAll(): void
|
|
52
|
+
{
|
|
53
|
+
$called = false;
|
|
54
|
+
$self = $this;
|
|
55
|
+
$some = new Some('foo');
|
|
56
|
+
self::assertSame($some, $some->forAll(function ($v) use (&$called, $self) {
|
|
57
|
+
$called = true;
|
|
58
|
+
$self->assertSame('foo', $v);
|
|
59
|
+
}));
|
|
60
|
+
self::assertTrue($called);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
public function testMap(): void
|
|
64
|
+
{
|
|
65
|
+
$some = new Some('foo');
|
|
66
|
+
self::assertSame('o', $some->map(function ($v) {
|
|
67
|
+
return substr($v, 1, 1);
|
|
68
|
+
})->get());
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
public function testFlatMap(): void
|
|
72
|
+
{
|
|
73
|
+
$repo = new Repository(['foo']);
|
|
74
|
+
|
|
75
|
+
self::assertSame(['name' => 'foo'], $repo->getLastRegisteredUsername()
|
|
76
|
+
->flatMap([$repo, 'getUser'])
|
|
77
|
+
->getOrCall([$repo, 'getDefaultUser']));
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
public function testFilter(): void
|
|
81
|
+
{
|
|
82
|
+
$some = new Some('foo');
|
|
83
|
+
|
|
84
|
+
self::assertInstanceOf(None::class, $some->filter(function ($v) {
|
|
85
|
+
return 0 === strlen($v);
|
|
86
|
+
}));
|
|
87
|
+
self::assertSame($some, $some->filter(function ($v) {
|
|
88
|
+
return strlen($v) > 0;
|
|
89
|
+
}));
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
public function testFilterNot(): void
|
|
93
|
+
{
|
|
94
|
+
$some = new Some('foo');
|
|
95
|
+
|
|
96
|
+
self::assertInstanceOf(None::class, $some->filterNot(function ($v) {
|
|
97
|
+
return strlen($v) > 0;
|
|
98
|
+
}));
|
|
99
|
+
self::assertSame($some, $some->filterNot(function ($v) {
|
|
100
|
+
return strlen($v) === 0;
|
|
101
|
+
}));
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
public function testSelect(): void
|
|
105
|
+
{
|
|
106
|
+
$some = new Some('foo');
|
|
107
|
+
|
|
108
|
+
self::assertSame($some, $some->select('foo'));
|
|
109
|
+
self::assertInstanceOf(None::class, $some->select('bar'));
|
|
110
|
+
self::assertInstanceOf(None::class, $some->select(true));
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
public function testReject(): void
|
|
114
|
+
{
|
|
115
|
+
$some = new Some('foo');
|
|
116
|
+
|
|
117
|
+
self::assertSame($some, $some->reject(null));
|
|
118
|
+
self::assertSame($some, $some->reject(true));
|
|
119
|
+
self::assertInstanceOf(None::class, $some->reject('foo'));
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
public function testFoldLeftRight(): void
|
|
123
|
+
{
|
|
124
|
+
$some = new Some(5);
|
|
125
|
+
|
|
126
|
+
$testObj = $this;
|
|
127
|
+
self::assertSame(6, $some->foldLeft(1, function ($a, $b) use ($testObj) {
|
|
128
|
+
$testObj->assertSame(1, $a);
|
|
129
|
+
$testObj->assertSame(5, $b);
|
|
130
|
+
|
|
131
|
+
return $a + $b;
|
|
132
|
+
}));
|
|
133
|
+
|
|
134
|
+
self::assertSame(6, $some->foldRight(1, function ($a, $b) use ($testObj) {
|
|
135
|
+
$testObj->assertSame(1, $b);
|
|
136
|
+
$testObj->assertSame(5, $a);
|
|
137
|
+
|
|
138
|
+
return $a + $b;
|
|
139
|
+
}));
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
public function testForeach(): void
|
|
143
|
+
{
|
|
144
|
+
$some = new Some('foo');
|
|
145
|
+
|
|
146
|
+
$called = 0;
|
|
147
|
+
$extractedValue = null;
|
|
148
|
+
foreach ($some as $value) {
|
|
149
|
+
$extractedValue = $value;
|
|
150
|
+
$called++;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
self::assertSame('foo', $extractedValue);
|
|
154
|
+
self::assertSame(1, $called);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// For the interested reader of these tests, we have gone some great lengths
|
|
159
|
+
// to come up with a non-contrived example that might also be used in the
|
|
160
|
+
// real-world, and not only for testing purposes :)
|
|
161
|
+
class Repository
|
|
162
|
+
{
|
|
163
|
+
private $users;
|
|
164
|
+
|
|
165
|
+
public function __construct(array $users = [])
|
|
166
|
+
{
|
|
167
|
+
$this->users = $users;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
// A fast ID lookup, probably cached, sometimes we might not need the entire user.
|
|
171
|
+
public function getLastRegisteredUsername(): Option
|
|
172
|
+
{
|
|
173
|
+
if (empty($this->users)) {
|
|
174
|
+
return None::create();
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
return new Some(end($this->users));
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
// Returns a user object (we will live with an array here).
|
|
181
|
+
public function getUser($name): Option
|
|
182
|
+
{
|
|
183
|
+
if (in_array($name, $this->users, true)) {
|
|
184
|
+
return new Some(['name' => $name]);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
return None::create();
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
public function getDefaultUser(): array
|
|
191
|
+
{
|
|
192
|
+
return ['name' => 'muhuhu'];
|
|
193
|
+
}
|
|
194
|
+
}
|
|
@@ -1,232 +1,232 @@
|
|
|
1
|
-
<?php
|
|
2
|
-
|
|
3
|
-
/*
|
|
4
|
-
* This file is part of the Symfony package.
|
|
5
|
-
*
|
|
6
|
-
* (c) Fabien Potencier <fabien@symfony.com>
|
|
7
|
-
*
|
|
8
|
-
* For the full copyright and license information, please view the LICENSE
|
|
9
|
-
* file that was distributed with this source code.
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
namespace Symfony\Polyfill\Ctype;
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Ctype implementation through regex.
|
|
16
|
-
*
|
|
17
|
-
* @internal
|
|
18
|
-
*
|
|
19
|
-
* @author Gert de Pagter <BackEndTea@gmail.com>
|
|
20
|
-
*/
|
|
21
|
-
final class Ctype
|
|
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 mixed $text
|
|
29
|
-
*
|
|
30
|
-
* @return bool
|
|
31
|
-
*/
|
|
32
|
-
public static function ctype_alnum($text)
|
|
33
|
-
{
|
|
34
|
-
$text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
|
|
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 mixed $text
|
|
45
|
-
*
|
|
46
|
-
* @return bool
|
|
47
|
-
*/
|
|
48
|
-
public static function ctype_alpha($text)
|
|
49
|
-
{
|
|
50
|
-
$text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
|
|
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 mixed $text
|
|
61
|
-
*
|
|
62
|
-
* @return bool
|
|
63
|
-
*/
|
|
64
|
-
public static function ctype_cntrl($text)
|
|
65
|
-
{
|
|
66
|
-
$text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
|
|
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 mixed $text
|
|
77
|
-
*
|
|
78
|
-
* @return bool
|
|
79
|
-
*/
|
|
80
|
-
public static function ctype_digit($text)
|
|
81
|
-
{
|
|
82
|
-
$text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
|
|
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 mixed $text
|
|
93
|
-
*
|
|
94
|
-
* @return bool
|
|
95
|
-
*/
|
|
96
|
-
public static function ctype_graph($text)
|
|
97
|
-
{
|
|
98
|
-
$text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
|
|
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 mixed $text
|
|
109
|
-
*
|
|
110
|
-
* @return bool
|
|
111
|
-
*/
|
|
112
|
-
public static function ctype_lower($text)
|
|
113
|
-
{
|
|
114
|
-
$text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
|
|
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 mixed $text
|
|
125
|
-
*
|
|
126
|
-
* @return bool
|
|
127
|
-
*/
|
|
128
|
-
public static function ctype_print($text)
|
|
129
|
-
{
|
|
130
|
-
$text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
|
|
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 mixed $text
|
|
141
|
-
*
|
|
142
|
-
* @return bool
|
|
143
|
-
*/
|
|
144
|
-
public static function ctype_punct($text)
|
|
145
|
-
{
|
|
146
|
-
$text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
|
|
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 mixed $text
|
|
157
|
-
*
|
|
158
|
-
* @return bool
|
|
159
|
-
*/
|
|
160
|
-
public static function ctype_space($text)
|
|
161
|
-
{
|
|
162
|
-
$text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
|
|
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 mixed $text
|
|
173
|
-
*
|
|
174
|
-
* @return bool
|
|
175
|
-
*/
|
|
176
|
-
public static function ctype_upper($text)
|
|
177
|
-
{
|
|
178
|
-
$text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
|
|
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 mixed $text
|
|
189
|
-
*
|
|
190
|
-
* @return bool
|
|
191
|
-
*/
|
|
192
|
-
public static function ctype_xdigit($text)
|
|
193
|
-
{
|
|
194
|
-
$text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
|
|
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 mixed $int
|
|
208
|
-
* @param string $function
|
|
209
|
-
*
|
|
210
|
-
* @return mixed
|
|
211
|
-
*/
|
|
212
|
-
private static function convert_int_to_char_for_ctype($int, $function)
|
|
213
|
-
{
|
|
214
|
-
if (\PHP_VERSION_ID >= 80100 && !\is_string($int)) {
|
|
215
|
-
@trigger_error($function.'(): Argument of type '.get_debug_type($int).' will be interpreted as string in the future', \E_USER_DEPRECATED);
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
if (!\is_int($int)) {
|
|
219
|
-
return $int;
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
if ($int < -128 || $int > 255) {
|
|
223
|
-
return (string) $int;
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
if ($int < 0) {
|
|
227
|
-
$int += 256;
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
return \chr($int);
|
|
231
|
-
}
|
|
232
|
-
}
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* This file is part of the Symfony package.
|
|
5
|
+
*
|
|
6
|
+
* (c) Fabien Potencier <fabien@symfony.com>
|
|
7
|
+
*
|
|
8
|
+
* For the full copyright and license information, please view the LICENSE
|
|
9
|
+
* file that was distributed with this source code.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
namespace Symfony\Polyfill\Ctype;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Ctype implementation through regex.
|
|
16
|
+
*
|
|
17
|
+
* @internal
|
|
18
|
+
*
|
|
19
|
+
* @author Gert de Pagter <BackEndTea@gmail.com>
|
|
20
|
+
*/
|
|
21
|
+
final class Ctype
|
|
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 mixed $text
|
|
29
|
+
*
|
|
30
|
+
* @return bool
|
|
31
|
+
*/
|
|
32
|
+
public static function ctype_alnum($text)
|
|
33
|
+
{
|
|
34
|
+
$text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
|
|
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 mixed $text
|
|
45
|
+
*
|
|
46
|
+
* @return bool
|
|
47
|
+
*/
|
|
48
|
+
public static function ctype_alpha($text)
|
|
49
|
+
{
|
|
50
|
+
$text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
|
|
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 mixed $text
|
|
61
|
+
*
|
|
62
|
+
* @return bool
|
|
63
|
+
*/
|
|
64
|
+
public static function ctype_cntrl($text)
|
|
65
|
+
{
|
|
66
|
+
$text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
|
|
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 mixed $text
|
|
77
|
+
*
|
|
78
|
+
* @return bool
|
|
79
|
+
*/
|
|
80
|
+
public static function ctype_digit($text)
|
|
81
|
+
{
|
|
82
|
+
$text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
|
|
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 mixed $text
|
|
93
|
+
*
|
|
94
|
+
* @return bool
|
|
95
|
+
*/
|
|
96
|
+
public static function ctype_graph($text)
|
|
97
|
+
{
|
|
98
|
+
$text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
|
|
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 mixed $text
|
|
109
|
+
*
|
|
110
|
+
* @return bool
|
|
111
|
+
*/
|
|
112
|
+
public static function ctype_lower($text)
|
|
113
|
+
{
|
|
114
|
+
$text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
|
|
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 mixed $text
|
|
125
|
+
*
|
|
126
|
+
* @return bool
|
|
127
|
+
*/
|
|
128
|
+
public static function ctype_print($text)
|
|
129
|
+
{
|
|
130
|
+
$text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
|
|
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 mixed $text
|
|
141
|
+
*
|
|
142
|
+
* @return bool
|
|
143
|
+
*/
|
|
144
|
+
public static function ctype_punct($text)
|
|
145
|
+
{
|
|
146
|
+
$text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
|
|
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 mixed $text
|
|
157
|
+
*
|
|
158
|
+
* @return bool
|
|
159
|
+
*/
|
|
160
|
+
public static function ctype_space($text)
|
|
161
|
+
{
|
|
162
|
+
$text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
|
|
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 mixed $text
|
|
173
|
+
*
|
|
174
|
+
* @return bool
|
|
175
|
+
*/
|
|
176
|
+
public static function ctype_upper($text)
|
|
177
|
+
{
|
|
178
|
+
$text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
|
|
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 mixed $text
|
|
189
|
+
*
|
|
190
|
+
* @return bool
|
|
191
|
+
*/
|
|
192
|
+
public static function ctype_xdigit($text)
|
|
193
|
+
{
|
|
194
|
+
$text = self::convert_int_to_char_for_ctype($text, __FUNCTION__);
|
|
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 mixed $int
|
|
208
|
+
* @param string $function
|
|
209
|
+
*
|
|
210
|
+
* @return mixed
|
|
211
|
+
*/
|
|
212
|
+
private static function convert_int_to_char_for_ctype($int, $function)
|
|
213
|
+
{
|
|
214
|
+
if (\PHP_VERSION_ID >= 80100 && !\is_string($int)) {
|
|
215
|
+
@trigger_error($function.'(): Argument of type '.get_debug_type($int).' will be interpreted as string in the future', \E_USER_DEPRECATED);
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
if (!\is_int($int)) {
|
|
219
|
+
return $int;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
if ($int < -128 || $int > 255) {
|
|
223
|
+
return (string) $int;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
if ($int < 0) {
|
|
227
|
+
$int += 256;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
return \chr($int);
|
|
231
|
+
}
|
|
232
|
+
}
|