├── .env ├── .gitignore ├── app ├── controllers │ ├── HomeController.php │ └── OfficeController.php └── views │ ├── office.php │ └── home.php ├── helpers ├── custom │ ├── custom_files.php │ ├── custom_functions.php │ └── customtwo │ │ └── another_function.php └── Framework │ ├── views.php │ └── json.php ├── routers ├── web.php ├── routes.php └── RouteManager.php ├── server.php ├── .htaccess ├── composer.json ├── LICENSE ├── public └── index.php ├── README.md └── composer.lock /.env: -------------------------------------------------------------------------------- 1 | APP_URL=http://localhost -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imransmartinsider/flint/HEAD/.gitignore -------------------------------------------------------------------------------- /app/controllers/HomeController.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Welcome to My Framework 9 | 10 | 11 |

Welcome to My Framework

12 |

This is office controller

13 | 14 | -------------------------------------------------------------------------------- /.htaccess: -------------------------------------------------------------------------------- 1 | 2 | RewriteEngine On 3 | 4 | # Set the base directory dynamically 5 | RewriteCond %{REQUEST_URI}::$1 ^(.*?/)(.*)::\2$ 6 | RewriteRule ^(.*) - [E=BASE:%1] 7 | 8 | # Redirect all requests to serve.php for development server 9 | RewriteCond %{REQUEST_FILENAME} !-f 10 | RewriteCond %{REQUEST_FILENAME} !-d 11 | RewriteRule ^ %{ENV:BASE}server.php [QSA,L] 12 | 13 | -------------------------------------------------------------------------------- /routers/routes.php: -------------------------------------------------------------------------------- 1 | getRoutes(); 13 | 14 | return $routes; 15 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "imransmartins/my-flint", 3 | "description": "A simple PHP framework", 4 | "type": "project", 5 | "require": { 6 | "php": "^8.0", 7 | "illuminate/support": "^9.0", 8 | "symfony/http-foundation": "^6.0", 9 | "symfony/routing": "^6.4", 10 | "nikic/fast-route": "^1.3", 11 | "symfony/config": "^6.4" 12 | }, 13 | "autoload": { 14 | "psr-4": { 15 | "App\\": "app/" 16 | } 17 | }, 18 | "scripts": { 19 | "post-root-package-install": [ 20 | "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" 21 | ] 22 | } 23 | } -------------------------------------------------------------------------------- /helpers/Framework/views.php: -------------------------------------------------------------------------------- 1 | $value) { 19 | header("$header: $value"); 20 | } 21 | 22 | // Output the JSON encoded data 23 | echo json_encode($data); 24 | exit; // Ensure no further output is sent 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /routers/RouteManager.php: -------------------------------------------------------------------------------- 1 | routes = new RouteCollection(); 16 | } 17 | 18 | public static function getInstance() 19 | { 20 | if (self::$instance === null) { 21 | self::$instance = new self(); 22 | } 23 | return self::$instance; 24 | } 25 | 26 | public function getRoutes() 27 | { 28 | return $this->routes; 29 | } 30 | 31 | public static function addRoute($name, $path, $controller, $method) 32 | { 33 | self::getInstance()->routes->add($name, new Route($path, [ 34 | '_controller' => $controller . '::' . $method, 35 | ])); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 imransmartinsider 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /public/index.php: -------------------------------------------------------------------------------- 1 | isFile() && $file->getExtension() === 'php') { 24 | include_once $file->getPathname(); 25 | } 26 | } 27 | } 28 | 29 | // Specify the base directory containing your PHP files with functions 30 | $baseDirectory = __DIR__ . '/../helpers/custom/'; 31 | 32 | // Include PHP files recursively 33 | include_php_files_recursive($baseDirectory); 34 | 35 | // Function to include all PHP files in a directory 36 | function include_all_files($directory) 37 | { 38 | foreach (glob($directory . '/*.php') as $filename) { 39 | require_once $filename; 40 | } 41 | } 42 | 43 | // Include all helpers in the framework directory 44 | include_all_files(__DIR__ . '/../helpers/framework'); 45 | 46 | try { 47 | $locator = new FileLocator([__DIR__ . '/../routers']); 48 | $loader = new PhpFileLoader($locator); 49 | $routes = $loader->load('routes.php'); 50 | 51 | $request = Request::createFromGlobals(); 52 | $context = (new RequestContext())->fromRequest($request); 53 | 54 | $router = new Router($loader, 'routes.php', [], $context); 55 | 56 | $route = str_replace(dirname($_SERVER['SCRIPT_NAME']), '', $_SERVER['REQUEST_URI']); 57 | $parameters = $router->match($route); 58 | 59 | $controller = explode('::', $parameters['_controller']); 60 | $controllerInstance = new $controller[0](); 61 | $method = $controller[1]; 62 | 63 | // Remove _controller and _route from parameters 64 | unset($parameters['_controller'], $parameters['_route']); 65 | 66 | $response = call_user_func_array([$controllerInstance, $method], $parameters); 67 | 68 | // Output the final view 69 | echo $response; 70 | } catch (Exception $e) { 71 | http_response_code(404); 72 | echo "Error: " . $e->getMessage(); 73 | } 74 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Flint Framework 2 | 3 | For complete Documentation [Click here](https://imransmartinsider.github.io/flintdocs) 4 | 5 | ## Simplify Everything with a Single Click 6 | 7 | *After the revolution of artificial intelligence, we created Flint with the future in mind. Our goal was to eliminate unnecessary complexities found in older frameworks, creating a 'one-click-framework.' This means you can add any package or functionality with a single click or just one line of code, allowing developers to focus on building new features. Flint empowers developers by minimizing repetitive tasks and seamlessly integrating existing solutions from the internet. This simplicity and efficiency make Flint truly special.* 8 | 9 | --- 10 | 11 | ## Introduction 12 | 13 | Flint is a very lightweight PHP framework designed to offer maximum flexibility and simplicity for developers. With a total size of less than 80KB, Flint provides a minimalistic yet powerful structure that allows developers to build their projects with ease. It is ideal for those who have worked primarily with core PHP and are looking to transition into using a framework without a steep learning curve. Flint requires only a basic understanding of the MVC structure, making it accessible to new developers. 14 | 15 | --- 16 | 17 | ## Features 18 | 19 | ### Lightweight 20 | 21 | - Flint's entire framework is less than 80KB, ensuring a fast and efficient development process. 22 | 23 | ### Flexible Directory Structure 24 | 25 | - The framework provides a basic directory structure for routing, views, and controllers, allowing developers the freedom to organize their projects as they see fit. 26 | 27 | ### Core PHP Friendly 28 | 29 | - Flint is designed to be intuitive for developers who have experience with core PHP, making it an ideal starting point for transitioning to a framework. 30 | 31 | ### Quick Learning Curve 32 | 33 | - Developers can learn Flint in just a few days, thanks to its straightforward design and minimalistic approach. 34 | 35 | ### No Prior Framework Knowledge Needed 36 | 37 | - Flint does not require any prior understanding of other frameworks, making it perfect for beginners. 38 | 39 | ### MVC Understanding 40 | 41 | - A basic understanding of the MVC structure is sufficient to start using Flint. 42 | 43 | ### Easy Feature Addition 44 | 45 | - Adding new features to Flint is simple and straightforward. 46 | 47 | ### Custom Security 48 | 49 | - Developers can implement their custom security measures as needed, without any unnecessary built-in security features that could slow down the project. 50 | 51 | ### Blazing Fast 52 | 53 | - Flint is designed to be a fast and efficient framework. 54 | 55 | ### Core PHP Compatible 56 | 57 | - Anything you can do in a core PHP project, you can do with Flint, without any imposed framework requirements. 58 | 59 | ### Versatile Usage 60 | 61 | - Use Flint for complete projects or just for API calls, as it offers flexibility in how it can be implemented. 62 | 63 | ### Simple Routing 64 | 65 | - The routing system is designed to be very simple, with one-liners that make it easy for new developers to adapt to the framework. 66 | 67 | --- 68 | 69 | These features make Flint a highly adaptable and user-friendly framework, perfect for both new and experienced PHP developers looking for a lightweight and flexible development tool. 70 | -------------------------------------------------------------------------------- /app/views/home.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Welcome to Flint Framework 7 | 8 | 74 | 75 | 76 |
77 |
78 |

Welcome to Flint Framework

79 |
80 |
81 | 82 |
83 |
84 |

Hello, Developer!

85 |

Flint is the simplest, minimal solution for PHP developers. Achieve most of your tasks with just a click. It is revolutionary.

86 | Get Started 87 |
88 |
89 | 90 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | -------------------------------------------------------------------------------- /composer.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_readme": [ 3 | "This file locks the dependencies of your project to a known state", 4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", 5 | "This file is @generated automatically" 6 | ], 7 | "content-hash": "56464ba6868ab30e1a0ce5abad3b8679", 8 | "packages": [ 9 | { 10 | "name": "carbonphp/carbon-doctrine-types", 11 | "version": "3.2.0", 12 | "source": { 13 | "type": "git", 14 | "url": "https://github.com/CarbonPHP/carbon-doctrine-types.git", 15 | "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d" 16 | }, 17 | "dist": { 18 | "type": "zip", 19 | "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/18ba5ddfec8976260ead6e866180bd5d2f71aa1d", 20 | "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d", 21 | "shasum": "" 22 | }, 23 | "require": { 24 | "php": "^8.1" 25 | }, 26 | "conflict": { 27 | "doctrine/dbal": "<4.0.0 || >=5.0.0" 28 | }, 29 | "require-dev": { 30 | "doctrine/dbal": "^4.0.0", 31 | "nesbot/carbon": "^2.71.0 || ^3.0.0", 32 | "phpunit/phpunit": "^10.3" 33 | }, 34 | "type": "library", 35 | "autoload": { 36 | "psr-4": { 37 | "Carbon\\Doctrine\\": "src/Carbon/Doctrine/" 38 | } 39 | }, 40 | "notification-url": "https://packagist.org/downloads/", 41 | "license": [ 42 | "MIT" 43 | ], 44 | "authors": [ 45 | { 46 | "name": "KyleKatarn", 47 | "email": "kylekatarnls@gmail.com" 48 | } 49 | ], 50 | "description": "Types to use Carbon in Doctrine", 51 | "keywords": [ 52 | "carbon", 53 | "date", 54 | "datetime", 55 | "doctrine", 56 | "time" 57 | ], 58 | "support": { 59 | "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues", 60 | "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.2.0" 61 | }, 62 | "funding": [ 63 | { 64 | "url": "https://github.com/kylekatarnls", 65 | "type": "github" 66 | }, 67 | { 68 | "url": "https://opencollective.com/Carbon", 69 | "type": "open_collective" 70 | }, 71 | { 72 | "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon", 73 | "type": "tidelift" 74 | } 75 | ], 76 | "time": "2024-02-09T16:56:22+00:00" 77 | }, 78 | { 79 | "name": "doctrine/inflector", 80 | "version": "2.0.10", 81 | "source": { 82 | "type": "git", 83 | "url": "https://github.com/doctrine/inflector.git", 84 | "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc" 85 | }, 86 | "dist": { 87 | "type": "zip", 88 | "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc", 89 | "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc", 90 | "shasum": "" 91 | }, 92 | "require": { 93 | "php": "^7.2 || ^8.0" 94 | }, 95 | "require-dev": { 96 | "doctrine/coding-standard": "^11.0", 97 | "phpstan/phpstan": "^1.8", 98 | "phpstan/phpstan-phpunit": "^1.1", 99 | "phpstan/phpstan-strict-rules": "^1.3", 100 | "phpunit/phpunit": "^8.5 || ^9.5", 101 | "vimeo/psalm": "^4.25 || ^5.4" 102 | }, 103 | "type": "library", 104 | "autoload": { 105 | "psr-4": { 106 | "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" 107 | } 108 | }, 109 | "notification-url": "https://packagist.org/downloads/", 110 | "license": [ 111 | "MIT" 112 | ], 113 | "authors": [ 114 | { 115 | "name": "Guilherme Blanco", 116 | "email": "guilhermeblanco@gmail.com" 117 | }, 118 | { 119 | "name": "Roman Borschel", 120 | "email": "roman@code-factory.org" 121 | }, 122 | { 123 | "name": "Benjamin Eberlei", 124 | "email": "kontakt@beberlei.de" 125 | }, 126 | { 127 | "name": "Jonathan Wage", 128 | "email": "jonwage@gmail.com" 129 | }, 130 | { 131 | "name": "Johannes Schmitt", 132 | "email": "schmittjoh@gmail.com" 133 | } 134 | ], 135 | "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", 136 | "homepage": "https://www.doctrine-project.org/projects/inflector.html", 137 | "keywords": [ 138 | "inflection", 139 | "inflector", 140 | "lowercase", 141 | "manipulation", 142 | "php", 143 | "plural", 144 | "singular", 145 | "strings", 146 | "uppercase", 147 | "words" 148 | ], 149 | "support": { 150 | "issues": "https://github.com/doctrine/inflector/issues", 151 | "source": "https://github.com/doctrine/inflector/tree/2.0.10" 152 | }, 153 | "funding": [ 154 | { 155 | "url": "https://www.doctrine-project.org/sponsorship.html", 156 | "type": "custom" 157 | }, 158 | { 159 | "url": "https://www.patreon.com/phpdoctrine", 160 | "type": "patreon" 161 | }, 162 | { 163 | "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", 164 | "type": "tidelift" 165 | } 166 | ], 167 | "time": "2024-02-18T20:23:39+00:00" 168 | }, 169 | { 170 | "name": "illuminate/collections", 171 | "version": "v9.52.16", 172 | "source": { 173 | "type": "git", 174 | "url": "https://github.com/illuminate/collections.git", 175 | "reference": "d3710b0b244bfc62c288c1a87eaa62dd28352d1f" 176 | }, 177 | "dist": { 178 | "type": "zip", 179 | "url": "https://api.github.com/repos/illuminate/collections/zipball/d3710b0b244bfc62c288c1a87eaa62dd28352d1f", 180 | "reference": "d3710b0b244bfc62c288c1a87eaa62dd28352d1f", 181 | "shasum": "" 182 | }, 183 | "require": { 184 | "illuminate/conditionable": "^9.0", 185 | "illuminate/contracts": "^9.0", 186 | "illuminate/macroable": "^9.0", 187 | "php": "^8.0.2" 188 | }, 189 | "suggest": { 190 | "symfony/var-dumper": "Required to use the dump method (^6.0)." 191 | }, 192 | "type": "library", 193 | "extra": { 194 | "branch-alias": { 195 | "dev-master": "9.x-dev" 196 | } 197 | }, 198 | "autoload": { 199 | "files": [ 200 | "helpers.php" 201 | ], 202 | "psr-4": { 203 | "Illuminate\\Support\\": "" 204 | } 205 | }, 206 | "notification-url": "https://packagist.org/downloads/", 207 | "license": [ 208 | "MIT" 209 | ], 210 | "authors": [ 211 | { 212 | "name": "Taylor Otwell", 213 | "email": "taylor@laravel.com" 214 | } 215 | ], 216 | "description": "The Illuminate Collections package.", 217 | "homepage": "https://laravel.com", 218 | "support": { 219 | "issues": "https://github.com/laravel/framework/issues", 220 | "source": "https://github.com/laravel/framework" 221 | }, 222 | "time": "2023-06-11T21:17:10+00:00" 223 | }, 224 | { 225 | "name": "illuminate/conditionable", 226 | "version": "v9.52.16", 227 | "source": { 228 | "type": "git", 229 | "url": "https://github.com/illuminate/conditionable.git", 230 | "reference": "bea24daa0fa84b7e7b0d5b84f62c71b7e2dc3364" 231 | }, 232 | "dist": { 233 | "type": "zip", 234 | "url": "https://api.github.com/repos/illuminate/conditionable/zipball/bea24daa0fa84b7e7b0d5b84f62c71b7e2dc3364", 235 | "reference": "bea24daa0fa84b7e7b0d5b84f62c71b7e2dc3364", 236 | "shasum": "" 237 | }, 238 | "require": { 239 | "php": "^8.0.2" 240 | }, 241 | "type": "library", 242 | "extra": { 243 | "branch-alias": { 244 | "dev-master": "9.x-dev" 245 | } 246 | }, 247 | "autoload": { 248 | "psr-4": { 249 | "Illuminate\\Support\\": "" 250 | } 251 | }, 252 | "notification-url": "https://packagist.org/downloads/", 253 | "license": [ 254 | "MIT" 255 | ], 256 | "authors": [ 257 | { 258 | "name": "Taylor Otwell", 259 | "email": "taylor@laravel.com" 260 | } 261 | ], 262 | "description": "The Illuminate Conditionable package.", 263 | "homepage": "https://laravel.com", 264 | "support": { 265 | "issues": "https://github.com/laravel/framework/issues", 266 | "source": "https://github.com/laravel/framework" 267 | }, 268 | "time": "2023-02-01T21:42:32+00:00" 269 | }, 270 | { 271 | "name": "illuminate/contracts", 272 | "version": "v9.52.16", 273 | "source": { 274 | "type": "git", 275 | "url": "https://github.com/illuminate/contracts.git", 276 | "reference": "44f65d723b13823baa02ff69751a5948bde60c22" 277 | }, 278 | "dist": { 279 | "type": "zip", 280 | "url": "https://api.github.com/repos/illuminate/contracts/zipball/44f65d723b13823baa02ff69751a5948bde60c22", 281 | "reference": "44f65d723b13823baa02ff69751a5948bde60c22", 282 | "shasum": "" 283 | }, 284 | "require": { 285 | "php": "^8.0.2", 286 | "psr/container": "^1.1.1|^2.0.1", 287 | "psr/simple-cache": "^1.0|^2.0|^3.0" 288 | }, 289 | "type": "library", 290 | "extra": { 291 | "branch-alias": { 292 | "dev-master": "9.x-dev" 293 | } 294 | }, 295 | "autoload": { 296 | "psr-4": { 297 | "Illuminate\\Contracts\\": "" 298 | } 299 | }, 300 | "notification-url": "https://packagist.org/downloads/", 301 | "license": [ 302 | "MIT" 303 | ], 304 | "authors": [ 305 | { 306 | "name": "Taylor Otwell", 307 | "email": "taylor@laravel.com" 308 | } 309 | ], 310 | "description": "The Illuminate Contracts package.", 311 | "homepage": "https://laravel.com", 312 | "support": { 313 | "issues": "https://github.com/laravel/framework/issues", 314 | "source": "https://github.com/laravel/framework" 315 | }, 316 | "time": "2023-02-08T14:36:30+00:00" 317 | }, 318 | { 319 | "name": "illuminate/macroable", 320 | "version": "v9.52.16", 321 | "source": { 322 | "type": "git", 323 | "url": "https://github.com/illuminate/macroable.git", 324 | "reference": "e3bfaf6401742a9c6abca61b9b10e998e5b6449a" 325 | }, 326 | "dist": { 327 | "type": "zip", 328 | "url": "https://api.github.com/repos/illuminate/macroable/zipball/e3bfaf6401742a9c6abca61b9b10e998e5b6449a", 329 | "reference": "e3bfaf6401742a9c6abca61b9b10e998e5b6449a", 330 | "shasum": "" 331 | }, 332 | "require": { 333 | "php": "^8.0.2" 334 | }, 335 | "type": "library", 336 | "extra": { 337 | "branch-alias": { 338 | "dev-master": "9.x-dev" 339 | } 340 | }, 341 | "autoload": { 342 | "psr-4": { 343 | "Illuminate\\Support\\": "" 344 | } 345 | }, 346 | "notification-url": "https://packagist.org/downloads/", 347 | "license": [ 348 | "MIT" 349 | ], 350 | "authors": [ 351 | { 352 | "name": "Taylor Otwell", 353 | "email": "taylor@laravel.com" 354 | } 355 | ], 356 | "description": "The Illuminate Macroable package.", 357 | "homepage": "https://laravel.com", 358 | "support": { 359 | "issues": "https://github.com/laravel/framework/issues", 360 | "source": "https://github.com/laravel/framework" 361 | }, 362 | "time": "2022-08-09T13:29:29+00:00" 363 | }, 364 | { 365 | "name": "illuminate/support", 366 | "version": "v9.52.16", 367 | "source": { 368 | "type": "git", 369 | "url": "https://github.com/illuminate/support.git", 370 | "reference": "223c608dbca27232df6213f776bfe7bdeec24874" 371 | }, 372 | "dist": { 373 | "type": "zip", 374 | "url": "https://api.github.com/repos/illuminate/support/zipball/223c608dbca27232df6213f776bfe7bdeec24874", 375 | "reference": "223c608dbca27232df6213f776bfe7bdeec24874", 376 | "shasum": "" 377 | }, 378 | "require": { 379 | "doctrine/inflector": "^2.0", 380 | "ext-ctype": "*", 381 | "ext-filter": "*", 382 | "ext-mbstring": "*", 383 | "illuminate/collections": "^9.0", 384 | "illuminate/conditionable": "^9.0", 385 | "illuminate/contracts": "^9.0", 386 | "illuminate/macroable": "^9.0", 387 | "nesbot/carbon": "^2.62.1", 388 | "php": "^8.0.2", 389 | "voku/portable-ascii": "^2.0" 390 | }, 391 | "conflict": { 392 | "tightenco/collect": "<5.5.33" 393 | }, 394 | "suggest": { 395 | "illuminate/filesystem": "Required to use the composer class (^9.0).", 396 | "league/commonmark": "Required to use Str::markdown() and Stringable::markdown() (^2.0.2).", 397 | "ramsey/uuid": "Required to use Str::uuid() (^4.7).", 398 | "symfony/process": "Required to use the composer class (^6.0).", 399 | "symfony/uid": "Required to use Str::ulid() (^6.0).", 400 | "symfony/var-dumper": "Required to use the dd function (^6.0).", 401 | "vlucas/phpdotenv": "Required to use the Env class and env helper (^5.4.1)." 402 | }, 403 | "type": "library", 404 | "extra": { 405 | "branch-alias": { 406 | "dev-master": "9.x-dev" 407 | } 408 | }, 409 | "autoload": { 410 | "files": [ 411 | "helpers.php" 412 | ], 413 | "psr-4": { 414 | "Illuminate\\Support\\": "" 415 | } 416 | }, 417 | "notification-url": "https://packagist.org/downloads/", 418 | "license": [ 419 | "MIT" 420 | ], 421 | "authors": [ 422 | { 423 | "name": "Taylor Otwell", 424 | "email": "taylor@laravel.com" 425 | } 426 | ], 427 | "description": "The Illuminate Support package.", 428 | "homepage": "https://laravel.com", 429 | "support": { 430 | "issues": "https://github.com/laravel/framework/issues", 431 | "source": "https://github.com/laravel/framework" 432 | }, 433 | "time": "2023-06-11T21:11:53+00:00" 434 | }, 435 | { 436 | "name": "nesbot/carbon", 437 | "version": "2.72.5", 438 | "source": { 439 | "type": "git", 440 | "url": "https://github.com/briannesbitt/Carbon.git", 441 | "reference": "afd46589c216118ecd48ff2b95d77596af1e57ed" 442 | }, 443 | "dist": { 444 | "type": "zip", 445 | "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/afd46589c216118ecd48ff2b95d77596af1e57ed", 446 | "reference": "afd46589c216118ecd48ff2b95d77596af1e57ed", 447 | "shasum": "" 448 | }, 449 | "require": { 450 | "carbonphp/carbon-doctrine-types": "*", 451 | "ext-json": "*", 452 | "php": "^7.1.8 || ^8.0", 453 | "psr/clock": "^1.0", 454 | "symfony/polyfill-mbstring": "^1.0", 455 | "symfony/polyfill-php80": "^1.16", 456 | "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0" 457 | }, 458 | "provide": { 459 | "psr/clock-implementation": "1.0" 460 | }, 461 | "require-dev": { 462 | "doctrine/dbal": "^2.0 || ^3.1.4 || ^4.0", 463 | "doctrine/orm": "^2.7 || ^3.0", 464 | "friendsofphp/php-cs-fixer": "^3.0", 465 | "kylekatarnls/multi-tester": "^2.0", 466 | "ondrejmirtes/better-reflection": "*", 467 | "phpmd/phpmd": "^2.9", 468 | "phpstan/extension-installer": "^1.0", 469 | "phpstan/phpstan": "^0.12.99 || ^1.7.14", 470 | "phpunit/php-file-iterator": "^2.0.5 || ^3.0.6", 471 | "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20", 472 | "squizlabs/php_codesniffer": "^3.4" 473 | }, 474 | "bin": [ 475 | "bin/carbon" 476 | ], 477 | "type": "library", 478 | "extra": { 479 | "branch-alias": { 480 | "dev-master": "3.x-dev", 481 | "dev-2.x": "2.x-dev" 482 | }, 483 | "laravel": { 484 | "providers": [ 485 | "Carbon\\Laravel\\ServiceProvider" 486 | ] 487 | }, 488 | "phpstan": { 489 | "includes": [ 490 | "extension.neon" 491 | ] 492 | } 493 | }, 494 | "autoload": { 495 | "psr-4": { 496 | "Carbon\\": "src/Carbon/" 497 | } 498 | }, 499 | "notification-url": "https://packagist.org/downloads/", 500 | "license": [ 501 | "MIT" 502 | ], 503 | "authors": [ 504 | { 505 | "name": "Brian Nesbitt", 506 | "email": "brian@nesbot.com", 507 | "homepage": "https://markido.com" 508 | }, 509 | { 510 | "name": "kylekatarnls", 511 | "homepage": "https://github.com/kylekatarnls" 512 | } 513 | ], 514 | "description": "An API extension for DateTime that supports 281 different languages.", 515 | "homepage": "https://carbon.nesbot.com", 516 | "keywords": [ 517 | "date", 518 | "datetime", 519 | "time" 520 | ], 521 | "support": { 522 | "docs": "https://carbon.nesbot.com/docs", 523 | "issues": "https://github.com/briannesbitt/Carbon/issues", 524 | "source": "https://github.com/briannesbitt/Carbon" 525 | }, 526 | "funding": [ 527 | { 528 | "url": "https://github.com/sponsors/kylekatarnls", 529 | "type": "github" 530 | }, 531 | { 532 | "url": "https://opencollective.com/Carbon#sponsor", 533 | "type": "opencollective" 534 | }, 535 | { 536 | "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme", 537 | "type": "tidelift" 538 | } 539 | ], 540 | "time": "2024-06-03T19:18:41+00:00" 541 | }, 542 | { 543 | "name": "nikic/fast-route", 544 | "version": "v1.3.0", 545 | "source": { 546 | "type": "git", 547 | "url": "https://github.com/nikic/FastRoute.git", 548 | "reference": "181d480e08d9476e61381e04a71b34dc0432e812" 549 | }, 550 | "dist": { 551 | "type": "zip", 552 | "url": "https://api.github.com/repos/nikic/FastRoute/zipball/181d480e08d9476e61381e04a71b34dc0432e812", 553 | "reference": "181d480e08d9476e61381e04a71b34dc0432e812", 554 | "shasum": "" 555 | }, 556 | "require": { 557 | "php": ">=5.4.0" 558 | }, 559 | "require-dev": { 560 | "phpunit/phpunit": "^4.8.35|~5.7" 561 | }, 562 | "type": "library", 563 | "autoload": { 564 | "files": [ 565 | "src/functions.php" 566 | ], 567 | "psr-4": { 568 | "FastRoute\\": "src/" 569 | } 570 | }, 571 | "notification-url": "https://packagist.org/downloads/", 572 | "license": [ 573 | "BSD-3-Clause" 574 | ], 575 | "authors": [ 576 | { 577 | "name": "Nikita Popov", 578 | "email": "nikic@php.net" 579 | } 580 | ], 581 | "description": "Fast request router for PHP", 582 | "keywords": [ 583 | "router", 584 | "routing" 585 | ], 586 | "support": { 587 | "issues": "https://github.com/nikic/FastRoute/issues", 588 | "source": "https://github.com/nikic/FastRoute/tree/master" 589 | }, 590 | "time": "2018-02-13T20:26:39+00:00" 591 | }, 592 | { 593 | "name": "psr/clock", 594 | "version": "1.0.0", 595 | "source": { 596 | "type": "git", 597 | "url": "https://github.com/php-fig/clock.git", 598 | "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d" 599 | }, 600 | "dist": { 601 | "type": "zip", 602 | "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d", 603 | "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d", 604 | "shasum": "" 605 | }, 606 | "require": { 607 | "php": "^7.0 || ^8.0" 608 | }, 609 | "type": "library", 610 | "autoload": { 611 | "psr-4": { 612 | "Psr\\Clock\\": "src/" 613 | } 614 | }, 615 | "notification-url": "https://packagist.org/downloads/", 616 | "license": [ 617 | "MIT" 618 | ], 619 | "authors": [ 620 | { 621 | "name": "PHP-FIG", 622 | "homepage": "https://www.php-fig.org/" 623 | } 624 | ], 625 | "description": "Common interface for reading the clock.", 626 | "homepage": "https://github.com/php-fig/clock", 627 | "keywords": [ 628 | "clock", 629 | "now", 630 | "psr", 631 | "psr-20", 632 | "time" 633 | ], 634 | "support": { 635 | "issues": "https://github.com/php-fig/clock/issues", 636 | "source": "https://github.com/php-fig/clock/tree/1.0.0" 637 | }, 638 | "time": "2022-11-25T14:36:26+00:00" 639 | }, 640 | { 641 | "name": "psr/container", 642 | "version": "2.0.2", 643 | "source": { 644 | "type": "git", 645 | "url": "https://github.com/php-fig/container.git", 646 | "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" 647 | }, 648 | "dist": { 649 | "type": "zip", 650 | "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", 651 | "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", 652 | "shasum": "" 653 | }, 654 | "require": { 655 | "php": ">=7.4.0" 656 | }, 657 | "type": "library", 658 | "extra": { 659 | "branch-alias": { 660 | "dev-master": "2.0.x-dev" 661 | } 662 | }, 663 | "autoload": { 664 | "psr-4": { 665 | "Psr\\Container\\": "src/" 666 | } 667 | }, 668 | "notification-url": "https://packagist.org/downloads/", 669 | "license": [ 670 | "MIT" 671 | ], 672 | "authors": [ 673 | { 674 | "name": "PHP-FIG", 675 | "homepage": "https://www.php-fig.org/" 676 | } 677 | ], 678 | "description": "Common Container Interface (PHP FIG PSR-11)", 679 | "homepage": "https://github.com/php-fig/container", 680 | "keywords": [ 681 | "PSR-11", 682 | "container", 683 | "container-interface", 684 | "container-interop", 685 | "psr" 686 | ], 687 | "support": { 688 | "issues": "https://github.com/php-fig/container/issues", 689 | "source": "https://github.com/php-fig/container/tree/2.0.2" 690 | }, 691 | "time": "2021-11-05T16:47:00+00:00" 692 | }, 693 | { 694 | "name": "psr/simple-cache", 695 | "version": "3.0.0", 696 | "source": { 697 | "type": "git", 698 | "url": "https://github.com/php-fig/simple-cache.git", 699 | "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865" 700 | }, 701 | "dist": { 702 | "type": "zip", 703 | "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865", 704 | "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865", 705 | "shasum": "" 706 | }, 707 | "require": { 708 | "php": ">=8.0.0" 709 | }, 710 | "type": "library", 711 | "extra": { 712 | "branch-alias": { 713 | "dev-master": "3.0.x-dev" 714 | } 715 | }, 716 | "autoload": { 717 | "psr-4": { 718 | "Psr\\SimpleCache\\": "src/" 719 | } 720 | }, 721 | "notification-url": "https://packagist.org/downloads/", 722 | "license": [ 723 | "MIT" 724 | ], 725 | "authors": [ 726 | { 727 | "name": "PHP-FIG", 728 | "homepage": "https://www.php-fig.org/" 729 | } 730 | ], 731 | "description": "Common interfaces for simple caching", 732 | "keywords": [ 733 | "cache", 734 | "caching", 735 | "psr", 736 | "psr-16", 737 | "simple-cache" 738 | ], 739 | "support": { 740 | "source": "https://github.com/php-fig/simple-cache/tree/3.0.0" 741 | }, 742 | "time": "2021-10-29T13:26:27+00:00" 743 | }, 744 | { 745 | "name": "symfony/config", 746 | "version": "v6.4.8", 747 | "source": { 748 | "type": "git", 749 | "url": "https://github.com/symfony/config.git", 750 | "reference": "12e7e52515ce37191b193cf3365903c4f3951e35" 751 | }, 752 | "dist": { 753 | "type": "zip", 754 | "url": "https://api.github.com/repos/symfony/config/zipball/12e7e52515ce37191b193cf3365903c4f3951e35", 755 | "reference": "12e7e52515ce37191b193cf3365903c4f3951e35", 756 | "shasum": "" 757 | }, 758 | "require": { 759 | "php": ">=8.1", 760 | "symfony/deprecation-contracts": "^2.5|^3", 761 | "symfony/filesystem": "^5.4|^6.0|^7.0", 762 | "symfony/polyfill-ctype": "~1.8" 763 | }, 764 | "conflict": { 765 | "symfony/finder": "<5.4", 766 | "symfony/service-contracts": "<2.5" 767 | }, 768 | "require-dev": { 769 | "symfony/event-dispatcher": "^5.4|^6.0|^7.0", 770 | "symfony/finder": "^5.4|^6.0|^7.0", 771 | "symfony/messenger": "^5.4|^6.0|^7.0", 772 | "symfony/service-contracts": "^2.5|^3", 773 | "symfony/yaml": "^5.4|^6.0|^7.0" 774 | }, 775 | "type": "library", 776 | "autoload": { 777 | "psr-4": { 778 | "Symfony\\Component\\Config\\": "" 779 | }, 780 | "exclude-from-classmap": [ 781 | "/Tests/" 782 | ] 783 | }, 784 | "notification-url": "https://packagist.org/downloads/", 785 | "license": [ 786 | "MIT" 787 | ], 788 | "authors": [ 789 | { 790 | "name": "Fabien Potencier", 791 | "email": "fabien@symfony.com" 792 | }, 793 | { 794 | "name": "Symfony Community", 795 | "homepage": "https://symfony.com/contributors" 796 | } 797 | ], 798 | "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", 799 | "homepage": "https://symfony.com", 800 | "support": { 801 | "source": "https://github.com/symfony/config/tree/v6.4.8" 802 | }, 803 | "funding": [ 804 | { 805 | "url": "https://symfony.com/sponsor", 806 | "type": "custom" 807 | }, 808 | { 809 | "url": "https://github.com/fabpot", 810 | "type": "github" 811 | }, 812 | { 813 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 814 | "type": "tidelift" 815 | } 816 | ], 817 | "time": "2024-05-31T14:49:08+00:00" 818 | }, 819 | { 820 | "name": "symfony/deprecation-contracts", 821 | "version": "v3.5.0", 822 | "source": { 823 | "type": "git", 824 | "url": "https://github.com/symfony/deprecation-contracts.git", 825 | "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1" 826 | }, 827 | "dist": { 828 | "type": "zip", 829 | "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", 830 | "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", 831 | "shasum": "" 832 | }, 833 | "require": { 834 | "php": ">=8.1" 835 | }, 836 | "type": "library", 837 | "extra": { 838 | "branch-alias": { 839 | "dev-main": "3.5-dev" 840 | }, 841 | "thanks": { 842 | "name": "symfony/contracts", 843 | "url": "https://github.com/symfony/contracts" 844 | } 845 | }, 846 | "autoload": { 847 | "files": [ 848 | "function.php" 849 | ] 850 | }, 851 | "notification-url": "https://packagist.org/downloads/", 852 | "license": [ 853 | "MIT" 854 | ], 855 | "authors": [ 856 | { 857 | "name": "Nicolas Grekas", 858 | "email": "p@tchwork.com" 859 | }, 860 | { 861 | "name": "Symfony Community", 862 | "homepage": "https://symfony.com/contributors" 863 | } 864 | ], 865 | "description": "A generic function and convention to trigger deprecation notices", 866 | "homepage": "https://symfony.com", 867 | "support": { 868 | "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0" 869 | }, 870 | "funding": [ 871 | { 872 | "url": "https://symfony.com/sponsor", 873 | "type": "custom" 874 | }, 875 | { 876 | "url": "https://github.com/fabpot", 877 | "type": "github" 878 | }, 879 | { 880 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 881 | "type": "tidelift" 882 | } 883 | ], 884 | "time": "2024-04-18T09:32:20+00:00" 885 | }, 886 | { 887 | "name": "symfony/filesystem", 888 | "version": "v6.4.9", 889 | "source": { 890 | "type": "git", 891 | "url": "https://github.com/symfony/filesystem.git", 892 | "reference": "b51ef8059159330b74a4d52f68e671033c0fe463" 893 | }, 894 | "dist": { 895 | "type": "zip", 896 | "url": "https://api.github.com/repos/symfony/filesystem/zipball/b51ef8059159330b74a4d52f68e671033c0fe463", 897 | "reference": "b51ef8059159330b74a4d52f68e671033c0fe463", 898 | "shasum": "" 899 | }, 900 | "require": { 901 | "php": ">=8.1", 902 | "symfony/polyfill-ctype": "~1.8", 903 | "symfony/polyfill-mbstring": "~1.8" 904 | }, 905 | "require-dev": { 906 | "symfony/process": "^5.4|^6.4|^7.0" 907 | }, 908 | "type": "library", 909 | "autoload": { 910 | "psr-4": { 911 | "Symfony\\Component\\Filesystem\\": "" 912 | }, 913 | "exclude-from-classmap": [ 914 | "/Tests/" 915 | ] 916 | }, 917 | "notification-url": "https://packagist.org/downloads/", 918 | "license": [ 919 | "MIT" 920 | ], 921 | "authors": [ 922 | { 923 | "name": "Fabien Potencier", 924 | "email": "fabien@symfony.com" 925 | }, 926 | { 927 | "name": "Symfony Community", 928 | "homepage": "https://symfony.com/contributors" 929 | } 930 | ], 931 | "description": "Provides basic utilities for the filesystem", 932 | "homepage": "https://symfony.com", 933 | "support": { 934 | "source": "https://github.com/symfony/filesystem/tree/v6.4.9" 935 | }, 936 | "funding": [ 937 | { 938 | "url": "https://symfony.com/sponsor", 939 | "type": "custom" 940 | }, 941 | { 942 | "url": "https://github.com/fabpot", 943 | "type": "github" 944 | }, 945 | { 946 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 947 | "type": "tidelift" 948 | } 949 | ], 950 | "time": "2024-06-28T09:49:33+00:00" 951 | }, 952 | { 953 | "name": "symfony/http-foundation", 954 | "version": "v6.4.8", 955 | "source": { 956 | "type": "git", 957 | "url": "https://github.com/symfony/http-foundation.git", 958 | "reference": "27de8cc95e11db7a50b027e71caaab9024545947" 959 | }, 960 | "dist": { 961 | "type": "zip", 962 | "url": "https://api.github.com/repos/symfony/http-foundation/zipball/27de8cc95e11db7a50b027e71caaab9024545947", 963 | "reference": "27de8cc95e11db7a50b027e71caaab9024545947", 964 | "shasum": "" 965 | }, 966 | "require": { 967 | "php": ">=8.1", 968 | "symfony/deprecation-contracts": "^2.5|^3", 969 | "symfony/polyfill-mbstring": "~1.1", 970 | "symfony/polyfill-php83": "^1.27" 971 | }, 972 | "conflict": { 973 | "symfony/cache": "<6.3" 974 | }, 975 | "require-dev": { 976 | "doctrine/dbal": "^2.13.1|^3|^4", 977 | "predis/predis": "^1.1|^2.0", 978 | "symfony/cache": "^6.3|^7.0", 979 | "symfony/dependency-injection": "^5.4|^6.0|^7.0", 980 | "symfony/expression-language": "^5.4|^6.0|^7.0", 981 | "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0", 982 | "symfony/mime": "^5.4|^6.0|^7.0", 983 | "symfony/rate-limiter": "^5.4|^6.0|^7.0" 984 | }, 985 | "type": "library", 986 | "autoload": { 987 | "psr-4": { 988 | "Symfony\\Component\\HttpFoundation\\": "" 989 | }, 990 | "exclude-from-classmap": [ 991 | "/Tests/" 992 | ] 993 | }, 994 | "notification-url": "https://packagist.org/downloads/", 995 | "license": [ 996 | "MIT" 997 | ], 998 | "authors": [ 999 | { 1000 | "name": "Fabien Potencier", 1001 | "email": "fabien@symfony.com" 1002 | }, 1003 | { 1004 | "name": "Symfony Community", 1005 | "homepage": "https://symfony.com/contributors" 1006 | } 1007 | ], 1008 | "description": "Defines an object-oriented layer for the HTTP specification", 1009 | "homepage": "https://symfony.com", 1010 | "support": { 1011 | "source": "https://github.com/symfony/http-foundation/tree/v6.4.8" 1012 | }, 1013 | "funding": [ 1014 | { 1015 | "url": "https://symfony.com/sponsor", 1016 | "type": "custom" 1017 | }, 1018 | { 1019 | "url": "https://github.com/fabpot", 1020 | "type": "github" 1021 | }, 1022 | { 1023 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 1024 | "type": "tidelift" 1025 | } 1026 | ], 1027 | "time": "2024-05-31T14:49:08+00:00" 1028 | }, 1029 | { 1030 | "name": "symfony/polyfill-ctype", 1031 | "version": "v1.30.0", 1032 | "source": { 1033 | "type": "git", 1034 | "url": "https://github.com/symfony/polyfill-ctype.git", 1035 | "reference": "0424dff1c58f028c451efff2045f5d92410bd540" 1036 | }, 1037 | "dist": { 1038 | "type": "zip", 1039 | "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/0424dff1c58f028c451efff2045f5d92410bd540", 1040 | "reference": "0424dff1c58f028c451efff2045f5d92410bd540", 1041 | "shasum": "" 1042 | }, 1043 | "require": { 1044 | "php": ">=7.1" 1045 | }, 1046 | "provide": { 1047 | "ext-ctype": "*" 1048 | }, 1049 | "suggest": { 1050 | "ext-ctype": "For best performance" 1051 | }, 1052 | "type": "library", 1053 | "extra": { 1054 | "thanks": { 1055 | "name": "symfony/polyfill", 1056 | "url": "https://github.com/symfony/polyfill" 1057 | } 1058 | }, 1059 | "autoload": { 1060 | "files": [ 1061 | "bootstrap.php" 1062 | ], 1063 | "psr-4": { 1064 | "Symfony\\Polyfill\\Ctype\\": "" 1065 | } 1066 | }, 1067 | "notification-url": "https://packagist.org/downloads/", 1068 | "license": [ 1069 | "MIT" 1070 | ], 1071 | "authors": [ 1072 | { 1073 | "name": "Gert de Pagter", 1074 | "email": "BackEndTea@gmail.com" 1075 | }, 1076 | { 1077 | "name": "Symfony Community", 1078 | "homepage": "https://symfony.com/contributors" 1079 | } 1080 | ], 1081 | "description": "Symfony polyfill for ctype functions", 1082 | "homepage": "https://symfony.com", 1083 | "keywords": [ 1084 | "compatibility", 1085 | "ctype", 1086 | "polyfill", 1087 | "portable" 1088 | ], 1089 | "support": { 1090 | "source": "https://github.com/symfony/polyfill-ctype/tree/v1.30.0" 1091 | }, 1092 | "funding": [ 1093 | { 1094 | "url": "https://symfony.com/sponsor", 1095 | "type": "custom" 1096 | }, 1097 | { 1098 | "url": "https://github.com/fabpot", 1099 | "type": "github" 1100 | }, 1101 | { 1102 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 1103 | "type": "tidelift" 1104 | } 1105 | ], 1106 | "time": "2024-05-31T15:07:36+00:00" 1107 | }, 1108 | { 1109 | "name": "symfony/polyfill-mbstring", 1110 | "version": "v1.30.0", 1111 | "source": { 1112 | "type": "git", 1113 | "url": "https://github.com/symfony/polyfill-mbstring.git", 1114 | "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c" 1115 | }, 1116 | "dist": { 1117 | "type": "zip", 1118 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fd22ab50000ef01661e2a31d850ebaa297f8e03c", 1119 | "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c", 1120 | "shasum": "" 1121 | }, 1122 | "require": { 1123 | "php": ">=7.1" 1124 | }, 1125 | "provide": { 1126 | "ext-mbstring": "*" 1127 | }, 1128 | "suggest": { 1129 | "ext-mbstring": "For best performance" 1130 | }, 1131 | "type": "library", 1132 | "extra": { 1133 | "thanks": { 1134 | "name": "symfony/polyfill", 1135 | "url": "https://github.com/symfony/polyfill" 1136 | } 1137 | }, 1138 | "autoload": { 1139 | "files": [ 1140 | "bootstrap.php" 1141 | ], 1142 | "psr-4": { 1143 | "Symfony\\Polyfill\\Mbstring\\": "" 1144 | } 1145 | }, 1146 | "notification-url": "https://packagist.org/downloads/", 1147 | "license": [ 1148 | "MIT" 1149 | ], 1150 | "authors": [ 1151 | { 1152 | "name": "Nicolas Grekas", 1153 | "email": "p@tchwork.com" 1154 | }, 1155 | { 1156 | "name": "Symfony Community", 1157 | "homepage": "https://symfony.com/contributors" 1158 | } 1159 | ], 1160 | "description": "Symfony polyfill for the Mbstring extension", 1161 | "homepage": "https://symfony.com", 1162 | "keywords": [ 1163 | "compatibility", 1164 | "mbstring", 1165 | "polyfill", 1166 | "portable", 1167 | "shim" 1168 | ], 1169 | "support": { 1170 | "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.30.0" 1171 | }, 1172 | "funding": [ 1173 | { 1174 | "url": "https://symfony.com/sponsor", 1175 | "type": "custom" 1176 | }, 1177 | { 1178 | "url": "https://github.com/fabpot", 1179 | "type": "github" 1180 | }, 1181 | { 1182 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 1183 | "type": "tidelift" 1184 | } 1185 | ], 1186 | "time": "2024-06-19T12:30:46+00:00" 1187 | }, 1188 | { 1189 | "name": "symfony/polyfill-php80", 1190 | "version": "v1.30.0", 1191 | "source": { 1192 | "type": "git", 1193 | "url": "https://github.com/symfony/polyfill-php80.git", 1194 | "reference": "77fa7995ac1b21ab60769b7323d600a991a90433" 1195 | }, 1196 | "dist": { 1197 | "type": "zip", 1198 | "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/77fa7995ac1b21ab60769b7323d600a991a90433", 1199 | "reference": "77fa7995ac1b21ab60769b7323d600a991a90433", 1200 | "shasum": "" 1201 | }, 1202 | "require": { 1203 | "php": ">=7.1" 1204 | }, 1205 | "type": "library", 1206 | "extra": { 1207 | "thanks": { 1208 | "name": "symfony/polyfill", 1209 | "url": "https://github.com/symfony/polyfill" 1210 | } 1211 | }, 1212 | "autoload": { 1213 | "files": [ 1214 | "bootstrap.php" 1215 | ], 1216 | "psr-4": { 1217 | "Symfony\\Polyfill\\Php80\\": "" 1218 | }, 1219 | "classmap": [ 1220 | "Resources/stubs" 1221 | ] 1222 | }, 1223 | "notification-url": "https://packagist.org/downloads/", 1224 | "license": [ 1225 | "MIT" 1226 | ], 1227 | "authors": [ 1228 | { 1229 | "name": "Ion Bazan", 1230 | "email": "ion.bazan@gmail.com" 1231 | }, 1232 | { 1233 | "name": "Nicolas Grekas", 1234 | "email": "p@tchwork.com" 1235 | }, 1236 | { 1237 | "name": "Symfony Community", 1238 | "homepage": "https://symfony.com/contributors" 1239 | } 1240 | ], 1241 | "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", 1242 | "homepage": "https://symfony.com", 1243 | "keywords": [ 1244 | "compatibility", 1245 | "polyfill", 1246 | "portable", 1247 | "shim" 1248 | ], 1249 | "support": { 1250 | "source": "https://github.com/symfony/polyfill-php80/tree/v1.30.0" 1251 | }, 1252 | "funding": [ 1253 | { 1254 | "url": "https://symfony.com/sponsor", 1255 | "type": "custom" 1256 | }, 1257 | { 1258 | "url": "https://github.com/fabpot", 1259 | "type": "github" 1260 | }, 1261 | { 1262 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 1263 | "type": "tidelift" 1264 | } 1265 | ], 1266 | "time": "2024-05-31T15:07:36+00:00" 1267 | }, 1268 | { 1269 | "name": "symfony/polyfill-php83", 1270 | "version": "v1.30.0", 1271 | "source": { 1272 | "type": "git", 1273 | "url": "https://github.com/symfony/polyfill-php83.git", 1274 | "reference": "dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9" 1275 | }, 1276 | "dist": { 1277 | "type": "zip", 1278 | "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9", 1279 | "reference": "dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9", 1280 | "shasum": "" 1281 | }, 1282 | "require": { 1283 | "php": ">=7.1" 1284 | }, 1285 | "type": "library", 1286 | "extra": { 1287 | "thanks": { 1288 | "name": "symfony/polyfill", 1289 | "url": "https://github.com/symfony/polyfill" 1290 | } 1291 | }, 1292 | "autoload": { 1293 | "files": [ 1294 | "bootstrap.php" 1295 | ], 1296 | "psr-4": { 1297 | "Symfony\\Polyfill\\Php83\\": "" 1298 | }, 1299 | "classmap": [ 1300 | "Resources/stubs" 1301 | ] 1302 | }, 1303 | "notification-url": "https://packagist.org/downloads/", 1304 | "license": [ 1305 | "MIT" 1306 | ], 1307 | "authors": [ 1308 | { 1309 | "name": "Nicolas Grekas", 1310 | "email": "p@tchwork.com" 1311 | }, 1312 | { 1313 | "name": "Symfony Community", 1314 | "homepage": "https://symfony.com/contributors" 1315 | } 1316 | ], 1317 | "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", 1318 | "homepage": "https://symfony.com", 1319 | "keywords": [ 1320 | "compatibility", 1321 | "polyfill", 1322 | "portable", 1323 | "shim" 1324 | ], 1325 | "support": { 1326 | "source": "https://github.com/symfony/polyfill-php83/tree/v1.30.0" 1327 | }, 1328 | "funding": [ 1329 | { 1330 | "url": "https://symfony.com/sponsor", 1331 | "type": "custom" 1332 | }, 1333 | { 1334 | "url": "https://github.com/fabpot", 1335 | "type": "github" 1336 | }, 1337 | { 1338 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 1339 | "type": "tidelift" 1340 | } 1341 | ], 1342 | "time": "2024-06-19T12:35:24+00:00" 1343 | }, 1344 | { 1345 | "name": "symfony/routing", 1346 | "version": "v6.4.8", 1347 | "source": { 1348 | "type": "git", 1349 | "url": "https://github.com/symfony/routing.git", 1350 | "reference": "8a40d0f9b01f0fbb80885d3ce0ad6714fb603a58" 1351 | }, 1352 | "dist": { 1353 | "type": "zip", 1354 | "url": "https://api.github.com/repos/symfony/routing/zipball/8a40d0f9b01f0fbb80885d3ce0ad6714fb603a58", 1355 | "reference": "8a40d0f9b01f0fbb80885d3ce0ad6714fb603a58", 1356 | "shasum": "" 1357 | }, 1358 | "require": { 1359 | "php": ">=8.1", 1360 | "symfony/deprecation-contracts": "^2.5|^3" 1361 | }, 1362 | "conflict": { 1363 | "doctrine/annotations": "<1.12", 1364 | "symfony/config": "<6.2", 1365 | "symfony/dependency-injection": "<5.4", 1366 | "symfony/yaml": "<5.4" 1367 | }, 1368 | "require-dev": { 1369 | "doctrine/annotations": "^1.12|^2", 1370 | "psr/log": "^1|^2|^3", 1371 | "symfony/config": "^6.2|^7.0", 1372 | "symfony/dependency-injection": "^5.4|^6.0|^7.0", 1373 | "symfony/expression-language": "^5.4|^6.0|^7.0", 1374 | "symfony/http-foundation": "^5.4|^6.0|^7.0", 1375 | "symfony/yaml": "^5.4|^6.0|^7.0" 1376 | }, 1377 | "type": "library", 1378 | "autoload": { 1379 | "psr-4": { 1380 | "Symfony\\Component\\Routing\\": "" 1381 | }, 1382 | "exclude-from-classmap": [ 1383 | "/Tests/" 1384 | ] 1385 | }, 1386 | "notification-url": "https://packagist.org/downloads/", 1387 | "license": [ 1388 | "MIT" 1389 | ], 1390 | "authors": [ 1391 | { 1392 | "name": "Fabien Potencier", 1393 | "email": "fabien@symfony.com" 1394 | }, 1395 | { 1396 | "name": "Symfony Community", 1397 | "homepage": "https://symfony.com/contributors" 1398 | } 1399 | ], 1400 | "description": "Maps an HTTP request to a set of configuration variables", 1401 | "homepage": "https://symfony.com", 1402 | "keywords": [ 1403 | "router", 1404 | "routing", 1405 | "uri", 1406 | "url" 1407 | ], 1408 | "support": { 1409 | "source": "https://github.com/symfony/routing/tree/v6.4.8" 1410 | }, 1411 | "funding": [ 1412 | { 1413 | "url": "https://symfony.com/sponsor", 1414 | "type": "custom" 1415 | }, 1416 | { 1417 | "url": "https://github.com/fabpot", 1418 | "type": "github" 1419 | }, 1420 | { 1421 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 1422 | "type": "tidelift" 1423 | } 1424 | ], 1425 | "time": "2024-05-31T14:49:08+00:00" 1426 | }, 1427 | { 1428 | "name": "symfony/translation", 1429 | "version": "v6.4.8", 1430 | "source": { 1431 | "type": "git", 1432 | "url": "https://github.com/symfony/translation.git", 1433 | "reference": "a002933b13989fc4bd0b58e04bf7eec5210e438a" 1434 | }, 1435 | "dist": { 1436 | "type": "zip", 1437 | "url": "https://api.github.com/repos/symfony/translation/zipball/a002933b13989fc4bd0b58e04bf7eec5210e438a", 1438 | "reference": "a002933b13989fc4bd0b58e04bf7eec5210e438a", 1439 | "shasum": "" 1440 | }, 1441 | "require": { 1442 | "php": ">=8.1", 1443 | "symfony/deprecation-contracts": "^2.5|^3", 1444 | "symfony/polyfill-mbstring": "~1.0", 1445 | "symfony/translation-contracts": "^2.5|^3.0" 1446 | }, 1447 | "conflict": { 1448 | "symfony/config": "<5.4", 1449 | "symfony/console": "<5.4", 1450 | "symfony/dependency-injection": "<5.4", 1451 | "symfony/http-client-contracts": "<2.5", 1452 | "symfony/http-kernel": "<5.4", 1453 | "symfony/service-contracts": "<2.5", 1454 | "symfony/twig-bundle": "<5.4", 1455 | "symfony/yaml": "<5.4" 1456 | }, 1457 | "provide": { 1458 | "symfony/translation-implementation": "2.3|3.0" 1459 | }, 1460 | "require-dev": { 1461 | "nikic/php-parser": "^4.18|^5.0", 1462 | "psr/log": "^1|^2|^3", 1463 | "symfony/config": "^5.4|^6.0|^7.0", 1464 | "symfony/console": "^5.4|^6.0|^7.0", 1465 | "symfony/dependency-injection": "^5.4|^6.0|^7.0", 1466 | "symfony/finder": "^5.4|^6.0|^7.0", 1467 | "symfony/http-client-contracts": "^2.5|^3.0", 1468 | "symfony/http-kernel": "^5.4|^6.0|^7.0", 1469 | "symfony/intl": "^5.4|^6.0|^7.0", 1470 | "symfony/polyfill-intl-icu": "^1.21", 1471 | "symfony/routing": "^5.4|^6.0|^7.0", 1472 | "symfony/service-contracts": "^2.5|^3", 1473 | "symfony/yaml": "^5.4|^6.0|^7.0" 1474 | }, 1475 | "type": "library", 1476 | "autoload": { 1477 | "files": [ 1478 | "Resources/functions.php" 1479 | ], 1480 | "psr-4": { 1481 | "Symfony\\Component\\Translation\\": "" 1482 | }, 1483 | "exclude-from-classmap": [ 1484 | "/Tests/" 1485 | ] 1486 | }, 1487 | "notification-url": "https://packagist.org/downloads/", 1488 | "license": [ 1489 | "MIT" 1490 | ], 1491 | "authors": [ 1492 | { 1493 | "name": "Fabien Potencier", 1494 | "email": "fabien@symfony.com" 1495 | }, 1496 | { 1497 | "name": "Symfony Community", 1498 | "homepage": "https://symfony.com/contributors" 1499 | } 1500 | ], 1501 | "description": "Provides tools to internationalize your application", 1502 | "homepage": "https://symfony.com", 1503 | "support": { 1504 | "source": "https://github.com/symfony/translation/tree/v6.4.8" 1505 | }, 1506 | "funding": [ 1507 | { 1508 | "url": "https://symfony.com/sponsor", 1509 | "type": "custom" 1510 | }, 1511 | { 1512 | "url": "https://github.com/fabpot", 1513 | "type": "github" 1514 | }, 1515 | { 1516 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 1517 | "type": "tidelift" 1518 | } 1519 | ], 1520 | "time": "2024-05-31T14:49:08+00:00" 1521 | }, 1522 | { 1523 | "name": "symfony/translation-contracts", 1524 | "version": "v3.5.0", 1525 | "source": { 1526 | "type": "git", 1527 | "url": "https://github.com/symfony/translation-contracts.git", 1528 | "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a" 1529 | }, 1530 | "dist": { 1531 | "type": "zip", 1532 | "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", 1533 | "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", 1534 | "shasum": "" 1535 | }, 1536 | "require": { 1537 | "php": ">=8.1" 1538 | }, 1539 | "type": "library", 1540 | "extra": { 1541 | "branch-alias": { 1542 | "dev-main": "3.5-dev" 1543 | }, 1544 | "thanks": { 1545 | "name": "symfony/contracts", 1546 | "url": "https://github.com/symfony/contracts" 1547 | } 1548 | }, 1549 | "autoload": { 1550 | "psr-4": { 1551 | "Symfony\\Contracts\\Translation\\": "" 1552 | }, 1553 | "exclude-from-classmap": [ 1554 | "/Test/" 1555 | ] 1556 | }, 1557 | "notification-url": "https://packagist.org/downloads/", 1558 | "license": [ 1559 | "MIT" 1560 | ], 1561 | "authors": [ 1562 | { 1563 | "name": "Nicolas Grekas", 1564 | "email": "p@tchwork.com" 1565 | }, 1566 | { 1567 | "name": "Symfony Community", 1568 | "homepage": "https://symfony.com/contributors" 1569 | } 1570 | ], 1571 | "description": "Generic abstractions related to translation", 1572 | "homepage": "https://symfony.com", 1573 | "keywords": [ 1574 | "abstractions", 1575 | "contracts", 1576 | "decoupling", 1577 | "interfaces", 1578 | "interoperability", 1579 | "standards" 1580 | ], 1581 | "support": { 1582 | "source": "https://github.com/symfony/translation-contracts/tree/v3.5.0" 1583 | }, 1584 | "funding": [ 1585 | { 1586 | "url": "https://symfony.com/sponsor", 1587 | "type": "custom" 1588 | }, 1589 | { 1590 | "url": "https://github.com/fabpot", 1591 | "type": "github" 1592 | }, 1593 | { 1594 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 1595 | "type": "tidelift" 1596 | } 1597 | ], 1598 | "time": "2024-04-18T09:32:20+00:00" 1599 | }, 1600 | { 1601 | "name": "voku/portable-ascii", 1602 | "version": "2.0.1", 1603 | "source": { 1604 | "type": "git", 1605 | "url": "https://github.com/voku/portable-ascii.git", 1606 | "reference": "b56450eed252f6801410d810c8e1727224ae0743" 1607 | }, 1608 | "dist": { 1609 | "type": "zip", 1610 | "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743", 1611 | "reference": "b56450eed252f6801410d810c8e1727224ae0743", 1612 | "shasum": "" 1613 | }, 1614 | "require": { 1615 | "php": ">=7.0.0" 1616 | }, 1617 | "require-dev": { 1618 | "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0" 1619 | }, 1620 | "suggest": { 1621 | "ext-intl": "Use Intl for transliterator_transliterate() support" 1622 | }, 1623 | "type": "library", 1624 | "autoload": { 1625 | "psr-4": { 1626 | "voku\\": "src/voku/" 1627 | } 1628 | }, 1629 | "notification-url": "https://packagist.org/downloads/", 1630 | "license": [ 1631 | "MIT" 1632 | ], 1633 | "authors": [ 1634 | { 1635 | "name": "Lars Moelleken", 1636 | "homepage": "http://www.moelleken.org/" 1637 | } 1638 | ], 1639 | "description": "Portable ASCII library - performance optimized (ascii) string functions for php.", 1640 | "homepage": "https://github.com/voku/portable-ascii", 1641 | "keywords": [ 1642 | "ascii", 1643 | "clean", 1644 | "php" 1645 | ], 1646 | "support": { 1647 | "issues": "https://github.com/voku/portable-ascii/issues", 1648 | "source": "https://github.com/voku/portable-ascii/tree/2.0.1" 1649 | }, 1650 | "funding": [ 1651 | { 1652 | "url": "https://www.paypal.me/moelleken", 1653 | "type": "custom" 1654 | }, 1655 | { 1656 | "url": "https://github.com/voku", 1657 | "type": "github" 1658 | }, 1659 | { 1660 | "url": "https://opencollective.com/portable-ascii", 1661 | "type": "open_collective" 1662 | }, 1663 | { 1664 | "url": "https://www.patreon.com/voku", 1665 | "type": "patreon" 1666 | }, 1667 | { 1668 | "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii", 1669 | "type": "tidelift" 1670 | } 1671 | ], 1672 | "time": "2022-03-08T17:03:00+00:00" 1673 | } 1674 | ], 1675 | "packages-dev": [], 1676 | "aliases": [], 1677 | "minimum-stability": "stable", 1678 | "stability-flags": [], 1679 | "prefer-stable": false, 1680 | "prefer-lowest": false, 1681 | "platform": { 1682 | "php": "^8.0" 1683 | }, 1684 | "platform-dev": [], 1685 | "plugin-api-version": "2.3.0" 1686 | } 1687 | --------------------------------------------------------------------------------