create-berna-stencil 2.0.14 → 2.1.0

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.
Files changed (175) hide show
  1. package/README.md +1 -1
  2. package/bin/create.js +1 -1
  3. package/docs/Creating pages.md +20 -0
  4. package/package.json +63 -63
  5. package/src/backend/_core/index.php +10 -1
  6. package/src/backend/_core/init.php +4 -3
  7. package/src/backend/_core/modules/RateLimiter.php +31 -0
  8. package/src/backend/_core/vendor/composer/autoload_static.php +10 -10
  9. package/src/backend/_core/vendor/composer/installed.json +6 -6
  10. package/src/backend/_core/vendor/composer/installed.php +2 -2
  11. package/src/backend/_core/vendor/graham-campbell/result-type/.gitattributes +9 -0
  12. package/src/backend/_core/vendor/graham-campbell/result-type/.github/CODE_OF_CONDUCT.md +132 -0
  13. package/src/backend/_core/vendor/graham-campbell/result-type/.github/CONTRIBUTING.md +31 -0
  14. package/src/backend/_core/vendor/graham-campbell/result-type/.github/FUNDING.yml +2 -0
  15. package/src/backend/_core/vendor/graham-campbell/result-type/.github/SECURITY.md +14 -0
  16. package/src/backend/_core/vendor/graham-campbell/result-type/.github/workflows/stale.yml +11 -0
  17. package/src/backend/_core/vendor/graham-campbell/result-type/.github/workflows/tests.yml +40 -0
  18. package/src/backend/_core/vendor/graham-campbell/result-type/CHANGELOG.md +53 -0
  19. package/src/backend/_core/vendor/graham-campbell/result-type/LICENSE +21 -21
  20. package/src/backend/_core/vendor/graham-campbell/result-type/README.md +42 -0
  21. package/src/backend/_core/vendor/graham-campbell/result-type/composer.json +33 -33
  22. package/src/backend/_core/vendor/graham-campbell/result-type/phpunit.xml.dist +13 -0
  23. package/src/backend/_core/vendor/graham-campbell/result-type/src/Error.php +121 -121
  24. package/src/backend/_core/vendor/graham-campbell/result-type/src/Result.php +69 -69
  25. package/src/backend/_core/vendor/graham-campbell/result-type/src/Success.php +120 -120
  26. package/src/backend/_core/vendor/graham-campbell/result-type/tests/ResultTest.php +95 -0
  27. package/src/backend/_core/vendor/phpoption/phpoption/.gitattributes +13 -0
  28. package/src/backend/_core/vendor/phpoption/phpoption/.github/CODE_OF_CONDUCT.md +132 -0
  29. package/src/backend/_core/vendor/phpoption/phpoption/.github/CONTRIBUTING.md +30 -0
  30. package/src/backend/_core/vendor/phpoption/phpoption/.github/FUNDING.yml +2 -0
  31. package/src/backend/_core/vendor/phpoption/phpoption/.github/SECURITY.md +14 -0
  32. package/src/backend/_core/vendor/phpoption/phpoption/.github/workflows/static.yml +40 -0
  33. package/src/backend/_core/vendor/phpoption/phpoption/.github/workflows/tests.yml +40 -0
  34. package/src/backend/_core/vendor/phpoption/phpoption/LICENSE +200 -200
  35. package/src/backend/_core/vendor/phpoption/phpoption/Makefile +17 -0
  36. package/src/backend/_core/vendor/phpoption/phpoption/README.md +201 -0
  37. package/src/backend/_core/vendor/phpoption/phpoption/composer.json +50 -50
  38. package/src/backend/_core/vendor/phpoption/phpoption/phpstan-baseline.neon +44 -0
  39. package/src/backend/_core/vendor/phpoption/phpoption/phpstan.neon.dist +7 -0
  40. package/src/backend/_core/vendor/phpoption/phpoption/phpunit.xml.dist +13 -0
  41. package/src/backend/_core/vendor/phpoption/phpoption/src/PhpOption/LazyOption.php +175 -175
  42. package/src/backend/_core/vendor/phpoption/phpoption/src/PhpOption/None.php +136 -136
  43. package/src/backend/_core/vendor/phpoption/phpoption/src/PhpOption/Option.php +434 -434
  44. package/src/backend/_core/vendor/phpoption/phpoption/src/PhpOption/Some.php +169 -169
  45. package/src/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/EnsureTest.php +72 -0
  46. package/src/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/LazyOptionTest.php +357 -0
  47. package/src/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/NoneTest.php +153 -0
  48. package/src/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/OptionTest.php +166 -0
  49. package/src/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/SomeTest.php +194 -0
  50. package/src/backend/_core/vendor/phpoption/phpoption/tests/bootstrap.php +8 -0
  51. package/src/backend/_core/vendor/phpoption/phpoption/vendor-bin/phpstan/composer.json +8 -0
  52. package/src/backend/_core/vendor/symfony/polyfill-ctype/Ctype.php +232 -232
  53. package/src/backend/_core/vendor/symfony/polyfill-ctype/LICENSE +19 -19
  54. package/src/backend/_core/vendor/symfony/polyfill-ctype/README.md +12 -12
  55. package/src/backend/_core/vendor/symfony/polyfill-ctype/bootstrap.php +50 -50
  56. package/src/backend/_core/vendor/symfony/polyfill-ctype/bootstrap80.php +46 -46
  57. package/src/backend/_core/vendor/symfony/polyfill-ctype/composer.json +38 -38
  58. package/src/backend/_core/vendor/symfony/polyfill-mbstring/LICENSE +19 -19
  59. package/src/backend/_core/vendor/symfony/polyfill-mbstring/Mbstring.php +1077 -1077
  60. package/src/backend/_core/vendor/symfony/polyfill-mbstring/README.md +13 -13
  61. package/src/backend/_core/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php +119 -119
  62. package/src/backend/_core/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php +1397 -1397
  63. package/src/backend/_core/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php +5 -5
  64. package/src/backend/_core/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php +1489 -1489
  65. package/src/backend/_core/vendor/symfony/polyfill-mbstring/bootstrap.php +171 -171
  66. package/src/backend/_core/vendor/symfony/polyfill-mbstring/bootstrap80.php +167 -167
  67. package/src/backend/_core/vendor/symfony/polyfill-mbstring/composer.json +39 -39
  68. package/src/backend/_core/vendor/symfony/polyfill-php80/LICENSE +19 -19
  69. package/src/backend/_core/vendor/symfony/polyfill-php80/Php80.php +115 -115
  70. package/src/backend/_core/vendor/symfony/polyfill-php80/PhpToken.php +106 -106
  71. package/src/backend/_core/vendor/symfony/polyfill-php80/README.md +25 -25
  72. package/src/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php +31 -31
  73. package/src/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/PhpToken.php +16 -16
  74. package/src/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php +20 -20
  75. package/src/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php +16 -16
  76. package/src/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php +16 -16
  77. package/src/backend/_core/vendor/symfony/polyfill-php80/bootstrap.php +42 -42
  78. package/src/backend/_core/vendor/symfony/polyfill-php80/composer.json +37 -37
  79. package/src/backend/_core/vendor/vlucas/phpdotenv/.editorconfig +15 -0
  80. package/src/backend/_core/vendor/vlucas/phpdotenv/.gitattributes +15 -0
  81. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/CODE_OF_CONDUCT.md +132 -0
  82. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/CONTRIBUTING.md +30 -0
  83. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/FUNDING.yml +2 -0
  84. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/SECURITY.md +14 -0
  85. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/workflows/static.yml +40 -0
  86. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/workflows/tests.yml +70 -0
  87. package/src/backend/_core/vendor/vlucas/phpdotenv/LICENSE +30 -30
  88. package/src/backend/_core/vendor/vlucas/phpdotenv/Makefile +17 -0
  89. package/src/backend/_core/vendor/vlucas/phpdotenv/README.md +370 -0
  90. package/src/backend/_core/vendor/vlucas/phpdotenv/UPGRADING.md +196 -0
  91. package/src/backend/_core/vendor/vlucas/phpdotenv/composer.json +60 -60
  92. package/src/backend/_core/vendor/vlucas/phpdotenv/phpstan-baseline.neon +157 -0
  93. package/src/backend/_core/vendor/vlucas/phpdotenv/phpstan.neon.dist +7 -0
  94. package/src/backend/_core/vendor/vlucas/phpdotenv/phpunit.xml.dist +13 -0
  95. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Dotenv.php +267 -267
  96. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Exception/ExceptionInterface.php +12 -12
  97. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Exception/InvalidEncodingException.php +12 -12
  98. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Exception/InvalidFileException.php +12 -12
  99. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Exception/InvalidPathException.php +12 -12
  100. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Exception/ValidationException.php +12 -12
  101. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Loader/Loader.php +48 -48
  102. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Loader/LoaderInterface.php +20 -20
  103. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Loader/Resolver.php +65 -65
  104. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Entry.php +59 -59
  105. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/EntryParser.php +299 -299
  106. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Lexer.php +58 -58
  107. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Lines.php +127 -127
  108. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Parser.php +53 -53
  109. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/ParserInterface.php +19 -19
  110. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Value.php +88 -88
  111. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/AdapterInterface.php +15 -15
  112. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ApacheAdapter.php +89 -89
  113. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ArrayAdapter.php +80 -80
  114. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/EnvConstAdapter.php +88 -88
  115. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/GuardedWriter.php +85 -85
  116. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ImmutableWriter.php +110 -110
  117. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/MultiReader.php +48 -48
  118. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/MultiWriter.php +64 -64
  119. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/PutenvAdapter.php +91 -91
  120. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReaderInterface.php +17 -17
  121. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReplacingWriter.php +104 -104
  122. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ServerConstAdapter.php +88 -88
  123. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/WriterInterface.php +27 -27
  124. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/AdapterRepository.php +107 -107
  125. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/RepositoryBuilder.php +272 -272
  126. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/RepositoryInterface.php +51 -51
  127. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/File/Paths.php +44 -44
  128. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/File/Reader.php +81 -81
  129. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/FileStore.php +72 -72
  130. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/StoreBuilder.php +141 -141
  131. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/StoreInterface.php +17 -17
  132. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/StringStore.php +37 -37
  133. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Util/Regex.php +112 -112
  134. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Util/Str.php +108 -108
  135. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Validator.php +207 -207
  136. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/DotenvTest.php +387 -0
  137. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Loader/LoaderTest.php +86 -0
  138. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/EntryParserTest.php +234 -0
  139. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/LexerTest.php +40 -0
  140. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/LinesTest.php +53 -0
  141. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/ParserTest.php +98 -0
  142. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/ArrayAdapterTest.php +57 -0
  143. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/EnvConstAdapterTest.php +75 -0
  144. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/PutenvAdapterTest.php +52 -0
  145. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/ServerConstAdapterTest.php +75 -0
  146. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/RepositoryTest.php +305 -0
  147. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Store/StoreTest.php +141 -0
  148. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/ValidatorTest.php +479 -0
  149. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/.env +5 -0
  150. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/assertions.env +18 -0
  151. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/booleans.env +33 -0
  152. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/commented.env +15 -0
  153. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/empty.env +1 -0
  154. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/example.env +1 -0
  155. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/exported.env +7 -0
  156. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/immutable.env +1 -0
  157. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/integers.env +17 -0
  158. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/large.env +2 -0
  159. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/multibyte.env +3 -0
  160. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/multiline.env +14 -0
  161. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/multiple.env +4 -0
  162. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/mutable.env +1 -0
  163. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/nested.env +15 -0
  164. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/quoted.env +11 -0
  165. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/specialchars.env +8 -0
  166. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/unicodevarnames.env +2 -0
  167. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/utf8-with-bom-encoding.env +3 -0
  168. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/windows.env +1 -0
  169. package/src/backend/_core/vendor/vlucas/phpdotenv/vendor-bin/phpstan/composer.json +15 -0
  170. package/src/backend/api/protected/example-protected.php +1 -1
  171. package/src/backend/api/public/example-public.php +1 -1
  172. package/src/backend/config.php +19 -0
  173. package/src/backend/web.config +2 -5
  174. package/src/frontend/.htaccess +4 -1
  175. package/src/frontend/web.config +21 -30
@@ -1,115 +1,115 @@
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\Php80;
13
-
14
- /**
15
- * @author Ion Bazan <ion.bazan@gmail.com>
16
- * @author Nico Oelgart <nicoswd@gmail.com>
17
- * @author Nicolas Grekas <p@tchwork.com>
18
- *
19
- * @internal
20
- */
21
- final class Php80
22
- {
23
- public static function fdiv(float $dividend, float $divisor): float
24
- {
25
- return @($dividend / $divisor);
26
- }
27
-
28
- public static function get_debug_type($value): string
29
- {
30
- switch (true) {
31
- case null === $value: return 'null';
32
- case \is_bool($value): return 'bool';
33
- case \is_string($value): return 'string';
34
- case \is_array($value): return 'array';
35
- case \is_int($value): return 'int';
36
- case \is_float($value): return 'float';
37
- case \is_object($value): break;
38
- case $value instanceof \__PHP_Incomplete_Class: return '__PHP_Incomplete_Class';
39
- default:
40
- if (null === $type = @get_resource_type($value)) {
41
- return 'unknown';
42
- }
43
-
44
- if ('Unknown' === $type) {
45
- $type = 'closed';
46
- }
47
-
48
- return "resource ($type)";
49
- }
50
-
51
- $class = \get_class($value);
52
-
53
- if (false === strpos($class, '@')) {
54
- return $class;
55
- }
56
-
57
- return (get_parent_class($class) ?: key(class_implements($class)) ?: 'class').'@anonymous';
58
- }
59
-
60
- public static function get_resource_id($res): int
61
- {
62
- if (!\is_resource($res) && null === @get_resource_type($res)) {
63
- throw new \TypeError(\sprintf('Argument 1 passed to get_resource_id() must be of the type resource, %s given', get_debug_type($res)));
64
- }
65
-
66
- return (int) $res;
67
- }
68
-
69
- public static function preg_last_error_msg(): string
70
- {
71
- switch (preg_last_error()) {
72
- case \PREG_INTERNAL_ERROR:
73
- return 'Internal error';
74
- case \PREG_BAD_UTF8_ERROR:
75
- return 'Malformed UTF-8 characters, possibly incorrectly encoded';
76
- case \PREG_BAD_UTF8_OFFSET_ERROR:
77
- return 'The offset did not correspond to the beginning of a valid UTF-8 code point';
78
- case \PREG_BACKTRACK_LIMIT_ERROR:
79
- return 'Backtrack limit exhausted';
80
- case \PREG_RECURSION_LIMIT_ERROR:
81
- return 'Recursion limit exhausted';
82
- case \PREG_JIT_STACKLIMIT_ERROR:
83
- return 'JIT stack limit exhausted';
84
- case \PREG_NO_ERROR:
85
- return 'No error';
86
- default:
87
- return 'Unknown error';
88
- }
89
- }
90
-
91
- public static function str_contains(string $haystack, string $needle): bool
92
- {
93
- return '' === $needle || false !== strpos($haystack, $needle);
94
- }
95
-
96
- public static function str_starts_with(string $haystack, string $needle): bool
97
- {
98
- return 0 === strncmp($haystack, $needle, \strlen($needle));
99
- }
100
-
101
- public static function str_ends_with(string $haystack, string $needle): bool
102
- {
103
- if ('' === $needle || $needle === $haystack) {
104
- return true;
105
- }
106
-
107
- if ('' === $haystack) {
108
- return false;
109
- }
110
-
111
- $needleLength = \strlen($needle);
112
-
113
- return $needleLength <= \strlen($haystack) && 0 === substr_compare($haystack, $needle, -$needleLength);
114
- }
115
- }
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\Php80;
13
+
14
+ /**
15
+ * @author Ion Bazan <ion.bazan@gmail.com>
16
+ * @author Nico Oelgart <nicoswd@gmail.com>
17
+ * @author Nicolas Grekas <p@tchwork.com>
18
+ *
19
+ * @internal
20
+ */
21
+ final class Php80
22
+ {
23
+ public static function fdiv(float $dividend, float $divisor): float
24
+ {
25
+ return @($dividend / $divisor);
26
+ }
27
+
28
+ public static function get_debug_type($value): string
29
+ {
30
+ switch (true) {
31
+ case null === $value: return 'null';
32
+ case \is_bool($value): return 'bool';
33
+ case \is_string($value): return 'string';
34
+ case \is_array($value): return 'array';
35
+ case \is_int($value): return 'int';
36
+ case \is_float($value): return 'float';
37
+ case \is_object($value): break;
38
+ case $value instanceof \__PHP_Incomplete_Class: return '__PHP_Incomplete_Class';
39
+ default:
40
+ if (null === $type = @get_resource_type($value)) {
41
+ return 'unknown';
42
+ }
43
+
44
+ if ('Unknown' === $type) {
45
+ $type = 'closed';
46
+ }
47
+
48
+ return "resource ($type)";
49
+ }
50
+
51
+ $class = \get_class($value);
52
+
53
+ if (false === strpos($class, '@')) {
54
+ return $class;
55
+ }
56
+
57
+ return (get_parent_class($class) ?: key(class_implements($class)) ?: 'class').'@anonymous';
58
+ }
59
+
60
+ public static function get_resource_id($res): int
61
+ {
62
+ if (!\is_resource($res) && null === @get_resource_type($res)) {
63
+ throw new \TypeError(\sprintf('Argument 1 passed to get_resource_id() must be of the type resource, %s given', get_debug_type($res)));
64
+ }
65
+
66
+ return (int) $res;
67
+ }
68
+
69
+ public static function preg_last_error_msg(): string
70
+ {
71
+ switch (preg_last_error()) {
72
+ case \PREG_INTERNAL_ERROR:
73
+ return 'Internal error';
74
+ case \PREG_BAD_UTF8_ERROR:
75
+ return 'Malformed UTF-8 characters, possibly incorrectly encoded';
76
+ case \PREG_BAD_UTF8_OFFSET_ERROR:
77
+ return 'The offset did not correspond to the beginning of a valid UTF-8 code point';
78
+ case \PREG_BACKTRACK_LIMIT_ERROR:
79
+ return 'Backtrack limit exhausted';
80
+ case \PREG_RECURSION_LIMIT_ERROR:
81
+ return 'Recursion limit exhausted';
82
+ case \PREG_JIT_STACKLIMIT_ERROR:
83
+ return 'JIT stack limit exhausted';
84
+ case \PREG_NO_ERROR:
85
+ return 'No error';
86
+ default:
87
+ return 'Unknown error';
88
+ }
89
+ }
90
+
91
+ public static function str_contains(string $haystack, string $needle): bool
92
+ {
93
+ return '' === $needle || false !== strpos($haystack, $needle);
94
+ }
95
+
96
+ public static function str_starts_with(string $haystack, string $needle): bool
97
+ {
98
+ return 0 === strncmp($haystack, $needle, \strlen($needle));
99
+ }
100
+
101
+ public static function str_ends_with(string $haystack, string $needle): bool
102
+ {
103
+ if ('' === $needle || $needle === $haystack) {
104
+ return true;
105
+ }
106
+
107
+ if ('' === $haystack) {
108
+ return false;
109
+ }
110
+
111
+ $needleLength = \strlen($needle);
112
+
113
+ return $needleLength <= \strlen($haystack) && 0 === substr_compare($haystack, $needle, -$needleLength);
114
+ }
115
+ }
@@ -1,106 +1,106 @@
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\Php80;
13
-
14
- /**
15
- * @author Fedonyuk Anton <info@ensostudio.ru>
16
- *
17
- * @internal
18
- */
19
- class PhpToken implements \Stringable
20
- {
21
- /**
22
- * @var int
23
- */
24
- public $id;
25
-
26
- /**
27
- * @var string
28
- */
29
- public $text;
30
-
31
- /**
32
- * @var -1|positive-int
33
- */
34
- public $line;
35
-
36
- /**
37
- * @var int
38
- */
39
- public $pos;
40
-
41
- /**
42
- * @param -1|positive-int $line
43
- */
44
- public function __construct(int $id, string $text, int $line = -1, int $position = -1)
45
- {
46
- $this->id = $id;
47
- $this->text = $text;
48
- $this->line = $line;
49
- $this->pos = $position;
50
- }
51
-
52
- public function getTokenName(): ?string
53
- {
54
- if ('UNKNOWN' === $name = token_name($this->id)) {
55
- $name = \strlen($this->text) > 1 || \ord($this->text) < 32 ? null : $this->text;
56
- }
57
-
58
- return $name;
59
- }
60
-
61
- /**
62
- * @param int|string|array $kind
63
- */
64
- public function is($kind): bool
65
- {
66
- foreach ((array) $kind as $value) {
67
- if (\in_array($value, [$this->id, $this->text], true)) {
68
- return true;
69
- }
70
- }
71
-
72
- return false;
73
- }
74
-
75
- public function isIgnorable(): bool
76
- {
77
- return \in_array($this->id, [\T_WHITESPACE, \T_COMMENT, \T_DOC_COMMENT, \T_OPEN_TAG], true);
78
- }
79
-
80
- public function __toString(): string
81
- {
82
- return (string) $this->text;
83
- }
84
-
85
- /**
86
- * @return list<static>
87
- */
88
- public static function tokenize(string $code, int $flags = 0): array
89
- {
90
- $line = 1;
91
- $position = 0;
92
- $tokens = token_get_all($code, $flags);
93
- foreach ($tokens as $index => $token) {
94
- if (\is_string($token)) {
95
- $id = \ord($token);
96
- $text = $token;
97
- } else {
98
- [$id, $text, $line] = $token;
99
- }
100
- $tokens[$index] = new static($id, $text, $line, $position);
101
- $position += \strlen($text);
102
- }
103
-
104
- return $tokens;
105
- }
106
- }
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\Php80;
13
+
14
+ /**
15
+ * @author Fedonyuk Anton <info@ensostudio.ru>
16
+ *
17
+ * @internal
18
+ */
19
+ class PhpToken implements \Stringable
20
+ {
21
+ /**
22
+ * @var int
23
+ */
24
+ public $id;
25
+
26
+ /**
27
+ * @var string
28
+ */
29
+ public $text;
30
+
31
+ /**
32
+ * @var -1|positive-int
33
+ */
34
+ public $line;
35
+
36
+ /**
37
+ * @var int
38
+ */
39
+ public $pos;
40
+
41
+ /**
42
+ * @param -1|positive-int $line
43
+ */
44
+ public function __construct(int $id, string $text, int $line = -1, int $position = -1)
45
+ {
46
+ $this->id = $id;
47
+ $this->text = $text;
48
+ $this->line = $line;
49
+ $this->pos = $position;
50
+ }
51
+
52
+ public function getTokenName(): ?string
53
+ {
54
+ if ('UNKNOWN' === $name = token_name($this->id)) {
55
+ $name = \strlen($this->text) > 1 || \ord($this->text) < 32 ? null : $this->text;
56
+ }
57
+
58
+ return $name;
59
+ }
60
+
61
+ /**
62
+ * @param int|string|array $kind
63
+ */
64
+ public function is($kind): bool
65
+ {
66
+ foreach ((array) $kind as $value) {
67
+ if (\in_array($value, [$this->id, $this->text], true)) {
68
+ return true;
69
+ }
70
+ }
71
+
72
+ return false;
73
+ }
74
+
75
+ public function isIgnorable(): bool
76
+ {
77
+ return \in_array($this->id, [\T_WHITESPACE, \T_COMMENT, \T_DOC_COMMENT, \T_OPEN_TAG], true);
78
+ }
79
+
80
+ public function __toString(): string
81
+ {
82
+ return (string) $this->text;
83
+ }
84
+
85
+ /**
86
+ * @return list<static>
87
+ */
88
+ public static function tokenize(string $code, int $flags = 0): array
89
+ {
90
+ $line = 1;
91
+ $position = 0;
92
+ $tokens = token_get_all($code, $flags);
93
+ foreach ($tokens as $index => $token) {
94
+ if (\is_string($token)) {
95
+ $id = \ord($token);
96
+ $text = $token;
97
+ } else {
98
+ [$id, $text, $line] = $token;
99
+ }
100
+ $tokens[$index] = new static($id, $text, $line, $position);
101
+ $position += \strlen($text);
102
+ }
103
+
104
+ return $tokens;
105
+ }
106
+ }
@@ -1,25 +1,25 @@
1
- Symfony Polyfill / Php80
2
- ========================
3
-
4
- This component provides features added to PHP 8.0 core:
5
-
6
- - [`Stringable`](https://php.net/stringable) interface
7
- - [`fdiv`](https://php.net/fdiv)
8
- - [`ValueError`](https://php.net/valueerror) class
9
- - [`UnhandledMatchError`](https://php.net/unhandledmatcherror) class
10
- - `FILTER_VALIDATE_BOOL` constant
11
- - [`get_debug_type`](https://php.net/get_debug_type)
12
- - [`PhpToken`](https://php.net/phptoken) class
13
- - [`preg_last_error_msg`](https://php.net/preg_last_error_msg)
14
- - [`str_contains`](https://php.net/str_contains)
15
- - [`str_starts_with`](https://php.net/str_starts_with)
16
- - [`str_ends_with`](https://php.net/str_ends_with)
17
- - [`get_resource_id`](https://php.net/get_resource_id)
18
-
19
- More information can be found in the
20
- [main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md).
21
-
22
- License
23
- =======
24
-
25
- This library is released under the [MIT license](LICENSE).
1
+ Symfony Polyfill / Php80
2
+ ========================
3
+
4
+ This component provides features added to PHP 8.0 core:
5
+
6
+ - [`Stringable`](https://php.net/stringable) interface
7
+ - [`fdiv`](https://php.net/fdiv)
8
+ - [`ValueError`](https://php.net/valueerror) class
9
+ - [`UnhandledMatchError`](https://php.net/unhandledmatcherror) class
10
+ - `FILTER_VALIDATE_BOOL` constant
11
+ - [`get_debug_type`](https://php.net/get_debug_type)
12
+ - [`PhpToken`](https://php.net/phptoken) class
13
+ - [`preg_last_error_msg`](https://php.net/preg_last_error_msg)
14
+ - [`str_contains`](https://php.net/str_contains)
15
+ - [`str_starts_with`](https://php.net/str_starts_with)
16
+ - [`str_ends_with`](https://php.net/str_ends_with)
17
+ - [`get_resource_id`](https://php.net/get_resource_id)
18
+
19
+ More information can be found in the
20
+ [main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md).
21
+
22
+ License
23
+ =======
24
+
25
+ This library is released under the [MIT license](LICENSE).
@@ -1,31 +1,31 @@
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
- #[Attribute(Attribute::TARGET_CLASS)]
13
- final class Attribute
14
- {
15
- public const TARGET_CLASS = 1;
16
- public const TARGET_FUNCTION = 2;
17
- public const TARGET_METHOD = 4;
18
- public const TARGET_PROPERTY = 8;
19
- public const TARGET_CLASS_CONSTANT = 16;
20
- public const TARGET_PARAMETER = 32;
21
- public const TARGET_ALL = 63;
22
- public const IS_REPEATABLE = 64;
23
-
24
- /** @var int */
25
- public $flags;
26
-
27
- public function __construct(int $flags = self::TARGET_ALL)
28
- {
29
- $this->flags = $flags;
30
- }
31
- }
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
+ #[Attribute(Attribute::TARGET_CLASS)]
13
+ final class Attribute
14
+ {
15
+ public const TARGET_CLASS = 1;
16
+ public const TARGET_FUNCTION = 2;
17
+ public const TARGET_METHOD = 4;
18
+ public const TARGET_PROPERTY = 8;
19
+ public const TARGET_CLASS_CONSTANT = 16;
20
+ public const TARGET_PARAMETER = 32;
21
+ public const TARGET_ALL = 63;
22
+ public const IS_REPEATABLE = 64;
23
+
24
+ /** @var int */
25
+ public $flags;
26
+
27
+ public function __construct(int $flags = self::TARGET_ALL)
28
+ {
29
+ $this->flags = $flags;
30
+ }
31
+ }
@@ -1,16 +1,16 @@
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
- if (\PHP_VERSION_ID < 80000 && extension_loaded('tokenizer')) {
13
- class PhpToken extends Symfony\Polyfill\Php80\PhpToken
14
- {
15
- }
16
- }
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
+ if (\PHP_VERSION_ID < 80000 && extension_loaded('tokenizer')) {
13
+ class PhpToken extends Symfony\Polyfill\Php80\PhpToken
14
+ {
15
+ }
16
+ }
@@ -1,20 +1,20 @@
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
- if (\PHP_VERSION_ID < 80000) {
13
- interface Stringable
14
- {
15
- /**
16
- * @return string
17
- */
18
- public function __toString();
19
- }
20
- }
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
+ if (\PHP_VERSION_ID < 80000) {
13
+ interface Stringable
14
+ {
15
+ /**
16
+ * @return string
17
+ */
18
+ public function __toString();
19
+ }
20
+ }
@@ -1,16 +1,16 @@
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
- if (\PHP_VERSION_ID < 80000) {
13
- class UnhandledMatchError extends Error
14
- {
15
- }
16
- }
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
+ if (\PHP_VERSION_ID < 80000) {
13
+ class UnhandledMatchError extends Error
14
+ {
15
+ }
16
+ }