create-berna-stencil 1.0.46 → 1.0.48

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 (185) hide show
  1. package/_tools/res/templates/template.scss +6 -0
  2. package/bin/create.js +2 -1
  3. package/docs/Assistant CLI.md +36 -0
  4. package/docs/Components.md +63 -0
  5. package/docs/Creating pages.md +46 -0
  6. package/docs/Head and SEO.md +44 -0
  7. package/docs/Javascript.md +53 -0
  8. package/docs/Styling with SCSS.md +114 -0
  9. package/package.json +3 -15
  10. package/src/backend/_core/vendor/composer/autoload_static.php +10 -10
  11. package/src/backend/_core/vendor/composer/installed.json +6 -6
  12. package/src/backend/_core/vendor/composer/installed.php +2 -2
  13. package/src/backend/_core/vendor/graham-campbell/result-type/LICENSE +21 -21
  14. package/src/backend/_core/vendor/graham-campbell/result-type/composer.json +33 -33
  15. package/src/backend/_core/vendor/graham-campbell/result-type/src/Error.php +121 -121
  16. package/src/backend/_core/vendor/graham-campbell/result-type/src/Result.php +69 -69
  17. package/src/backend/_core/vendor/graham-campbell/result-type/src/Success.php +120 -120
  18. package/src/backend/_core/vendor/phpoption/phpoption/LICENSE +200 -200
  19. package/src/backend/_core/vendor/phpoption/phpoption/composer.json +50 -50
  20. package/src/backend/_core/vendor/phpoption/phpoption/src/PhpOption/LazyOption.php +175 -175
  21. package/src/backend/_core/vendor/phpoption/phpoption/src/PhpOption/None.php +136 -136
  22. package/src/backend/_core/vendor/phpoption/phpoption/src/PhpOption/Option.php +434 -434
  23. package/src/backend/_core/vendor/phpoption/phpoption/src/PhpOption/Some.php +169 -169
  24. package/src/backend/_core/vendor/symfony/polyfill-ctype/Ctype.php +232 -232
  25. package/src/backend/_core/vendor/symfony/polyfill-ctype/LICENSE +19 -19
  26. package/src/backend/_core/vendor/symfony/polyfill-ctype/README.md +12 -12
  27. package/src/backend/_core/vendor/symfony/polyfill-ctype/bootstrap.php +50 -50
  28. package/src/backend/_core/vendor/symfony/polyfill-ctype/bootstrap80.php +46 -46
  29. package/src/backend/_core/vendor/symfony/polyfill-ctype/composer.json +38 -38
  30. package/src/backend/_core/vendor/symfony/polyfill-mbstring/LICENSE +19 -19
  31. package/src/backend/_core/vendor/symfony/polyfill-mbstring/Mbstring.php +1077 -1077
  32. package/src/backend/_core/vendor/symfony/polyfill-mbstring/README.md +13 -13
  33. package/src/backend/_core/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php +119 -119
  34. package/src/backend/_core/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php +1397 -1397
  35. package/src/backend/_core/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php +5 -5
  36. package/src/backend/_core/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php +1489 -1489
  37. package/src/backend/_core/vendor/symfony/polyfill-mbstring/bootstrap.php +171 -171
  38. package/src/backend/_core/vendor/symfony/polyfill-mbstring/bootstrap80.php +167 -167
  39. package/src/backend/_core/vendor/symfony/polyfill-mbstring/composer.json +39 -39
  40. package/src/backend/_core/vendor/symfony/polyfill-php80/LICENSE +19 -19
  41. package/src/backend/_core/vendor/symfony/polyfill-php80/Php80.php +115 -115
  42. package/src/backend/_core/vendor/symfony/polyfill-php80/PhpToken.php +106 -106
  43. package/src/backend/_core/vendor/symfony/polyfill-php80/README.md +25 -25
  44. package/src/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php +31 -31
  45. package/src/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/PhpToken.php +16 -16
  46. package/src/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php +20 -20
  47. package/src/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php +16 -16
  48. package/src/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php +16 -16
  49. package/src/backend/_core/vendor/symfony/polyfill-php80/bootstrap.php +42 -42
  50. package/src/backend/_core/vendor/symfony/polyfill-php80/composer.json +37 -37
  51. package/src/backend/_core/vendor/vlucas/phpdotenv/LICENSE +30 -30
  52. package/src/backend/_core/vendor/vlucas/phpdotenv/composer.json +60 -60
  53. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Dotenv.php +267 -267
  54. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Exception/ExceptionInterface.php +12 -12
  55. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Exception/InvalidEncodingException.php +12 -12
  56. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Exception/InvalidFileException.php +12 -12
  57. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Exception/InvalidPathException.php +12 -12
  58. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Exception/ValidationException.php +12 -12
  59. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Loader/Loader.php +48 -48
  60. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Loader/LoaderInterface.php +20 -20
  61. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Loader/Resolver.php +65 -65
  62. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Entry.php +59 -59
  63. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/EntryParser.php +299 -299
  64. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Lexer.php +58 -58
  65. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Lines.php +127 -127
  66. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Parser.php +53 -53
  67. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/ParserInterface.php +19 -19
  68. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Value.php +88 -88
  69. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/AdapterInterface.php +15 -15
  70. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ApacheAdapter.php +89 -89
  71. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ArrayAdapter.php +80 -80
  72. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/EnvConstAdapter.php +88 -88
  73. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/GuardedWriter.php +85 -85
  74. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ImmutableWriter.php +110 -110
  75. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/MultiReader.php +48 -48
  76. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/MultiWriter.php +64 -64
  77. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/PutenvAdapter.php +91 -91
  78. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReaderInterface.php +17 -17
  79. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReplacingWriter.php +104 -104
  80. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ServerConstAdapter.php +88 -88
  81. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/WriterInterface.php +27 -27
  82. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/AdapterRepository.php +107 -107
  83. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/RepositoryBuilder.php +272 -272
  84. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/RepositoryInterface.php +51 -51
  85. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/File/Paths.php +44 -44
  86. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/File/Reader.php +81 -81
  87. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/FileStore.php +72 -72
  88. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/StoreBuilder.php +141 -141
  89. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/StoreInterface.php +17 -17
  90. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/StringStore.php +37 -37
  91. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Util/Regex.php +112 -112
  92. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Util/Str.php +108 -108
  93. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Validator.php +207 -207
  94. package/src/backend/api/protected/subfolder/example-protected.php +0 -4
  95. package/src/backend/api/public/example-public.php +0 -4
  96. package/src/frontend/components/layouts/includes.njk +0 -3
  97. package/src/frontend/data/site.json +0 -10
  98. package/src/frontend/scss/modules/_root.scss +2 -4
  99. package/src/frontend/scss/modules/frameworks/_bootstrap.scss +0 -1
  100. package/src/frontend/scss/modules/frameworks/_bulma.scss +0 -1
  101. package/src/frontend/scss/modules/frameworks/_foundation.scss +0 -1
  102. package/src/frontend/scss/modules/frameworks/_uikit.scss +0 -1
  103. package/src/frontend/scss/pages/404.scss +3 -1
  104. package/src/frontend/scss/pages/homepage.scss +3 -1
  105. package/src/backend/_core/vendor/graham-campbell/result-type/.gitattributes +0 -9
  106. package/src/backend/_core/vendor/graham-campbell/result-type/.github/CODE_OF_CONDUCT.md +0 -132
  107. package/src/backend/_core/vendor/graham-campbell/result-type/.github/CONTRIBUTING.md +0 -31
  108. package/src/backend/_core/vendor/graham-campbell/result-type/.github/FUNDING.yml +0 -2
  109. package/src/backend/_core/vendor/graham-campbell/result-type/.github/SECURITY.md +0 -14
  110. package/src/backend/_core/vendor/graham-campbell/result-type/.github/workflows/stale.yml +0 -11
  111. package/src/backend/_core/vendor/graham-campbell/result-type/.github/workflows/tests.yml +0 -40
  112. package/src/backend/_core/vendor/graham-campbell/result-type/CHANGELOG.md +0 -53
  113. package/src/backend/_core/vendor/graham-campbell/result-type/README.md +0 -42
  114. package/src/backend/_core/vendor/graham-campbell/result-type/phpunit.xml.dist +0 -13
  115. package/src/backend/_core/vendor/graham-campbell/result-type/tests/ResultTest.php +0 -95
  116. package/src/backend/_core/vendor/phpoption/phpoption/.gitattributes +0 -13
  117. package/src/backend/_core/vendor/phpoption/phpoption/.github/CODE_OF_CONDUCT.md +0 -132
  118. package/src/backend/_core/vendor/phpoption/phpoption/.github/CONTRIBUTING.md +0 -30
  119. package/src/backend/_core/vendor/phpoption/phpoption/.github/FUNDING.yml +0 -2
  120. package/src/backend/_core/vendor/phpoption/phpoption/.github/SECURITY.md +0 -14
  121. package/src/backend/_core/vendor/phpoption/phpoption/.github/workflows/static.yml +0 -40
  122. package/src/backend/_core/vendor/phpoption/phpoption/.github/workflows/tests.yml +0 -40
  123. package/src/backend/_core/vendor/phpoption/phpoption/Makefile +0 -17
  124. package/src/backend/_core/vendor/phpoption/phpoption/README.md +0 -201
  125. package/src/backend/_core/vendor/phpoption/phpoption/phpstan-baseline.neon +0 -44
  126. package/src/backend/_core/vendor/phpoption/phpoption/phpstan.neon.dist +0 -7
  127. package/src/backend/_core/vendor/phpoption/phpoption/phpunit.xml.dist +0 -13
  128. package/src/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/EnsureTest.php +0 -72
  129. package/src/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/LazyOptionTest.php +0 -357
  130. package/src/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/NoneTest.php +0 -153
  131. package/src/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/OptionTest.php +0 -166
  132. package/src/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/SomeTest.php +0 -194
  133. package/src/backend/_core/vendor/phpoption/phpoption/tests/bootstrap.php +0 -8
  134. package/src/backend/_core/vendor/phpoption/phpoption/vendor-bin/phpstan/composer.json +0 -8
  135. package/src/backend/_core/vendor/vlucas/phpdotenv/.editorconfig +0 -15
  136. package/src/backend/_core/vendor/vlucas/phpdotenv/.gitattributes +0 -15
  137. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/CODE_OF_CONDUCT.md +0 -132
  138. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/CONTRIBUTING.md +0 -30
  139. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/FUNDING.yml +0 -2
  140. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/SECURITY.md +0 -14
  141. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/workflows/static.yml +0 -40
  142. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/workflows/tests.yml +0 -70
  143. package/src/backend/_core/vendor/vlucas/phpdotenv/Makefile +0 -17
  144. package/src/backend/_core/vendor/vlucas/phpdotenv/README.md +0 -370
  145. package/src/backend/_core/vendor/vlucas/phpdotenv/UPGRADING.md +0 -196
  146. package/src/backend/_core/vendor/vlucas/phpdotenv/phpstan-baseline.neon +0 -157
  147. package/src/backend/_core/vendor/vlucas/phpdotenv/phpstan.neon.dist +0 -7
  148. package/src/backend/_core/vendor/vlucas/phpdotenv/phpunit.xml.dist +0 -13
  149. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/DotenvTest.php +0 -387
  150. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Loader/LoaderTest.php +0 -86
  151. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/EntryParserTest.php +0 -234
  152. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/LexerTest.php +0 -40
  153. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/LinesTest.php +0 -53
  154. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/ParserTest.php +0 -98
  155. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/ArrayAdapterTest.php +0 -57
  156. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/EnvConstAdapterTest.php +0 -75
  157. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/PutenvAdapterTest.php +0 -52
  158. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/ServerConstAdapterTest.php +0 -75
  159. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/RepositoryTest.php +0 -305
  160. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Store/StoreTest.php +0 -141
  161. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/ValidatorTest.php +0 -479
  162. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/.env +0 -5
  163. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/assertions.env +0 -18
  164. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/booleans.env +0 -33
  165. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/commented.env +0 -15
  166. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/empty.env +0 -1
  167. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/example.env +0 -1
  168. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/exported.env +0 -7
  169. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/immutable.env +0 -1
  170. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/integers.env +0 -17
  171. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/large.env +0 -2
  172. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/multibyte.env +0 -3
  173. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/multiline.env +0 -14
  174. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/multiple.env +0 -4
  175. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/mutable.env +0 -1
  176. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/nested.env +0 -15
  177. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/quoted.env +0 -11
  178. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/specialchars.env +0 -8
  179. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/unicodevarnames.env +0 -2
  180. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/utf8-with-bom-encoding.env +0 -3
  181. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/windows.env +0 -1
  182. package/src/backend/_core/vendor/vlucas/phpdotenv/vendor-bin/phpstan/composer.json +0 -15
  183. package/src/frontend/_routes/example-page.njk +0 -9
  184. package/src/frontend/js/pages/examplePage.js +0 -19
  185. package/src/frontend/scss/pages/examplePage.scss +0 -17
@@ -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
+ }