├── LICENSE ├── bin └── eloquent-generator.php ├── bootstrap └── app.php ├── composer.json ├── composer.lock ├── eloquent-generator └── src ├── App.php ├── CodeBuilder.php ├── Commands ├── Concerns │ ├── DatabaseConnection.php │ └── Environment.php └── GenerateCommand.php ├── Engines └── TemplateEngine.php ├── Generators ├── CodeGenerator.php ├── CommentGenerator.php ├── PrimaryKeyGenerator.php └── PropertyGenerator.php ├── Listeners ├── BootstrapLogger.php └── BootstrapVersion.php ├── Providers ├── BaseServiceProvider.php └── EngineProvider.php ├── Resolver.php └── templates └── model.txt /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2018, 104 Corporation 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | * Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | * Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | * Neither the name of the copyright holder nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /bin/eloquent-generator.php: -------------------------------------------------------------------------------- 1 | run(); 5 | -------------------------------------------------------------------------------- /bootstrap/app.php: -------------------------------------------------------------------------------- 1 | setupDatabase([]) 18 | ->setupView(dirname(__DIR__) . '/src/templates', $vfs->url()) 19 | ->setupProvider(BaseServiceProvider::class) 20 | ->setupProvider(EngineProvider::class) 21 | ->setupProvider(CodegenerServiceProvider::class) 22 | ->bootstrap(); 23 | 24 | $app = new IlluminateApplication($container, $container->make('events'), 'dev-master'); 25 | $app->add(new GenerateCommand($container)); 26 | $app->setDefaultCommand('eloquent-generator'); 27 | 28 | return $app; 29 | })(); 30 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "104corp/eloquent-generator", 3 | "description": "Laravel Eloquent Generator", 4 | "type": "library", 5 | "license": "BSD-3-Clause", 6 | "homepage": "https://github.com/104corp/laravel-eloquent-generator", 7 | "support": { 8 | "issues": "https://github.com/104corp/laravel-eloquent-generator/issues" 9 | }, 10 | "require": { 11 | "php": ">=7.1", 12 | "doctrine/dbal": "^2.5.13", 13 | "hassankhan/config": "^1.0", 14 | "illuminate/console": "^5.8", 15 | "illuminate/database": "^5.8", 16 | "illuminate/events": "^5.8", 17 | "illuminate/log": "^5.8", 18 | "illuminate/view": "^5.8", 19 | "laravel-bridge/scratch": "^0.5.2", 20 | "mikey179/vfsstream": "^1.6", 21 | "mileschou/codegener": "^1.0.2", 22 | "vlucas/phpdotenv": "^3", 23 | "xethron/migrations-generator": "^2.0" 24 | }, 25 | "require-dev": { 26 | "mockery/mockery": "^1.3", 27 | "phpunit/phpunit": "^7.5", 28 | "psy/psysh": "^0.9.12", 29 | "squizlabs/php_codesniffer": "^3.5" 30 | }, 31 | "autoload": { 32 | "psr-4": { 33 | "Corp104\\Eloquent\\Generator\\": "src" 34 | } 35 | }, 36 | "autoload-dev": { 37 | "psr-4": { 38 | "Tests\\": "tests" 39 | } 40 | }, 41 | "bin": [ 42 | "eloquent-generator" 43 | ], 44 | "config": { 45 | "sort-packages": true, 46 | "platform": { 47 | "PHP": "7.1.3" 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /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": "7752b423fe87abc472b9e6b24173b151", 8 | "packages": [ 9 | { 10 | "name": "doctrine/cache", 11 | "version": "1.10.0", 12 | "source": { 13 | "type": "git", 14 | "url": "https://github.com/doctrine/cache.git", 15 | "reference": "382e7f4db9a12dc6c19431743a2b096041bcdd62" 16 | }, 17 | "dist": { 18 | "type": "zip", 19 | "url": "https://api.github.com/repos/doctrine/cache/zipball/382e7f4db9a12dc6c19431743a2b096041bcdd62", 20 | "reference": "382e7f4db9a12dc6c19431743a2b096041bcdd62", 21 | "shasum": "" 22 | }, 23 | "require": { 24 | "php": "~7.1" 25 | }, 26 | "conflict": { 27 | "doctrine/common": ">2.2,<2.4" 28 | }, 29 | "require-dev": { 30 | "alcaeus/mongo-php-adapter": "^1.1", 31 | "doctrine/coding-standard": "^6.0", 32 | "mongodb/mongodb": "^1.1", 33 | "phpunit/phpunit": "^7.0", 34 | "predis/predis": "~1.0" 35 | }, 36 | "suggest": { 37 | "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" 38 | }, 39 | "type": "library", 40 | "extra": { 41 | "branch-alias": { 42 | "dev-master": "1.9.x-dev" 43 | } 44 | }, 45 | "autoload": { 46 | "psr-4": { 47 | "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" 48 | } 49 | }, 50 | "notification-url": "https://packagist.org/downloads/", 51 | "license": [ 52 | "MIT" 53 | ], 54 | "authors": [ 55 | { 56 | "name": "Guilherme Blanco", 57 | "email": "guilhermeblanco@gmail.com" 58 | }, 59 | { 60 | "name": "Roman Borschel", 61 | "email": "roman@code-factory.org" 62 | }, 63 | { 64 | "name": "Benjamin Eberlei", 65 | "email": "kontakt@beberlei.de" 66 | }, 67 | { 68 | "name": "Jonathan Wage", 69 | "email": "jonwage@gmail.com" 70 | }, 71 | { 72 | "name": "Johannes Schmitt", 73 | "email": "schmittjoh@gmail.com" 74 | } 75 | ], 76 | "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.", 77 | "homepage": "https://www.doctrine-project.org/projects/cache.html", 78 | "keywords": [ 79 | "abstraction", 80 | "apcu", 81 | "cache", 82 | "caching", 83 | "couchdb", 84 | "memcached", 85 | "php", 86 | "redis", 87 | "xcache" 88 | ], 89 | "time": "2019-11-29T15:36:20+00:00" 90 | }, 91 | { 92 | "name": "doctrine/dbal", 93 | "version": "v2.9.3", 94 | "source": { 95 | "type": "git", 96 | "url": "https://github.com/doctrine/dbal.git", 97 | "reference": "7345cd59edfa2036eb0fa4264b77ae2576842035" 98 | }, 99 | "dist": { 100 | "type": "zip", 101 | "url": "https://api.github.com/repos/doctrine/dbal/zipball/7345cd59edfa2036eb0fa4264b77ae2576842035", 102 | "reference": "7345cd59edfa2036eb0fa4264b77ae2576842035", 103 | "shasum": "" 104 | }, 105 | "require": { 106 | "doctrine/cache": "^1.0", 107 | "doctrine/event-manager": "^1.0", 108 | "ext-pdo": "*", 109 | "php": "^7.1" 110 | }, 111 | "require-dev": { 112 | "doctrine/coding-standard": "^5.0", 113 | "jetbrains/phpstorm-stubs": "^2018.1.2", 114 | "phpstan/phpstan": "^0.10.1", 115 | "phpunit/phpunit": "^7.4", 116 | "symfony/console": "^2.0.5|^3.0|^4.0", 117 | "symfony/phpunit-bridge": "^3.4.5|^4.0.5" 118 | }, 119 | "suggest": { 120 | "symfony/console": "For helpful console commands such as SQL execution and import of files." 121 | }, 122 | "bin": [ 123 | "bin/doctrine-dbal" 124 | ], 125 | "type": "library", 126 | "extra": { 127 | "branch-alias": { 128 | "dev-master": "2.9.x-dev", 129 | "dev-develop": "3.0.x-dev" 130 | } 131 | }, 132 | "autoload": { 133 | "psr-4": { 134 | "Doctrine\\DBAL\\": "lib/Doctrine/DBAL" 135 | } 136 | }, 137 | "notification-url": "https://packagist.org/downloads/", 138 | "license": [ 139 | "MIT" 140 | ], 141 | "authors": [ 142 | { 143 | "name": "Guilherme Blanco", 144 | "email": "guilhermeblanco@gmail.com" 145 | }, 146 | { 147 | "name": "Roman Borschel", 148 | "email": "roman@code-factory.org" 149 | }, 150 | { 151 | "name": "Benjamin Eberlei", 152 | "email": "kontakt@beberlei.de" 153 | }, 154 | { 155 | "name": "Jonathan Wage", 156 | "email": "jonwage@gmail.com" 157 | } 158 | ], 159 | "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.", 160 | "homepage": "https://www.doctrine-project.org/projects/dbal.html", 161 | "keywords": [ 162 | "abstraction", 163 | "database", 164 | "dbal", 165 | "mysql", 166 | "persistence", 167 | "pgsql", 168 | "php", 169 | "queryobject" 170 | ], 171 | "time": "2019-11-02T22:19:34+00:00" 172 | }, 173 | { 174 | "name": "doctrine/event-manager", 175 | "version": "1.1.0", 176 | "source": { 177 | "type": "git", 178 | "url": "https://github.com/doctrine/event-manager.git", 179 | "reference": "629572819973f13486371cb611386eb17851e85c" 180 | }, 181 | "dist": { 182 | "type": "zip", 183 | "url": "https://api.github.com/repos/doctrine/event-manager/zipball/629572819973f13486371cb611386eb17851e85c", 184 | "reference": "629572819973f13486371cb611386eb17851e85c", 185 | "shasum": "" 186 | }, 187 | "require": { 188 | "php": "^7.1" 189 | }, 190 | "conflict": { 191 | "doctrine/common": "<2.9@dev" 192 | }, 193 | "require-dev": { 194 | "doctrine/coding-standard": "^6.0", 195 | "phpunit/phpunit": "^7.0" 196 | }, 197 | "type": "library", 198 | "extra": { 199 | "branch-alias": { 200 | "dev-master": "1.0.x-dev" 201 | } 202 | }, 203 | "autoload": { 204 | "psr-4": { 205 | "Doctrine\\Common\\": "lib/Doctrine/Common" 206 | } 207 | }, 208 | "notification-url": "https://packagist.org/downloads/", 209 | "license": [ 210 | "MIT" 211 | ], 212 | "authors": [ 213 | { 214 | "name": "Guilherme Blanco", 215 | "email": "guilhermeblanco@gmail.com" 216 | }, 217 | { 218 | "name": "Roman Borschel", 219 | "email": "roman@code-factory.org" 220 | }, 221 | { 222 | "name": "Benjamin Eberlei", 223 | "email": "kontakt@beberlei.de" 224 | }, 225 | { 226 | "name": "Jonathan Wage", 227 | "email": "jonwage@gmail.com" 228 | }, 229 | { 230 | "name": "Johannes Schmitt", 231 | "email": "schmittjoh@gmail.com" 232 | }, 233 | { 234 | "name": "Marco Pivetta", 235 | "email": "ocramius@gmail.com" 236 | } 237 | ], 238 | "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", 239 | "homepage": "https://www.doctrine-project.org/projects/event-manager.html", 240 | "keywords": [ 241 | "event", 242 | "event dispatcher", 243 | "event manager", 244 | "event system", 245 | "events" 246 | ], 247 | "time": "2019-11-10T09:48:07+00:00" 248 | }, 249 | { 250 | "name": "doctrine/inflector", 251 | "version": "1.3.1", 252 | "source": { 253 | "type": "git", 254 | "url": "https://github.com/doctrine/inflector.git", 255 | "reference": "ec3a55242203ffa6a4b27c58176da97ff0a7aec1" 256 | }, 257 | "dist": { 258 | "type": "zip", 259 | "url": "https://api.github.com/repos/doctrine/inflector/zipball/ec3a55242203ffa6a4b27c58176da97ff0a7aec1", 260 | "reference": "ec3a55242203ffa6a4b27c58176da97ff0a7aec1", 261 | "shasum": "" 262 | }, 263 | "require": { 264 | "php": "^7.1" 265 | }, 266 | "require-dev": { 267 | "phpunit/phpunit": "^6.2" 268 | }, 269 | "type": "library", 270 | "extra": { 271 | "branch-alias": { 272 | "dev-master": "1.3.x-dev" 273 | } 274 | }, 275 | "autoload": { 276 | "psr-4": { 277 | "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector" 278 | } 279 | }, 280 | "notification-url": "https://packagist.org/downloads/", 281 | "license": [ 282 | "MIT" 283 | ], 284 | "authors": [ 285 | { 286 | "name": "Guilherme Blanco", 287 | "email": "guilhermeblanco@gmail.com" 288 | }, 289 | { 290 | "name": "Roman Borschel", 291 | "email": "roman@code-factory.org" 292 | }, 293 | { 294 | "name": "Benjamin Eberlei", 295 | "email": "kontakt@beberlei.de" 296 | }, 297 | { 298 | "name": "Jonathan Wage", 299 | "email": "jonwage@gmail.com" 300 | }, 301 | { 302 | "name": "Johannes Schmitt", 303 | "email": "schmittjoh@gmail.com" 304 | } 305 | ], 306 | "description": "Common String Manipulations with regard to casing and singular/plural rules.", 307 | "homepage": "http://www.doctrine-project.org", 308 | "keywords": [ 309 | "inflection", 310 | "pluralize", 311 | "singularize", 312 | "string" 313 | ], 314 | "time": "2019-10-30T19:59:35+00:00" 315 | }, 316 | { 317 | "name": "hassankhan/config", 318 | "version": "1.1.0", 319 | "source": { 320 | "type": "git", 321 | "url": "https://github.com/hassankhan/config.git", 322 | "reference": "930556337783acfd95bde723354119178db01d10" 323 | }, 324 | "dist": { 325 | "type": "zip", 326 | "url": "https://api.github.com/repos/hassankhan/config/zipball/930556337783acfd95bde723354119178db01d10", 327 | "reference": "930556337783acfd95bde723354119178db01d10", 328 | "shasum": "" 329 | }, 330 | "require": { 331 | "php": ">=5.5.9" 332 | }, 333 | "require-dev": { 334 | "phpunit/phpunit": "~4.0", 335 | "scrutinizer/ocular": "~1.1", 336 | "squizlabs/php_codesniffer": "~2.2", 337 | "symfony/yaml": "~3.4" 338 | }, 339 | "suggest": { 340 | "symfony/yaml": "~3.4" 341 | }, 342 | "type": "library", 343 | "autoload": { 344 | "psr-4": { 345 | "Noodlehaus\\": "src" 346 | } 347 | }, 348 | "notification-url": "https://packagist.org/downloads/", 349 | "license": [ 350 | "MIT" 351 | ], 352 | "authors": [ 353 | { 354 | "name": "Hassan Khan", 355 | "homepage": "http://hassankhan.me/", 356 | "role": "Developer" 357 | } 358 | ], 359 | "description": "Lightweight configuration file loader that supports PHP, INI, XML, JSON, and YAML files", 360 | "homepage": "http://hassankhan.me/config/", 361 | "keywords": [ 362 | "config", 363 | "configuration", 364 | "ini", 365 | "json", 366 | "microphp", 367 | "unframework", 368 | "xml", 369 | "yaml", 370 | "yml" 371 | ], 372 | "time": "2018-08-22T14:18:52+00:00" 373 | }, 374 | { 375 | "name": "illuminate/console", 376 | "version": "v5.8.36", 377 | "source": { 378 | "type": "git", 379 | "url": "https://github.com/illuminate/console.git", 380 | "reference": "e6e4708e6c6baaf92120848e885855ab3d76f30f" 381 | }, 382 | "dist": { 383 | "type": "zip", 384 | "url": "https://api.github.com/repos/illuminate/console/zipball/e6e4708e6c6baaf92120848e885855ab3d76f30f", 385 | "reference": "e6e4708e6c6baaf92120848e885855ab3d76f30f", 386 | "shasum": "" 387 | }, 388 | "require": { 389 | "illuminate/contracts": "5.8.*", 390 | "illuminate/support": "5.8.*", 391 | "php": "^7.1.3", 392 | "symfony/console": "^4.2", 393 | "symfony/process": "^4.2" 394 | }, 395 | "suggest": { 396 | "dragonmantank/cron-expression": "Required to use scheduling component (^2.0).", 397 | "guzzlehttp/guzzle": "Required to use the ping methods on schedules (^6.0).", 398 | "illuminate/filesystem": "Required to use the generator command (5.8.*)" 399 | }, 400 | "type": "library", 401 | "extra": { 402 | "branch-alias": { 403 | "dev-master": "5.8-dev" 404 | } 405 | }, 406 | "autoload": { 407 | "psr-4": { 408 | "Illuminate\\Console\\": "" 409 | } 410 | }, 411 | "notification-url": "https://packagist.org/downloads/", 412 | "license": [ 413 | "MIT" 414 | ], 415 | "authors": [ 416 | { 417 | "name": "Taylor Otwell", 418 | "email": "taylor@laravel.com" 419 | } 420 | ], 421 | "description": "The Illuminate Console package.", 422 | "homepage": "https://laravel.com", 423 | "time": "2019-08-12T13:08:28+00:00" 424 | }, 425 | { 426 | "name": "illuminate/container", 427 | "version": "v5.8.36", 428 | "source": { 429 | "type": "git", 430 | "url": "https://github.com/illuminate/container.git", 431 | "reference": "b42e5ef939144b77f78130918da0ce2d9ee16574" 432 | }, 433 | "dist": { 434 | "type": "zip", 435 | "url": "https://api.github.com/repos/illuminate/container/zipball/b42e5ef939144b77f78130918da0ce2d9ee16574", 436 | "reference": "b42e5ef939144b77f78130918da0ce2d9ee16574", 437 | "shasum": "" 438 | }, 439 | "require": { 440 | "illuminate/contracts": "5.8.*", 441 | "illuminate/support": "5.8.*", 442 | "php": "^7.1.3", 443 | "psr/container": "^1.0" 444 | }, 445 | "type": "library", 446 | "extra": { 447 | "branch-alias": { 448 | "dev-master": "5.8-dev" 449 | } 450 | }, 451 | "autoload": { 452 | "psr-4": { 453 | "Illuminate\\Container\\": "" 454 | } 455 | }, 456 | "notification-url": "https://packagist.org/downloads/", 457 | "license": [ 458 | "MIT" 459 | ], 460 | "authors": [ 461 | { 462 | "name": "Taylor Otwell", 463 | "email": "taylor@laravel.com" 464 | } 465 | ], 466 | "description": "The Illuminate Container package.", 467 | "homepage": "https://laravel.com", 468 | "time": "2019-08-20T02:00:23+00:00" 469 | }, 470 | { 471 | "name": "illuminate/contracts", 472 | "version": "v5.8.36", 473 | "source": { 474 | "type": "git", 475 | "url": "https://github.com/illuminate/contracts.git", 476 | "reference": "00fc6afee788fa07c311b0650ad276585f8aef96" 477 | }, 478 | "dist": { 479 | "type": "zip", 480 | "url": "https://api.github.com/repos/illuminate/contracts/zipball/00fc6afee788fa07c311b0650ad276585f8aef96", 481 | "reference": "00fc6afee788fa07c311b0650ad276585f8aef96", 482 | "shasum": "" 483 | }, 484 | "require": { 485 | "php": "^7.1.3", 486 | "psr/container": "^1.0", 487 | "psr/simple-cache": "^1.0" 488 | }, 489 | "type": "library", 490 | "extra": { 491 | "branch-alias": { 492 | "dev-master": "5.8-dev" 493 | } 494 | }, 495 | "autoload": { 496 | "psr-4": { 497 | "Illuminate\\Contracts\\": "" 498 | } 499 | }, 500 | "notification-url": "https://packagist.org/downloads/", 501 | "license": [ 502 | "MIT" 503 | ], 504 | "authors": [ 505 | { 506 | "name": "Taylor Otwell", 507 | "email": "taylor@laravel.com" 508 | } 509 | ], 510 | "description": "The Illuminate Contracts package.", 511 | "homepage": "https://laravel.com", 512 | "time": "2019-07-30T13:57:21+00:00" 513 | }, 514 | { 515 | "name": "illuminate/database", 516 | "version": "v5.8.36", 517 | "source": { 518 | "type": "git", 519 | "url": "https://github.com/illuminate/database.git", 520 | "reference": "ac9ae2d82b8a6137400f17b3eea258be3518daa9" 521 | }, 522 | "dist": { 523 | "type": "zip", 524 | "url": "https://api.github.com/repos/illuminate/database/zipball/ac9ae2d82b8a6137400f17b3eea258be3518daa9", 525 | "reference": "ac9ae2d82b8a6137400f17b3eea258be3518daa9", 526 | "shasum": "" 527 | }, 528 | "require": { 529 | "ext-json": "*", 530 | "illuminate/container": "5.8.*", 531 | "illuminate/contracts": "5.8.*", 532 | "illuminate/support": "5.8.*", 533 | "php": "^7.1.3" 534 | }, 535 | "suggest": { 536 | "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.6).", 537 | "fzaninotto/faker": "Required to use the eloquent factory builder (^1.4).", 538 | "illuminate/console": "Required to use the database commands (5.8.*).", 539 | "illuminate/events": "Required to use the observers with Eloquent (5.8.*).", 540 | "illuminate/filesystem": "Required to use the migrations (5.8.*).", 541 | "illuminate/pagination": "Required to paginate the result set (5.8.*)." 542 | }, 543 | "type": "library", 544 | "extra": { 545 | "branch-alias": { 546 | "dev-master": "5.8-dev" 547 | } 548 | }, 549 | "autoload": { 550 | "psr-4": { 551 | "Illuminate\\Database\\": "" 552 | } 553 | }, 554 | "notification-url": "https://packagist.org/downloads/", 555 | "license": [ 556 | "MIT" 557 | ], 558 | "authors": [ 559 | { 560 | "name": "Taylor Otwell", 561 | "email": "taylor@laravel.com" 562 | } 563 | ], 564 | "description": "The Illuminate Database package.", 565 | "homepage": "https://laravel.com", 566 | "keywords": [ 567 | "database", 568 | "laravel", 569 | "orm", 570 | "sql" 571 | ], 572 | "time": "2019-10-03T16:22:57+00:00" 573 | }, 574 | { 575 | "name": "illuminate/events", 576 | "version": "v5.8.36", 577 | "source": { 578 | "type": "git", 579 | "url": "https://github.com/illuminate/events.git", 580 | "reference": "a85d7c273bc4e3357000c5fc4812374598515de3" 581 | }, 582 | "dist": { 583 | "type": "zip", 584 | "url": "https://api.github.com/repos/illuminate/events/zipball/a85d7c273bc4e3357000c5fc4812374598515de3", 585 | "reference": "a85d7c273bc4e3357000c5fc4812374598515de3", 586 | "shasum": "" 587 | }, 588 | "require": { 589 | "illuminate/container": "5.8.*", 590 | "illuminate/contracts": "5.8.*", 591 | "illuminate/support": "5.8.*", 592 | "php": "^7.1.3" 593 | }, 594 | "type": "library", 595 | "extra": { 596 | "branch-alias": { 597 | "dev-master": "5.8-dev" 598 | } 599 | }, 600 | "autoload": { 601 | "psr-4": { 602 | "Illuminate\\Events\\": "" 603 | } 604 | }, 605 | "notification-url": "https://packagist.org/downloads/", 606 | "license": [ 607 | "MIT" 608 | ], 609 | "authors": [ 610 | { 611 | "name": "Taylor Otwell", 612 | "email": "taylor@laravel.com" 613 | } 614 | ], 615 | "description": "The Illuminate Events package.", 616 | "homepage": "https://laravel.com", 617 | "time": "2019-02-18T18:37:54+00:00" 618 | }, 619 | { 620 | "name": "illuminate/filesystem", 621 | "version": "v5.8.36", 622 | "source": { 623 | "type": "git", 624 | "url": "https://github.com/illuminate/filesystem.git", 625 | "reference": "494ba903402d64ec49c8d869ab61791db34b2288" 626 | }, 627 | "dist": { 628 | "type": "zip", 629 | "url": "https://api.github.com/repos/illuminate/filesystem/zipball/494ba903402d64ec49c8d869ab61791db34b2288", 630 | "reference": "494ba903402d64ec49c8d869ab61791db34b2288", 631 | "shasum": "" 632 | }, 633 | "require": { 634 | "illuminate/contracts": "5.8.*", 635 | "illuminate/support": "5.8.*", 636 | "php": "^7.1.3", 637 | "symfony/finder": "^4.2" 638 | }, 639 | "suggest": { 640 | "league/flysystem": "Required to use the Flysystem local and FTP drivers (^1.0).", 641 | "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^1.0).", 642 | "league/flysystem-cached-adapter": "Required to use the Flysystem cache (^1.0).", 643 | "league/flysystem-rackspace": "Required to use the Flysystem Rackspace driver (^1.0).", 644 | "league/flysystem-sftp": "Required to use the Flysystem SFTP driver (^1.0)." 645 | }, 646 | "type": "library", 647 | "extra": { 648 | "branch-alias": { 649 | "dev-master": "5.8-dev" 650 | } 651 | }, 652 | "autoload": { 653 | "psr-4": { 654 | "Illuminate\\Filesystem\\": "" 655 | } 656 | }, 657 | "notification-url": "https://packagist.org/downloads/", 658 | "license": [ 659 | "MIT" 660 | ], 661 | "authors": [ 662 | { 663 | "name": "Taylor Otwell", 664 | "email": "taylor@laravel.com" 665 | } 666 | ], 667 | "description": "The Illuminate Filesystem package.", 668 | "homepage": "https://laravel.com", 669 | "time": "2019-08-14T13:38:15+00:00" 670 | }, 671 | { 672 | "name": "illuminate/log", 673 | "version": "v5.8.36", 674 | "source": { 675 | "type": "git", 676 | "url": "https://github.com/illuminate/log.git", 677 | "reference": "1d23931e0ff74fa461fc44dc1594c66f8f6ad36b" 678 | }, 679 | "dist": { 680 | "type": "zip", 681 | "url": "https://api.github.com/repos/illuminate/log/zipball/1d23931e0ff74fa461fc44dc1594c66f8f6ad36b", 682 | "reference": "1d23931e0ff74fa461fc44dc1594c66f8f6ad36b", 683 | "shasum": "" 684 | }, 685 | "require": { 686 | "illuminate/contracts": "5.8.*", 687 | "illuminate/support": "5.8.*", 688 | "monolog/monolog": "^1.12", 689 | "php": "^7.1.3" 690 | }, 691 | "type": "library", 692 | "extra": { 693 | "branch-alias": { 694 | "dev-master": "5.8-dev" 695 | } 696 | }, 697 | "autoload": { 698 | "psr-4": { 699 | "Illuminate\\Log\\": "" 700 | } 701 | }, 702 | "notification-url": "https://packagist.org/downloads/", 703 | "license": [ 704 | "MIT" 705 | ], 706 | "authors": [ 707 | { 708 | "name": "Taylor Otwell", 709 | "email": "taylor@laravel.com" 710 | } 711 | ], 712 | "description": "The Illuminate Log package.", 713 | "homepage": "https://laravel.com", 714 | "time": "2019-09-03T12:41:07+00:00" 715 | }, 716 | { 717 | "name": "illuminate/support", 718 | "version": "v5.8.36", 719 | "source": { 720 | "type": "git", 721 | "url": "https://github.com/illuminate/support.git", 722 | "reference": "df4af6a32908f1d89d74348624b57e3233eea247" 723 | }, 724 | "dist": { 725 | "type": "zip", 726 | "url": "https://api.github.com/repos/illuminate/support/zipball/df4af6a32908f1d89d74348624b57e3233eea247", 727 | "reference": "df4af6a32908f1d89d74348624b57e3233eea247", 728 | "shasum": "" 729 | }, 730 | "require": { 731 | "doctrine/inflector": "^1.1", 732 | "ext-json": "*", 733 | "ext-mbstring": "*", 734 | "illuminate/contracts": "5.8.*", 735 | "nesbot/carbon": "^1.26.3 || ^2.0", 736 | "php": "^7.1.3" 737 | }, 738 | "conflict": { 739 | "tightenco/collect": "<5.5.33" 740 | }, 741 | "suggest": { 742 | "illuminate/filesystem": "Required to use the composer class (5.8.*).", 743 | "moontoast/math": "Required to use ordered UUIDs (^1.1).", 744 | "ramsey/uuid": "Required to use Str::uuid() (^3.7).", 745 | "symfony/process": "Required to use the composer class (^4.2).", 746 | "symfony/var-dumper": "Required to use the dd function (^4.2).", 747 | "vlucas/phpdotenv": "Required to use the env helper (^3.3)." 748 | }, 749 | "type": "library", 750 | "extra": { 751 | "branch-alias": { 752 | "dev-master": "5.8-dev" 753 | } 754 | }, 755 | "autoload": { 756 | "psr-4": { 757 | "Illuminate\\Support\\": "" 758 | }, 759 | "files": [ 760 | "helpers.php" 761 | ] 762 | }, 763 | "notification-url": "https://packagist.org/downloads/", 764 | "license": [ 765 | "MIT" 766 | ], 767 | "authors": [ 768 | { 769 | "name": "Taylor Otwell", 770 | "email": "taylor@laravel.com" 771 | } 772 | ], 773 | "description": "The Illuminate Support package.", 774 | "homepage": "https://laravel.com", 775 | "time": "2019-12-12T14:16:47+00:00" 776 | }, 777 | { 778 | "name": "illuminate/view", 779 | "version": "v5.8.36", 780 | "source": { 781 | "type": "git", 782 | "url": "https://github.com/illuminate/view.git", 783 | "reference": "c859919bc3be97a3f114377d5d812f047b8ea90d" 784 | }, 785 | "dist": { 786 | "type": "zip", 787 | "url": "https://api.github.com/repos/illuminate/view/zipball/c859919bc3be97a3f114377d5d812f047b8ea90d", 788 | "reference": "c859919bc3be97a3f114377d5d812f047b8ea90d", 789 | "shasum": "" 790 | }, 791 | "require": { 792 | "ext-json": "*", 793 | "illuminate/container": "5.8.*", 794 | "illuminate/contracts": "5.8.*", 795 | "illuminate/events": "5.8.*", 796 | "illuminate/filesystem": "5.8.*", 797 | "illuminate/support": "5.8.*", 798 | "php": "^7.1.3", 799 | "symfony/debug": "^4.2" 800 | }, 801 | "type": "library", 802 | "extra": { 803 | "branch-alias": { 804 | "dev-master": "5.8-dev" 805 | } 806 | }, 807 | "autoload": { 808 | "psr-4": { 809 | "Illuminate\\View\\": "" 810 | } 811 | }, 812 | "notification-url": "https://packagist.org/downloads/", 813 | "license": [ 814 | "MIT" 815 | ], 816 | "authors": [ 817 | { 818 | "name": "Taylor Otwell", 819 | "email": "taylor@laravel.com" 820 | } 821 | ], 822 | "description": "The Illuminate View package.", 823 | "homepage": "https://laravel.com", 824 | "time": "2019-06-20T13:13:59+00:00" 825 | }, 826 | { 827 | "name": "kylekatarnls/update-helper", 828 | "version": "1.2.0", 829 | "source": { 830 | "type": "git", 831 | "url": "https://github.com/kylekatarnls/update-helper.git", 832 | "reference": "5786fa188e0361b9adf9e8199d7280d1b2db165e" 833 | }, 834 | "dist": { 835 | "type": "zip", 836 | "url": "https://api.github.com/repos/kylekatarnls/update-helper/zipball/5786fa188e0361b9adf9e8199d7280d1b2db165e", 837 | "reference": "5786fa188e0361b9adf9e8199d7280d1b2db165e", 838 | "shasum": "" 839 | }, 840 | "require": { 841 | "composer-plugin-api": "^1.1.0 || ^2.0.0", 842 | "php": ">=5.3.0" 843 | }, 844 | "require-dev": { 845 | "codeclimate/php-test-reporter": "dev-master", 846 | "composer/composer": "2.0.x-dev || ^2.0.0-dev", 847 | "phpunit/phpunit": ">=4.8.35 <6.0" 848 | }, 849 | "type": "composer-plugin", 850 | "extra": { 851 | "class": "UpdateHelper\\ComposerPlugin" 852 | }, 853 | "autoload": { 854 | "psr-0": { 855 | "UpdateHelper\\": "src/" 856 | } 857 | }, 858 | "notification-url": "https://packagist.org/downloads/", 859 | "license": [ 860 | "MIT" 861 | ], 862 | "authors": [ 863 | { 864 | "name": "Kyle", 865 | "email": "kylekatarnls@gmail.com" 866 | } 867 | ], 868 | "description": "Update helper", 869 | "time": "2019-07-29T11:03:54+00:00" 870 | }, 871 | { 872 | "name": "laravel-bridge/scratch", 873 | "version": "v0.5.2", 874 | "source": { 875 | "type": "git", 876 | "url": "https://github.com/laravel-bridge/scratch.git", 877 | "reference": "a0d2c2538ef06c01ef46109920751be96c0daaf2" 878 | }, 879 | "dist": { 880 | "type": "zip", 881 | "url": "https://api.github.com/repos/laravel-bridge/scratch/zipball/a0d2c2538ef06c01ef46109920751be96c0daaf2", 882 | "reference": "a0d2c2538ef06c01ef46109920751be96c0daaf2", 883 | "shasum": "" 884 | }, 885 | "require": { 886 | "illuminate/container": "^5.6 | ^6", 887 | "illuminate/support": "^5.6 | ^6", 888 | "php": ">=7.1" 889 | }, 890 | "require-dev": { 891 | "ext-pdo": "*", 892 | "illuminate/database": "^5.6 | ^6", 893 | "illuminate/events": "^5.6 | ^6", 894 | "illuminate/filesystem": "^5.6 | ^6", 895 | "illuminate/http": "^5.6 | ^6", 896 | "illuminate/log": "^5.6 | ^6", 897 | "illuminate/pagination": "^5.6 | ^6", 898 | "illuminate/translation": "^5.6 | ^6", 899 | "illuminate/view": "^5.6 | ^6", 900 | "mockery/mockery": "^1.3", 901 | "phpstan/phpstan": "^0.11.8", 902 | "phpunit/phpunit": "^6 | ^7 | ^8", 903 | "psy/psysh": "^0.9.12", 904 | "squizlabs/php_codesniffer": "^3.5" 905 | }, 906 | "type": "library", 907 | "autoload": { 908 | "files": [ 909 | "src/helpers.php" 910 | ], 911 | "psr-4": { 912 | "LaravelBridge\\Scratch\\": "src" 913 | } 914 | }, 915 | "notification-url": "https://packagist.org/downloads/", 916 | "license": [ 917 | "MIT" 918 | ], 919 | "authors": [ 920 | { 921 | "name": "MilesChou", 922 | "email": "jangconan@gmail.com", 923 | "homepage": "https://mileschou.github.io/", 924 | "role": "Maintainer" 925 | } 926 | ], 927 | "description": "For project from scratch", 928 | "keywords": [ 929 | "laravel" 930 | ], 931 | "time": "2020-02-27T16:49:42+00:00" 932 | }, 933 | { 934 | "name": "mikey179/vfsstream", 935 | "version": "v1.6.8", 936 | "source": { 937 | "type": "git", 938 | "url": "https://github.com/bovigo/vfsStream.git", 939 | "reference": "231c73783ebb7dd9ec77916c10037eff5a2b6efe" 940 | }, 941 | "dist": { 942 | "type": "zip", 943 | "url": "https://api.github.com/repos/bovigo/vfsStream/zipball/231c73783ebb7dd9ec77916c10037eff5a2b6efe", 944 | "reference": "231c73783ebb7dd9ec77916c10037eff5a2b6efe", 945 | "shasum": "" 946 | }, 947 | "require": { 948 | "php": ">=5.3.0" 949 | }, 950 | "require-dev": { 951 | "phpunit/phpunit": "^4.5|^5.0" 952 | }, 953 | "type": "library", 954 | "extra": { 955 | "branch-alias": { 956 | "dev-master": "1.6.x-dev" 957 | } 958 | }, 959 | "autoload": { 960 | "psr-0": { 961 | "org\\bovigo\\vfs\\": "src/main/php" 962 | } 963 | }, 964 | "notification-url": "https://packagist.org/downloads/", 965 | "license": [ 966 | "BSD-3-Clause" 967 | ], 968 | "authors": [ 969 | { 970 | "name": "Frank Kleine", 971 | "homepage": "http://frankkleine.de/", 972 | "role": "Developer" 973 | } 974 | ], 975 | "description": "Virtual file system to mock the real file system in unit tests.", 976 | "homepage": "http://vfs.bovigo.org/", 977 | "time": "2019-10-30T15:31:00+00:00" 978 | }, 979 | { 980 | "name": "mileschou/codegener", 981 | "version": "v1.0.2", 982 | "source": { 983 | "type": "git", 984 | "url": "https://github.com/MilesChou/codegener.git", 985 | "reference": "a04684d1f5b9eec0384c09116cedc5af98c832d4" 986 | }, 987 | "dist": { 988 | "type": "zip", 989 | "url": "https://api.github.com/repos/MilesChou/codegener/zipball/a04684d1f5b9eec0384c09116cedc5af98c832d4", 990 | "reference": "a04684d1f5b9eec0384c09116cedc5af98c832d4", 991 | "shasum": "" 992 | }, 993 | "require": { 994 | "illuminate/filesystem": "^5.6 | ^6", 995 | "php": ">=7.1", 996 | "psr/log": "^1.1" 997 | }, 998 | "require-dev": { 999 | "illuminate/container": "^5.6 | ^6", 1000 | "mikey179/vfsstream": "^1.6", 1001 | "phpstan/phpstan": "^0.11.8", 1002 | "phpunit/phpunit": "^7 | ^8 | ^9", 1003 | "squizlabs/php_codesniffer": "^3.5" 1004 | }, 1005 | "type": "library", 1006 | "autoload": { 1007 | "psr-4": { 1008 | "MilesChou\\Codegener\\": "src" 1009 | } 1010 | }, 1011 | "notification-url": "https://packagist.org/downloads/", 1012 | "license": [ 1013 | "MIT" 1014 | ], 1015 | "authors": [ 1016 | { 1017 | "name": "MilesChou", 1018 | "email": "jangconan@gmail.com", 1019 | "role": "Maintainer" 1020 | } 1021 | ], 1022 | "description": "The helper for generate code.", 1023 | "time": "2020-02-21T09:09:44+00:00" 1024 | }, 1025 | { 1026 | "name": "monolog/monolog", 1027 | "version": "1.25.3", 1028 | "source": { 1029 | "type": "git", 1030 | "url": "https://github.com/Seldaek/monolog.git", 1031 | "reference": "fa82921994db851a8becaf3787a9e73c5976b6f1" 1032 | }, 1033 | "dist": { 1034 | "type": "zip", 1035 | "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fa82921994db851a8becaf3787a9e73c5976b6f1", 1036 | "reference": "fa82921994db851a8becaf3787a9e73c5976b6f1", 1037 | "shasum": "" 1038 | }, 1039 | "require": { 1040 | "php": ">=5.3.0", 1041 | "psr/log": "~1.0" 1042 | }, 1043 | "provide": { 1044 | "psr/log-implementation": "1.0.0" 1045 | }, 1046 | "require-dev": { 1047 | "aws/aws-sdk-php": "^2.4.9 || ^3.0", 1048 | "doctrine/couchdb": "~1.0@dev", 1049 | "graylog2/gelf-php": "~1.0", 1050 | "jakub-onderka/php-parallel-lint": "0.9", 1051 | "php-amqplib/php-amqplib": "~2.4", 1052 | "php-console/php-console": "^3.1.3", 1053 | "phpunit/phpunit": "~4.5", 1054 | "phpunit/phpunit-mock-objects": "2.3.0", 1055 | "ruflin/elastica": ">=0.90 <3.0", 1056 | "sentry/sentry": "^0.13", 1057 | "swiftmailer/swiftmailer": "^5.3|^6.0" 1058 | }, 1059 | "suggest": { 1060 | "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", 1061 | "doctrine/couchdb": "Allow sending log messages to a CouchDB server", 1062 | "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", 1063 | "ext-mongo": "Allow sending log messages to a MongoDB server", 1064 | "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", 1065 | "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", 1066 | "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", 1067 | "php-console/php-console": "Allow sending log messages to Google Chrome", 1068 | "rollbar/rollbar": "Allow sending log messages to Rollbar", 1069 | "ruflin/elastica": "Allow sending log messages to an Elastic Search server", 1070 | "sentry/sentry": "Allow sending log messages to a Sentry server" 1071 | }, 1072 | "type": "library", 1073 | "extra": { 1074 | "branch-alias": { 1075 | "dev-master": "2.0.x-dev" 1076 | } 1077 | }, 1078 | "autoload": { 1079 | "psr-4": { 1080 | "Monolog\\": "src/Monolog" 1081 | } 1082 | }, 1083 | "notification-url": "https://packagist.org/downloads/", 1084 | "license": [ 1085 | "MIT" 1086 | ], 1087 | "authors": [ 1088 | { 1089 | "name": "Jordi Boggiano", 1090 | "email": "j.boggiano@seld.be", 1091 | "homepage": "http://seld.be" 1092 | } 1093 | ], 1094 | "description": "Sends your logs to files, sockets, inboxes, databases and various web services", 1095 | "homepage": "http://github.com/Seldaek/monolog", 1096 | "keywords": [ 1097 | "log", 1098 | "logging", 1099 | "psr-3" 1100 | ], 1101 | "time": "2019-12-20T14:15:16+00:00" 1102 | }, 1103 | { 1104 | "name": "nesbot/carbon", 1105 | "version": "1.39.1", 1106 | "source": { 1107 | "type": "git", 1108 | "url": "https://github.com/briannesbitt/Carbon.git", 1109 | "reference": "4be0c005164249208ce1b5ca633cd57bdd42ff33" 1110 | }, 1111 | "dist": { 1112 | "type": "zip", 1113 | "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/4be0c005164249208ce1b5ca633cd57bdd42ff33", 1114 | "reference": "4be0c005164249208ce1b5ca633cd57bdd42ff33", 1115 | "shasum": "" 1116 | }, 1117 | "require": { 1118 | "kylekatarnls/update-helper": "^1.1", 1119 | "php": ">=5.3.9", 1120 | "symfony/translation": "~2.6 || ~3.0 || ~4.0" 1121 | }, 1122 | "require-dev": { 1123 | "composer/composer": "^1.2", 1124 | "friendsofphp/php-cs-fixer": "~2", 1125 | "phpunit/phpunit": "^4.8.35 || ^5.7" 1126 | }, 1127 | "bin": [ 1128 | "bin/upgrade-carbon" 1129 | ], 1130 | "type": "library", 1131 | "extra": { 1132 | "update-helper": "Carbon\\Upgrade", 1133 | "laravel": { 1134 | "providers": [ 1135 | "Carbon\\Laravel\\ServiceProvider" 1136 | ] 1137 | } 1138 | }, 1139 | "autoload": { 1140 | "psr-4": { 1141 | "": "src/" 1142 | } 1143 | }, 1144 | "notification-url": "https://packagist.org/downloads/", 1145 | "license": [ 1146 | "MIT" 1147 | ], 1148 | "authors": [ 1149 | { 1150 | "name": "Brian Nesbitt", 1151 | "email": "brian@nesbot.com", 1152 | "homepage": "http://nesbot.com" 1153 | } 1154 | ], 1155 | "description": "A simple API extension for DateTime.", 1156 | "homepage": "http://carbon.nesbot.com", 1157 | "keywords": [ 1158 | "date", 1159 | "datetime", 1160 | "time" 1161 | ], 1162 | "time": "2019-10-14T05:51:36+00:00" 1163 | }, 1164 | { 1165 | "name": "phpoption/phpoption", 1166 | "version": "1.7.2", 1167 | "source": { 1168 | "type": "git", 1169 | "url": "https://github.com/schmittjoh/php-option.git", 1170 | "reference": "77f7c4d2e65413aff5b5a8cc8b3caf7a28d81959" 1171 | }, 1172 | "dist": { 1173 | "type": "zip", 1174 | "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/77f7c4d2e65413aff5b5a8cc8b3caf7a28d81959", 1175 | "reference": "77f7c4d2e65413aff5b5a8cc8b3caf7a28d81959", 1176 | "shasum": "" 1177 | }, 1178 | "require": { 1179 | "php": "^5.5.9 || ^7.0" 1180 | }, 1181 | "require-dev": { 1182 | "bamarni/composer-bin-plugin": "^1.3", 1183 | "phpunit/phpunit": "^4.8.35 || ^5.0 || ^6.0 || ^7.0" 1184 | }, 1185 | "type": "library", 1186 | "extra": { 1187 | "branch-alias": { 1188 | "dev-master": "1.7-dev" 1189 | } 1190 | }, 1191 | "autoload": { 1192 | "psr-4": { 1193 | "PhpOption\\": "src/PhpOption/" 1194 | } 1195 | }, 1196 | "notification-url": "https://packagist.org/downloads/", 1197 | "license": [ 1198 | "Apache-2.0" 1199 | ], 1200 | "authors": [ 1201 | { 1202 | "name": "Johannes M. Schmitt", 1203 | "email": "schmittjoh@gmail.com" 1204 | }, 1205 | { 1206 | "name": "Graham Campbell", 1207 | "email": "graham@alt-three.com" 1208 | } 1209 | ], 1210 | "description": "Option Type for PHP", 1211 | "keywords": [ 1212 | "language", 1213 | "option", 1214 | "php", 1215 | "type" 1216 | ], 1217 | "time": "2019-12-15T19:35:24+00:00" 1218 | }, 1219 | { 1220 | "name": "psr/container", 1221 | "version": "1.0.0", 1222 | "source": { 1223 | "type": "git", 1224 | "url": "https://github.com/php-fig/container.git", 1225 | "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" 1226 | }, 1227 | "dist": { 1228 | "type": "zip", 1229 | "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", 1230 | "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", 1231 | "shasum": "" 1232 | }, 1233 | "require": { 1234 | "php": ">=5.3.0" 1235 | }, 1236 | "type": "library", 1237 | "extra": { 1238 | "branch-alias": { 1239 | "dev-master": "1.0.x-dev" 1240 | } 1241 | }, 1242 | "autoload": { 1243 | "psr-4": { 1244 | "Psr\\Container\\": "src/" 1245 | } 1246 | }, 1247 | "notification-url": "https://packagist.org/downloads/", 1248 | "license": [ 1249 | "MIT" 1250 | ], 1251 | "authors": [ 1252 | { 1253 | "name": "PHP-FIG", 1254 | "homepage": "http://www.php-fig.org/" 1255 | } 1256 | ], 1257 | "description": "Common Container Interface (PHP FIG PSR-11)", 1258 | "homepage": "https://github.com/php-fig/container", 1259 | "keywords": [ 1260 | "PSR-11", 1261 | "container", 1262 | "container-interface", 1263 | "container-interop", 1264 | "psr" 1265 | ], 1266 | "time": "2017-02-14T16:28:37+00:00" 1267 | }, 1268 | { 1269 | "name": "psr/log", 1270 | "version": "1.1.2", 1271 | "source": { 1272 | "type": "git", 1273 | "url": "https://github.com/php-fig/log.git", 1274 | "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" 1275 | }, 1276 | "dist": { 1277 | "type": "zip", 1278 | "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", 1279 | "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", 1280 | "shasum": "" 1281 | }, 1282 | "require": { 1283 | "php": ">=5.3.0" 1284 | }, 1285 | "type": "library", 1286 | "extra": { 1287 | "branch-alias": { 1288 | "dev-master": "1.1.x-dev" 1289 | } 1290 | }, 1291 | "autoload": { 1292 | "psr-4": { 1293 | "Psr\\Log\\": "Psr/Log/" 1294 | } 1295 | }, 1296 | "notification-url": "https://packagist.org/downloads/", 1297 | "license": [ 1298 | "MIT" 1299 | ], 1300 | "authors": [ 1301 | { 1302 | "name": "PHP-FIG", 1303 | "homepage": "http://www.php-fig.org/" 1304 | } 1305 | ], 1306 | "description": "Common interface for logging libraries", 1307 | "homepage": "https://github.com/php-fig/log", 1308 | "keywords": [ 1309 | "log", 1310 | "psr", 1311 | "psr-3" 1312 | ], 1313 | "time": "2019-11-01T11:05:21+00:00" 1314 | }, 1315 | { 1316 | "name": "psr/simple-cache", 1317 | "version": "1.0.1", 1318 | "source": { 1319 | "type": "git", 1320 | "url": "https://github.com/php-fig/simple-cache.git", 1321 | "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" 1322 | }, 1323 | "dist": { 1324 | "type": "zip", 1325 | "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", 1326 | "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", 1327 | "shasum": "" 1328 | }, 1329 | "require": { 1330 | "php": ">=5.3.0" 1331 | }, 1332 | "type": "library", 1333 | "extra": { 1334 | "branch-alias": { 1335 | "dev-master": "1.0.x-dev" 1336 | } 1337 | }, 1338 | "autoload": { 1339 | "psr-4": { 1340 | "Psr\\SimpleCache\\": "src/" 1341 | } 1342 | }, 1343 | "notification-url": "https://packagist.org/downloads/", 1344 | "license": [ 1345 | "MIT" 1346 | ], 1347 | "authors": [ 1348 | { 1349 | "name": "PHP-FIG", 1350 | "homepage": "http://www.php-fig.org/" 1351 | } 1352 | ], 1353 | "description": "Common interfaces for simple caching", 1354 | "keywords": [ 1355 | "cache", 1356 | "caching", 1357 | "psr", 1358 | "psr-16", 1359 | "simple-cache" 1360 | ], 1361 | "time": "2017-10-23T01:57:42+00:00" 1362 | }, 1363 | { 1364 | "name": "symfony/console", 1365 | "version": "v4.4.4", 1366 | "source": { 1367 | "type": "git", 1368 | "url": "https://github.com/symfony/console.git", 1369 | "reference": "f512001679f37e6a042b51897ed24a2f05eba656" 1370 | }, 1371 | "dist": { 1372 | "type": "zip", 1373 | "url": "https://api.github.com/repos/symfony/console/zipball/f512001679f37e6a042b51897ed24a2f05eba656", 1374 | "reference": "f512001679f37e6a042b51897ed24a2f05eba656", 1375 | "shasum": "" 1376 | }, 1377 | "require": { 1378 | "php": "^7.1.3", 1379 | "symfony/polyfill-mbstring": "~1.0", 1380 | "symfony/polyfill-php73": "^1.8", 1381 | "symfony/service-contracts": "^1.1|^2" 1382 | }, 1383 | "conflict": { 1384 | "symfony/dependency-injection": "<3.4", 1385 | "symfony/event-dispatcher": "<4.3|>=5", 1386 | "symfony/lock": "<4.4", 1387 | "symfony/process": "<3.3" 1388 | }, 1389 | "provide": { 1390 | "psr/log-implementation": "1.0" 1391 | }, 1392 | "require-dev": { 1393 | "psr/log": "~1.0", 1394 | "symfony/config": "^3.4|^4.0|^5.0", 1395 | "symfony/dependency-injection": "^3.4|^4.0|^5.0", 1396 | "symfony/event-dispatcher": "^4.3", 1397 | "symfony/lock": "^4.4|^5.0", 1398 | "symfony/process": "^3.4|^4.0|^5.0", 1399 | "symfony/var-dumper": "^4.3|^5.0" 1400 | }, 1401 | "suggest": { 1402 | "psr/log": "For using the console logger", 1403 | "symfony/event-dispatcher": "", 1404 | "symfony/lock": "", 1405 | "symfony/process": "" 1406 | }, 1407 | "type": "library", 1408 | "extra": { 1409 | "branch-alias": { 1410 | "dev-master": "4.4-dev" 1411 | } 1412 | }, 1413 | "autoload": { 1414 | "psr-4": { 1415 | "Symfony\\Component\\Console\\": "" 1416 | }, 1417 | "exclude-from-classmap": [ 1418 | "/Tests/" 1419 | ] 1420 | }, 1421 | "notification-url": "https://packagist.org/downloads/", 1422 | "license": [ 1423 | "MIT" 1424 | ], 1425 | "authors": [ 1426 | { 1427 | "name": "Fabien Potencier", 1428 | "email": "fabien@symfony.com" 1429 | }, 1430 | { 1431 | "name": "Symfony Community", 1432 | "homepage": "https://symfony.com/contributors" 1433 | } 1434 | ], 1435 | "description": "Symfony Console Component", 1436 | "homepage": "https://symfony.com", 1437 | "time": "2020-01-25T12:44:29+00:00" 1438 | }, 1439 | { 1440 | "name": "symfony/debug", 1441 | "version": "v4.4.4", 1442 | "source": { 1443 | "type": "git", 1444 | "url": "https://github.com/symfony/debug.git", 1445 | "reference": "20236471058bbaa9907382500fc14005c84601f0" 1446 | }, 1447 | "dist": { 1448 | "type": "zip", 1449 | "url": "https://api.github.com/repos/symfony/debug/zipball/20236471058bbaa9907382500fc14005c84601f0", 1450 | "reference": "20236471058bbaa9907382500fc14005c84601f0", 1451 | "shasum": "" 1452 | }, 1453 | "require": { 1454 | "php": "^7.1.3", 1455 | "psr/log": "~1.0" 1456 | }, 1457 | "conflict": { 1458 | "symfony/http-kernel": "<3.4" 1459 | }, 1460 | "require-dev": { 1461 | "symfony/http-kernel": "^3.4|^4.0|^5.0" 1462 | }, 1463 | "type": "library", 1464 | "extra": { 1465 | "branch-alias": { 1466 | "dev-master": "4.4-dev" 1467 | } 1468 | }, 1469 | "autoload": { 1470 | "psr-4": { 1471 | "Symfony\\Component\\Debug\\": "" 1472 | }, 1473 | "exclude-from-classmap": [ 1474 | "/Tests/" 1475 | ] 1476 | }, 1477 | "notification-url": "https://packagist.org/downloads/", 1478 | "license": [ 1479 | "MIT" 1480 | ], 1481 | "authors": [ 1482 | { 1483 | "name": "Fabien Potencier", 1484 | "email": "fabien@symfony.com" 1485 | }, 1486 | { 1487 | "name": "Symfony Community", 1488 | "homepage": "https://symfony.com/contributors" 1489 | } 1490 | ], 1491 | "description": "Symfony Debug Component", 1492 | "homepage": "https://symfony.com", 1493 | "time": "2020-01-25T12:44:29+00:00" 1494 | }, 1495 | { 1496 | "name": "symfony/finder", 1497 | "version": "v4.4.4", 1498 | "source": { 1499 | "type": "git", 1500 | "url": "https://github.com/symfony/finder.git", 1501 | "reference": "3a50be43515590faf812fbd7708200aabc327ec3" 1502 | }, 1503 | "dist": { 1504 | "type": "zip", 1505 | "url": "https://api.github.com/repos/symfony/finder/zipball/3a50be43515590faf812fbd7708200aabc327ec3", 1506 | "reference": "3a50be43515590faf812fbd7708200aabc327ec3", 1507 | "shasum": "" 1508 | }, 1509 | "require": { 1510 | "php": "^7.1.3" 1511 | }, 1512 | "type": "library", 1513 | "extra": { 1514 | "branch-alias": { 1515 | "dev-master": "4.4-dev" 1516 | } 1517 | }, 1518 | "autoload": { 1519 | "psr-4": { 1520 | "Symfony\\Component\\Finder\\": "" 1521 | }, 1522 | "exclude-from-classmap": [ 1523 | "/Tests/" 1524 | ] 1525 | }, 1526 | "notification-url": "https://packagist.org/downloads/", 1527 | "license": [ 1528 | "MIT" 1529 | ], 1530 | "authors": [ 1531 | { 1532 | "name": "Fabien Potencier", 1533 | "email": "fabien@symfony.com" 1534 | }, 1535 | { 1536 | "name": "Symfony Community", 1537 | "homepage": "https://symfony.com/contributors" 1538 | } 1539 | ], 1540 | "description": "Symfony Finder Component", 1541 | "homepage": "https://symfony.com", 1542 | "time": "2020-01-04T13:00:46+00:00" 1543 | }, 1544 | { 1545 | "name": "symfony/polyfill-ctype", 1546 | "version": "v1.14.0", 1547 | "source": { 1548 | "type": "git", 1549 | "url": "https://github.com/symfony/polyfill-ctype.git", 1550 | "reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38" 1551 | }, 1552 | "dist": { 1553 | "type": "zip", 1554 | "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/fbdeaec0df06cf3d51c93de80c7eb76e271f5a38", 1555 | "reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38", 1556 | "shasum": "" 1557 | }, 1558 | "require": { 1559 | "php": ">=5.3.3" 1560 | }, 1561 | "suggest": { 1562 | "ext-ctype": "For best performance" 1563 | }, 1564 | "type": "library", 1565 | "extra": { 1566 | "branch-alias": { 1567 | "dev-master": "1.14-dev" 1568 | } 1569 | }, 1570 | "autoload": { 1571 | "psr-4": { 1572 | "Symfony\\Polyfill\\Ctype\\": "" 1573 | }, 1574 | "files": [ 1575 | "bootstrap.php" 1576 | ] 1577 | }, 1578 | "notification-url": "https://packagist.org/downloads/", 1579 | "license": [ 1580 | "MIT" 1581 | ], 1582 | "authors": [ 1583 | { 1584 | "name": "Gert de Pagter", 1585 | "email": "BackEndTea@gmail.com" 1586 | }, 1587 | { 1588 | "name": "Symfony Community", 1589 | "homepage": "https://symfony.com/contributors" 1590 | } 1591 | ], 1592 | "description": "Symfony polyfill for ctype functions", 1593 | "homepage": "https://symfony.com", 1594 | "keywords": [ 1595 | "compatibility", 1596 | "ctype", 1597 | "polyfill", 1598 | "portable" 1599 | ], 1600 | "time": "2020-01-13T11:15:53+00:00" 1601 | }, 1602 | { 1603 | "name": "symfony/polyfill-mbstring", 1604 | "version": "v1.14.0", 1605 | "source": { 1606 | "type": "git", 1607 | "url": "https://github.com/symfony/polyfill-mbstring.git", 1608 | "reference": "34094cfa9abe1f0f14f48f490772db7a775559f2" 1609 | }, 1610 | "dist": { 1611 | "type": "zip", 1612 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/34094cfa9abe1f0f14f48f490772db7a775559f2", 1613 | "reference": "34094cfa9abe1f0f14f48f490772db7a775559f2", 1614 | "shasum": "" 1615 | }, 1616 | "require": { 1617 | "php": ">=5.3.3" 1618 | }, 1619 | "suggest": { 1620 | "ext-mbstring": "For best performance" 1621 | }, 1622 | "type": "library", 1623 | "extra": { 1624 | "branch-alias": { 1625 | "dev-master": "1.14-dev" 1626 | } 1627 | }, 1628 | "autoload": { 1629 | "psr-4": { 1630 | "Symfony\\Polyfill\\Mbstring\\": "" 1631 | }, 1632 | "files": [ 1633 | "bootstrap.php" 1634 | ] 1635 | }, 1636 | "notification-url": "https://packagist.org/downloads/", 1637 | "license": [ 1638 | "MIT" 1639 | ], 1640 | "authors": [ 1641 | { 1642 | "name": "Nicolas Grekas", 1643 | "email": "p@tchwork.com" 1644 | }, 1645 | { 1646 | "name": "Symfony Community", 1647 | "homepage": "https://symfony.com/contributors" 1648 | } 1649 | ], 1650 | "description": "Symfony polyfill for the Mbstring extension", 1651 | "homepage": "https://symfony.com", 1652 | "keywords": [ 1653 | "compatibility", 1654 | "mbstring", 1655 | "polyfill", 1656 | "portable", 1657 | "shim" 1658 | ], 1659 | "time": "2020-01-13T11:15:53+00:00" 1660 | }, 1661 | { 1662 | "name": "symfony/polyfill-php73", 1663 | "version": "v1.14.0", 1664 | "source": { 1665 | "type": "git", 1666 | "url": "https://github.com/symfony/polyfill-php73.git", 1667 | "reference": "5e66a0fa1070bf46bec4bea7962d285108edd675" 1668 | }, 1669 | "dist": { 1670 | "type": "zip", 1671 | "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/5e66a0fa1070bf46bec4bea7962d285108edd675", 1672 | "reference": "5e66a0fa1070bf46bec4bea7962d285108edd675", 1673 | "shasum": "" 1674 | }, 1675 | "require": { 1676 | "php": ">=5.3.3" 1677 | }, 1678 | "type": "library", 1679 | "extra": { 1680 | "branch-alias": { 1681 | "dev-master": "1.14-dev" 1682 | } 1683 | }, 1684 | "autoload": { 1685 | "psr-4": { 1686 | "Symfony\\Polyfill\\Php73\\": "" 1687 | }, 1688 | "files": [ 1689 | "bootstrap.php" 1690 | ], 1691 | "classmap": [ 1692 | "Resources/stubs" 1693 | ] 1694 | }, 1695 | "notification-url": "https://packagist.org/downloads/", 1696 | "license": [ 1697 | "MIT" 1698 | ], 1699 | "authors": [ 1700 | { 1701 | "name": "Nicolas Grekas", 1702 | "email": "p@tchwork.com" 1703 | }, 1704 | { 1705 | "name": "Symfony Community", 1706 | "homepage": "https://symfony.com/contributors" 1707 | } 1708 | ], 1709 | "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", 1710 | "homepage": "https://symfony.com", 1711 | "keywords": [ 1712 | "compatibility", 1713 | "polyfill", 1714 | "portable", 1715 | "shim" 1716 | ], 1717 | "time": "2020-01-13T11:15:53+00:00" 1718 | }, 1719 | { 1720 | "name": "symfony/process", 1721 | "version": "v4.4.4", 1722 | "source": { 1723 | "type": "git", 1724 | "url": "https://github.com/symfony/process.git", 1725 | "reference": "f5697ab4cb14a5deed7473819e63141bf5352c36" 1726 | }, 1727 | "dist": { 1728 | "type": "zip", 1729 | "url": "https://api.github.com/repos/symfony/process/zipball/f5697ab4cb14a5deed7473819e63141bf5352c36", 1730 | "reference": "f5697ab4cb14a5deed7473819e63141bf5352c36", 1731 | "shasum": "" 1732 | }, 1733 | "require": { 1734 | "php": "^7.1.3" 1735 | }, 1736 | "type": "library", 1737 | "extra": { 1738 | "branch-alias": { 1739 | "dev-master": "4.4-dev" 1740 | } 1741 | }, 1742 | "autoload": { 1743 | "psr-4": { 1744 | "Symfony\\Component\\Process\\": "" 1745 | }, 1746 | "exclude-from-classmap": [ 1747 | "/Tests/" 1748 | ] 1749 | }, 1750 | "notification-url": "https://packagist.org/downloads/", 1751 | "license": [ 1752 | "MIT" 1753 | ], 1754 | "authors": [ 1755 | { 1756 | "name": "Fabien Potencier", 1757 | "email": "fabien@symfony.com" 1758 | }, 1759 | { 1760 | "name": "Symfony Community", 1761 | "homepage": "https://symfony.com/contributors" 1762 | } 1763 | ], 1764 | "description": "Symfony Process Component", 1765 | "homepage": "https://symfony.com", 1766 | "time": "2020-01-09T09:50:08+00:00" 1767 | }, 1768 | { 1769 | "name": "symfony/service-contracts", 1770 | "version": "v1.1.8", 1771 | "source": { 1772 | "type": "git", 1773 | "url": "https://github.com/symfony/service-contracts.git", 1774 | "reference": "ffc7f5692092df31515df2a5ecf3b7302b3ddacf" 1775 | }, 1776 | "dist": { 1777 | "type": "zip", 1778 | "url": "https://api.github.com/repos/symfony/service-contracts/zipball/ffc7f5692092df31515df2a5ecf3b7302b3ddacf", 1779 | "reference": "ffc7f5692092df31515df2a5ecf3b7302b3ddacf", 1780 | "shasum": "" 1781 | }, 1782 | "require": { 1783 | "php": "^7.1.3", 1784 | "psr/container": "^1.0" 1785 | }, 1786 | "suggest": { 1787 | "symfony/service-implementation": "" 1788 | }, 1789 | "type": "library", 1790 | "extra": { 1791 | "branch-alias": { 1792 | "dev-master": "1.1-dev" 1793 | } 1794 | }, 1795 | "autoload": { 1796 | "psr-4": { 1797 | "Symfony\\Contracts\\Service\\": "" 1798 | } 1799 | }, 1800 | "notification-url": "https://packagist.org/downloads/", 1801 | "license": [ 1802 | "MIT" 1803 | ], 1804 | "authors": [ 1805 | { 1806 | "name": "Nicolas Grekas", 1807 | "email": "p@tchwork.com" 1808 | }, 1809 | { 1810 | "name": "Symfony Community", 1811 | "homepage": "https://symfony.com/contributors" 1812 | } 1813 | ], 1814 | "description": "Generic abstractions related to writing services", 1815 | "homepage": "https://symfony.com", 1816 | "keywords": [ 1817 | "abstractions", 1818 | "contracts", 1819 | "decoupling", 1820 | "interfaces", 1821 | "interoperability", 1822 | "standards" 1823 | ], 1824 | "time": "2019-10-14T12:27:06+00:00" 1825 | }, 1826 | { 1827 | "name": "symfony/translation", 1828 | "version": "v4.4.4", 1829 | "source": { 1830 | "type": "git", 1831 | "url": "https://github.com/symfony/translation.git", 1832 | "reference": "f5d2ac46930238b30a9c2f1b17c905f3697d808c" 1833 | }, 1834 | "dist": { 1835 | "type": "zip", 1836 | "url": "https://api.github.com/repos/symfony/translation/zipball/f5d2ac46930238b30a9c2f1b17c905f3697d808c", 1837 | "reference": "f5d2ac46930238b30a9c2f1b17c905f3697d808c", 1838 | "shasum": "" 1839 | }, 1840 | "require": { 1841 | "php": "^7.1.3", 1842 | "symfony/polyfill-mbstring": "~1.0", 1843 | "symfony/translation-contracts": "^1.1.6|^2" 1844 | }, 1845 | "conflict": { 1846 | "symfony/config": "<3.4", 1847 | "symfony/dependency-injection": "<3.4", 1848 | "symfony/http-kernel": "<4.4", 1849 | "symfony/yaml": "<3.4" 1850 | }, 1851 | "provide": { 1852 | "symfony/translation-implementation": "1.0" 1853 | }, 1854 | "require-dev": { 1855 | "psr/log": "~1.0", 1856 | "symfony/config": "^3.4|^4.0|^5.0", 1857 | "symfony/console": "^3.4|^4.0|^5.0", 1858 | "symfony/dependency-injection": "^3.4|^4.0|^5.0", 1859 | "symfony/finder": "~2.8|~3.0|~4.0|^5.0", 1860 | "symfony/http-kernel": "^4.4", 1861 | "symfony/intl": "^3.4|^4.0|^5.0", 1862 | "symfony/service-contracts": "^1.1.2|^2", 1863 | "symfony/yaml": "^3.4|^4.0|^5.0" 1864 | }, 1865 | "suggest": { 1866 | "psr/log-implementation": "To use logging capability in translator", 1867 | "symfony/config": "", 1868 | "symfony/yaml": "" 1869 | }, 1870 | "type": "library", 1871 | "extra": { 1872 | "branch-alias": { 1873 | "dev-master": "4.4-dev" 1874 | } 1875 | }, 1876 | "autoload": { 1877 | "psr-4": { 1878 | "Symfony\\Component\\Translation\\": "" 1879 | }, 1880 | "exclude-from-classmap": [ 1881 | "/Tests/" 1882 | ] 1883 | }, 1884 | "notification-url": "https://packagist.org/downloads/", 1885 | "license": [ 1886 | "MIT" 1887 | ], 1888 | "authors": [ 1889 | { 1890 | "name": "Fabien Potencier", 1891 | "email": "fabien@symfony.com" 1892 | }, 1893 | { 1894 | "name": "Symfony Community", 1895 | "homepage": "https://symfony.com/contributors" 1896 | } 1897 | ], 1898 | "description": "Symfony Translation Component", 1899 | "homepage": "https://symfony.com", 1900 | "time": "2020-01-15T13:29:06+00:00" 1901 | }, 1902 | { 1903 | "name": "symfony/translation-contracts", 1904 | "version": "v1.1.7", 1905 | "source": { 1906 | "type": "git", 1907 | "url": "https://github.com/symfony/translation-contracts.git", 1908 | "reference": "364518c132c95642e530d9b2d217acbc2ccac3e6" 1909 | }, 1910 | "dist": { 1911 | "type": "zip", 1912 | "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/364518c132c95642e530d9b2d217acbc2ccac3e6", 1913 | "reference": "364518c132c95642e530d9b2d217acbc2ccac3e6", 1914 | "shasum": "" 1915 | }, 1916 | "require": { 1917 | "php": "^7.1.3" 1918 | }, 1919 | "suggest": { 1920 | "symfony/translation-implementation": "" 1921 | }, 1922 | "type": "library", 1923 | "extra": { 1924 | "branch-alias": { 1925 | "dev-master": "1.1-dev" 1926 | } 1927 | }, 1928 | "autoload": { 1929 | "psr-4": { 1930 | "Symfony\\Contracts\\Translation\\": "" 1931 | } 1932 | }, 1933 | "notification-url": "https://packagist.org/downloads/", 1934 | "license": [ 1935 | "MIT" 1936 | ], 1937 | "authors": [ 1938 | { 1939 | "name": "Nicolas Grekas", 1940 | "email": "p@tchwork.com" 1941 | }, 1942 | { 1943 | "name": "Symfony Community", 1944 | "homepage": "https://symfony.com/contributors" 1945 | } 1946 | ], 1947 | "description": "Generic abstractions related to translation", 1948 | "homepage": "https://symfony.com", 1949 | "keywords": [ 1950 | "abstractions", 1951 | "contracts", 1952 | "decoupling", 1953 | "interfaces", 1954 | "interoperability", 1955 | "standards" 1956 | ], 1957 | "time": "2019-09-17T11:12:18+00:00" 1958 | }, 1959 | { 1960 | "name": "vlucas/phpdotenv", 1961 | "version": "v3.6.0", 1962 | "source": { 1963 | "type": "git", 1964 | "url": "https://github.com/vlucas/phpdotenv.git", 1965 | "reference": "1bdf24f065975594f6a117f0f1f6cabf1333b156" 1966 | }, 1967 | "dist": { 1968 | "type": "zip", 1969 | "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/1bdf24f065975594f6a117f0f1f6cabf1333b156", 1970 | "reference": "1bdf24f065975594f6a117f0f1f6cabf1333b156", 1971 | "shasum": "" 1972 | }, 1973 | "require": { 1974 | "php": "^5.4 || ^7.0", 1975 | "phpoption/phpoption": "^1.5", 1976 | "symfony/polyfill-ctype": "^1.9" 1977 | }, 1978 | "require-dev": { 1979 | "phpunit/phpunit": "^4.8.35 || ^5.0 || ^6.0 || ^7.0" 1980 | }, 1981 | "type": "library", 1982 | "extra": { 1983 | "branch-alias": { 1984 | "dev-master": "3.6-dev" 1985 | } 1986 | }, 1987 | "autoload": { 1988 | "psr-4": { 1989 | "Dotenv\\": "src/" 1990 | } 1991 | }, 1992 | "notification-url": "https://packagist.org/downloads/", 1993 | "license": [ 1994 | "BSD-3-Clause" 1995 | ], 1996 | "authors": [ 1997 | { 1998 | "name": "Graham Campbell", 1999 | "email": "graham@alt-three.com", 2000 | "homepage": "https://gjcampbell.co.uk/" 2001 | }, 2002 | { 2003 | "name": "Vance Lucas", 2004 | "email": "vance@vancelucas.com", 2005 | "homepage": "https://vancelucas.com/" 2006 | } 2007 | ], 2008 | "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", 2009 | "keywords": [ 2010 | "dotenv", 2011 | "env", 2012 | "environment" 2013 | ], 2014 | "time": "2019-09-10T21:37:39+00:00" 2015 | }, 2016 | { 2017 | "name": "xethron/laravel-4-generators", 2018 | "version": "3.1.1", 2019 | "source": { 2020 | "type": "git", 2021 | "url": "https://github.com/Xethron/Laravel-4-Generators.git", 2022 | "reference": "526f0a07d8ae44e365a20b1bf64c9956acd2a859" 2023 | }, 2024 | "dist": { 2025 | "type": "zip", 2026 | "url": "https://api.github.com/repos/Xethron/Laravel-4-Generators/zipball/526f0a07d8ae44e365a20b1bf64c9956acd2a859", 2027 | "reference": "526f0a07d8ae44e365a20b1bf64c9956acd2a859", 2028 | "shasum": "" 2029 | }, 2030 | "require": { 2031 | "illuminate/support": "~5.0", 2032 | "php": ">=5.4.0" 2033 | }, 2034 | "require-dev": { 2035 | "behat/behat": "~2.5.1", 2036 | "behat/mink": "~1.5.0", 2037 | "behat/mink-extension": "~1.2.0", 2038 | "behat/mink-goutte-driver": "~1.0.9", 2039 | "behat/mink-selenium2-driver": "~1.1.1", 2040 | "phpspec/phpspec": "~2.0", 2041 | "phpunit/phpunit": "~3.7" 2042 | }, 2043 | "type": "library", 2044 | "autoload": { 2045 | "psr-0": { 2046 | "Way\\Generators": "src/" 2047 | } 2048 | }, 2049 | "notification-url": "https://packagist.org/downloads/", 2050 | "license": [ 2051 | "MIT" 2052 | ], 2053 | "authors": [ 2054 | { 2055 | "name": "Jeffrey Way", 2056 | "email": "jeffrey@jeffrey-way.com" 2057 | } 2058 | ], 2059 | "description": "Rapidly generate resources, migrations, models, and much more.", 2060 | "time": "2017-02-23T11:20:49+00:00" 2061 | }, 2062 | { 2063 | "name": "xethron/migrations-generator", 2064 | "version": "v2.0.2", 2065 | "source": { 2066 | "type": "git", 2067 | "url": "https://github.com/Xethron/migrations-generator.git", 2068 | "reference": "a05bd7319ed808fcc3125212e37d30ccbe0d2b8b" 2069 | }, 2070 | "dist": { 2071 | "type": "zip", 2072 | "url": "https://api.github.com/repos/Xethron/migrations-generator/zipball/a05bd7319ed808fcc3125212e37d30ccbe0d2b8b", 2073 | "reference": "a05bd7319ed808fcc3125212e37d30ccbe0d2b8b", 2074 | "shasum": "" 2075 | }, 2076 | "require": { 2077 | "doctrine/dbal": "~2.4", 2078 | "illuminate/support": ">=4.1", 2079 | "php": ">=5.4.0", 2080 | "xethron/laravel-4-generators": "~3.1.0" 2081 | }, 2082 | "require-dev": { 2083 | "illuminate/cache": ">=4.1.0", 2084 | "illuminate/console": ">=4.1.0", 2085 | "mockery/mockery": ">=0.9.0", 2086 | "phpunit/phpunit": ">=4.0.0" 2087 | }, 2088 | "type": "library", 2089 | "extra": { 2090 | "laravel": { 2091 | "providers": [ 2092 | "Way\\Generators\\GeneratorsServiceProvider", 2093 | "Xethron\\MigrationsGenerator\\MigrationsGeneratorServiceProvider" 2094 | ] 2095 | } 2096 | }, 2097 | "autoload": { 2098 | "psr-0": { 2099 | "Xethron\\MigrationsGenerator": "src/" 2100 | } 2101 | }, 2102 | "notification-url": "https://packagist.org/downloads/", 2103 | "license": [ 2104 | "MIT" 2105 | ], 2106 | "authors": [ 2107 | { 2108 | "name": "Bernhard Breytenbach", 2109 | "email": "bernhard@coffeecode.co.za" 2110 | } 2111 | ], 2112 | "description": "Generates Laravel Migrations from an existing database", 2113 | "keywords": [ 2114 | "artisan", 2115 | "generator", 2116 | "laravel", 2117 | "migration", 2118 | "migrations" 2119 | ], 2120 | "time": "2017-09-19T17:31:57+00:00" 2121 | } 2122 | ], 2123 | "packages-dev": [ 2124 | { 2125 | "name": "dnoegel/php-xdg-base-dir", 2126 | "version": "v0.1.1", 2127 | "source": { 2128 | "type": "git", 2129 | "url": "https://github.com/dnoegel/php-xdg-base-dir.git", 2130 | "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" 2131 | }, 2132 | "dist": { 2133 | "type": "zip", 2134 | "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", 2135 | "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", 2136 | "shasum": "" 2137 | }, 2138 | "require": { 2139 | "php": ">=5.3.2" 2140 | }, 2141 | "require-dev": { 2142 | "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" 2143 | }, 2144 | "type": "library", 2145 | "autoload": { 2146 | "psr-4": { 2147 | "XdgBaseDir\\": "src/" 2148 | } 2149 | }, 2150 | "notification-url": "https://packagist.org/downloads/", 2151 | "license": [ 2152 | "MIT" 2153 | ], 2154 | "description": "implementation of xdg base directory specification for php", 2155 | "time": "2019-12-04T15:06:13+00:00" 2156 | }, 2157 | { 2158 | "name": "doctrine/instantiator", 2159 | "version": "1.3.0", 2160 | "source": { 2161 | "type": "git", 2162 | "url": "https://github.com/doctrine/instantiator.git", 2163 | "reference": "ae466f726242e637cebdd526a7d991b9433bacf1" 2164 | }, 2165 | "dist": { 2166 | "type": "zip", 2167 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1", 2168 | "reference": "ae466f726242e637cebdd526a7d991b9433bacf1", 2169 | "shasum": "" 2170 | }, 2171 | "require": { 2172 | "php": "^7.1" 2173 | }, 2174 | "require-dev": { 2175 | "doctrine/coding-standard": "^6.0", 2176 | "ext-pdo": "*", 2177 | "ext-phar": "*", 2178 | "phpbench/phpbench": "^0.13", 2179 | "phpstan/phpstan-phpunit": "^0.11", 2180 | "phpstan/phpstan-shim": "^0.11", 2181 | "phpunit/phpunit": "^7.0" 2182 | }, 2183 | "type": "library", 2184 | "extra": { 2185 | "branch-alias": { 2186 | "dev-master": "1.2.x-dev" 2187 | } 2188 | }, 2189 | "autoload": { 2190 | "psr-4": { 2191 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" 2192 | } 2193 | }, 2194 | "notification-url": "https://packagist.org/downloads/", 2195 | "license": [ 2196 | "MIT" 2197 | ], 2198 | "authors": [ 2199 | { 2200 | "name": "Marco Pivetta", 2201 | "email": "ocramius@gmail.com", 2202 | "homepage": "http://ocramius.github.com/" 2203 | } 2204 | ], 2205 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", 2206 | "homepage": "https://www.doctrine-project.org/projects/instantiator.html", 2207 | "keywords": [ 2208 | "constructor", 2209 | "instantiate" 2210 | ], 2211 | "time": "2019-10-21T16:45:58+00:00" 2212 | }, 2213 | { 2214 | "name": "hamcrest/hamcrest-php", 2215 | "version": "v2.0.0", 2216 | "source": { 2217 | "type": "git", 2218 | "url": "https://github.com/hamcrest/hamcrest-php.git", 2219 | "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad" 2220 | }, 2221 | "dist": { 2222 | "type": "zip", 2223 | "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/776503d3a8e85d4f9a1148614f95b7a608b046ad", 2224 | "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad", 2225 | "shasum": "" 2226 | }, 2227 | "require": { 2228 | "php": "^5.3|^7.0" 2229 | }, 2230 | "replace": { 2231 | "cordoval/hamcrest-php": "*", 2232 | "davedevelopment/hamcrest-php": "*", 2233 | "kodova/hamcrest-php": "*" 2234 | }, 2235 | "require-dev": { 2236 | "phpunit/php-file-iterator": "1.3.3", 2237 | "phpunit/phpunit": "~4.0", 2238 | "satooshi/php-coveralls": "^1.0" 2239 | }, 2240 | "type": "library", 2241 | "extra": { 2242 | "branch-alias": { 2243 | "dev-master": "2.0-dev" 2244 | } 2245 | }, 2246 | "autoload": { 2247 | "classmap": [ 2248 | "hamcrest" 2249 | ] 2250 | }, 2251 | "notification-url": "https://packagist.org/downloads/", 2252 | "license": [ 2253 | "BSD" 2254 | ], 2255 | "description": "This is the PHP port of Hamcrest Matchers", 2256 | "keywords": [ 2257 | "test" 2258 | ], 2259 | "time": "2016-01-20T08:20:44+00:00" 2260 | }, 2261 | { 2262 | "name": "jakub-onderka/php-console-color", 2263 | "version": "v0.2", 2264 | "source": { 2265 | "type": "git", 2266 | "url": "https://github.com/JakubOnderka/PHP-Console-Color.git", 2267 | "reference": "d5deaecff52a0d61ccb613bb3804088da0307191" 2268 | }, 2269 | "dist": { 2270 | "type": "zip", 2271 | "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Color/zipball/d5deaecff52a0d61ccb613bb3804088da0307191", 2272 | "reference": "d5deaecff52a0d61ccb613bb3804088da0307191", 2273 | "shasum": "" 2274 | }, 2275 | "require": { 2276 | "php": ">=5.4.0" 2277 | }, 2278 | "require-dev": { 2279 | "jakub-onderka/php-code-style": "1.0", 2280 | "jakub-onderka/php-parallel-lint": "1.0", 2281 | "jakub-onderka/php-var-dump-check": "0.*", 2282 | "phpunit/phpunit": "~4.3", 2283 | "squizlabs/php_codesniffer": "1.*" 2284 | }, 2285 | "type": "library", 2286 | "autoload": { 2287 | "psr-4": { 2288 | "JakubOnderka\\PhpConsoleColor\\": "src/" 2289 | } 2290 | }, 2291 | "notification-url": "https://packagist.org/downloads/", 2292 | "license": [ 2293 | "BSD-2-Clause" 2294 | ], 2295 | "authors": [ 2296 | { 2297 | "name": "Jakub Onderka", 2298 | "email": "jakub.onderka@gmail.com" 2299 | } 2300 | ], 2301 | "time": "2018-09-29T17:23:10+00:00" 2302 | }, 2303 | { 2304 | "name": "jakub-onderka/php-console-highlighter", 2305 | "version": "v0.4", 2306 | "source": { 2307 | "type": "git", 2308 | "url": "https://github.com/JakubOnderka/PHP-Console-Highlighter.git", 2309 | "reference": "9f7a229a69d52506914b4bc61bfdb199d90c5547" 2310 | }, 2311 | "dist": { 2312 | "type": "zip", 2313 | "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Highlighter/zipball/9f7a229a69d52506914b4bc61bfdb199d90c5547", 2314 | "reference": "9f7a229a69d52506914b4bc61bfdb199d90c5547", 2315 | "shasum": "" 2316 | }, 2317 | "require": { 2318 | "ext-tokenizer": "*", 2319 | "jakub-onderka/php-console-color": "~0.2", 2320 | "php": ">=5.4.0" 2321 | }, 2322 | "require-dev": { 2323 | "jakub-onderka/php-code-style": "~1.0", 2324 | "jakub-onderka/php-parallel-lint": "~1.0", 2325 | "jakub-onderka/php-var-dump-check": "~0.1", 2326 | "phpunit/phpunit": "~4.0", 2327 | "squizlabs/php_codesniffer": "~1.5" 2328 | }, 2329 | "type": "library", 2330 | "autoload": { 2331 | "psr-4": { 2332 | "JakubOnderka\\PhpConsoleHighlighter\\": "src/" 2333 | } 2334 | }, 2335 | "notification-url": "https://packagist.org/downloads/", 2336 | "license": [ 2337 | "MIT" 2338 | ], 2339 | "authors": [ 2340 | { 2341 | "name": "Jakub Onderka", 2342 | "email": "acci@acci.cz", 2343 | "homepage": "http://www.acci.cz/" 2344 | } 2345 | ], 2346 | "description": "Highlight PHP code in terminal", 2347 | "time": "2018-09-29T18:48:56+00:00" 2348 | }, 2349 | { 2350 | "name": "mockery/mockery", 2351 | "version": "1.3.1", 2352 | "source": { 2353 | "type": "git", 2354 | "url": "https://github.com/mockery/mockery.git", 2355 | "reference": "f69bbde7d7a75d6b2862d9ca8fab1cd28014b4be" 2356 | }, 2357 | "dist": { 2358 | "type": "zip", 2359 | "url": "https://api.github.com/repos/mockery/mockery/zipball/f69bbde7d7a75d6b2862d9ca8fab1cd28014b4be", 2360 | "reference": "f69bbde7d7a75d6b2862d9ca8fab1cd28014b4be", 2361 | "shasum": "" 2362 | }, 2363 | "require": { 2364 | "hamcrest/hamcrest-php": "~2.0", 2365 | "lib-pcre": ">=7.0", 2366 | "php": ">=5.6.0" 2367 | }, 2368 | "require-dev": { 2369 | "phpunit/phpunit": "~5.7.10|~6.5|~7.0|~8.0" 2370 | }, 2371 | "type": "library", 2372 | "extra": { 2373 | "branch-alias": { 2374 | "dev-master": "1.3.x-dev" 2375 | } 2376 | }, 2377 | "autoload": { 2378 | "psr-0": { 2379 | "Mockery": "library/" 2380 | } 2381 | }, 2382 | "notification-url": "https://packagist.org/downloads/", 2383 | "license": [ 2384 | "BSD-3-Clause" 2385 | ], 2386 | "authors": [ 2387 | { 2388 | "name": "Pádraic Brady", 2389 | "email": "padraic.brady@gmail.com", 2390 | "homepage": "http://blog.astrumfutura.com" 2391 | }, 2392 | { 2393 | "name": "Dave Marshall", 2394 | "email": "dave.marshall@atstsolutions.co.uk", 2395 | "homepage": "http://davedevelopment.co.uk" 2396 | } 2397 | ], 2398 | "description": "Mockery is a simple yet flexible PHP mock object framework", 2399 | "homepage": "https://github.com/mockery/mockery", 2400 | "keywords": [ 2401 | "BDD", 2402 | "TDD", 2403 | "library", 2404 | "mock", 2405 | "mock objects", 2406 | "mockery", 2407 | "stub", 2408 | "test", 2409 | "test double", 2410 | "testing" 2411 | ], 2412 | "time": "2019-12-26T09:49:15+00:00" 2413 | }, 2414 | { 2415 | "name": "myclabs/deep-copy", 2416 | "version": "1.9.5", 2417 | "source": { 2418 | "type": "git", 2419 | "url": "https://github.com/myclabs/DeepCopy.git", 2420 | "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef" 2421 | }, 2422 | "dist": { 2423 | "type": "zip", 2424 | "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/b2c28789e80a97badd14145fda39b545d83ca3ef", 2425 | "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef", 2426 | "shasum": "" 2427 | }, 2428 | "require": { 2429 | "php": "^7.1" 2430 | }, 2431 | "replace": { 2432 | "myclabs/deep-copy": "self.version" 2433 | }, 2434 | "require-dev": { 2435 | "doctrine/collections": "^1.0", 2436 | "doctrine/common": "^2.6", 2437 | "phpunit/phpunit": "^7.1" 2438 | }, 2439 | "type": "library", 2440 | "autoload": { 2441 | "psr-4": { 2442 | "DeepCopy\\": "src/DeepCopy/" 2443 | }, 2444 | "files": [ 2445 | "src/DeepCopy/deep_copy.php" 2446 | ] 2447 | }, 2448 | "notification-url": "https://packagist.org/downloads/", 2449 | "license": [ 2450 | "MIT" 2451 | ], 2452 | "description": "Create deep copies (clones) of your objects", 2453 | "keywords": [ 2454 | "clone", 2455 | "copy", 2456 | "duplicate", 2457 | "object", 2458 | "object graph" 2459 | ], 2460 | "time": "2020-01-17T21:11:47+00:00" 2461 | }, 2462 | { 2463 | "name": "nikic/php-parser", 2464 | "version": "v4.3.0", 2465 | "source": { 2466 | "type": "git", 2467 | "url": "https://github.com/nikic/PHP-Parser.git", 2468 | "reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc" 2469 | }, 2470 | "dist": { 2471 | "type": "zip", 2472 | "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/9a9981c347c5c49d6dfe5cf826bb882b824080dc", 2473 | "reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc", 2474 | "shasum": "" 2475 | }, 2476 | "require": { 2477 | "ext-tokenizer": "*", 2478 | "php": ">=7.0" 2479 | }, 2480 | "require-dev": { 2481 | "ircmaxell/php-yacc": "0.0.5", 2482 | "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0" 2483 | }, 2484 | "bin": [ 2485 | "bin/php-parse" 2486 | ], 2487 | "type": "library", 2488 | "extra": { 2489 | "branch-alias": { 2490 | "dev-master": "4.3-dev" 2491 | } 2492 | }, 2493 | "autoload": { 2494 | "psr-4": { 2495 | "PhpParser\\": "lib/PhpParser" 2496 | } 2497 | }, 2498 | "notification-url": "https://packagist.org/downloads/", 2499 | "license": [ 2500 | "BSD-3-Clause" 2501 | ], 2502 | "authors": [ 2503 | { 2504 | "name": "Nikita Popov" 2505 | } 2506 | ], 2507 | "description": "A PHP parser written in PHP", 2508 | "keywords": [ 2509 | "parser", 2510 | "php" 2511 | ], 2512 | "time": "2019-11-08T13:50:10+00:00" 2513 | }, 2514 | { 2515 | "name": "phar-io/manifest", 2516 | "version": "1.0.3", 2517 | "source": { 2518 | "type": "git", 2519 | "url": "https://github.com/phar-io/manifest.git", 2520 | "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" 2521 | }, 2522 | "dist": { 2523 | "type": "zip", 2524 | "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", 2525 | "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", 2526 | "shasum": "" 2527 | }, 2528 | "require": { 2529 | "ext-dom": "*", 2530 | "ext-phar": "*", 2531 | "phar-io/version": "^2.0", 2532 | "php": "^5.6 || ^7.0" 2533 | }, 2534 | "type": "library", 2535 | "extra": { 2536 | "branch-alias": { 2537 | "dev-master": "1.0.x-dev" 2538 | } 2539 | }, 2540 | "autoload": { 2541 | "classmap": [ 2542 | "src/" 2543 | ] 2544 | }, 2545 | "notification-url": "https://packagist.org/downloads/", 2546 | "license": [ 2547 | "BSD-3-Clause" 2548 | ], 2549 | "authors": [ 2550 | { 2551 | "name": "Arne Blankerts", 2552 | "email": "arne@blankerts.de", 2553 | "role": "Developer" 2554 | }, 2555 | { 2556 | "name": "Sebastian Heuer", 2557 | "email": "sebastian@phpeople.de", 2558 | "role": "Developer" 2559 | }, 2560 | { 2561 | "name": "Sebastian Bergmann", 2562 | "email": "sebastian@phpunit.de", 2563 | "role": "Developer" 2564 | } 2565 | ], 2566 | "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", 2567 | "time": "2018-07-08T19:23:20+00:00" 2568 | }, 2569 | { 2570 | "name": "phar-io/version", 2571 | "version": "2.0.1", 2572 | "source": { 2573 | "type": "git", 2574 | "url": "https://github.com/phar-io/version.git", 2575 | "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" 2576 | }, 2577 | "dist": { 2578 | "type": "zip", 2579 | "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", 2580 | "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", 2581 | "shasum": "" 2582 | }, 2583 | "require": { 2584 | "php": "^5.6 || ^7.0" 2585 | }, 2586 | "type": "library", 2587 | "autoload": { 2588 | "classmap": [ 2589 | "src/" 2590 | ] 2591 | }, 2592 | "notification-url": "https://packagist.org/downloads/", 2593 | "license": [ 2594 | "BSD-3-Clause" 2595 | ], 2596 | "authors": [ 2597 | { 2598 | "name": "Arne Blankerts", 2599 | "email": "arne@blankerts.de", 2600 | "role": "Developer" 2601 | }, 2602 | { 2603 | "name": "Sebastian Heuer", 2604 | "email": "sebastian@phpeople.de", 2605 | "role": "Developer" 2606 | }, 2607 | { 2608 | "name": "Sebastian Bergmann", 2609 | "email": "sebastian@phpunit.de", 2610 | "role": "Developer" 2611 | } 2612 | ], 2613 | "description": "Library for handling version information and constraints", 2614 | "time": "2018-07-08T19:19:57+00:00" 2615 | }, 2616 | { 2617 | "name": "phpdocumentor/reflection-common", 2618 | "version": "2.0.0", 2619 | "source": { 2620 | "type": "git", 2621 | "url": "https://github.com/phpDocumentor/ReflectionCommon.git", 2622 | "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a" 2623 | }, 2624 | "dist": { 2625 | "type": "zip", 2626 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/63a995caa1ca9e5590304cd845c15ad6d482a62a", 2627 | "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a", 2628 | "shasum": "" 2629 | }, 2630 | "require": { 2631 | "php": ">=7.1" 2632 | }, 2633 | "require-dev": { 2634 | "phpunit/phpunit": "~6" 2635 | }, 2636 | "type": "library", 2637 | "extra": { 2638 | "branch-alias": { 2639 | "dev-master": "2.x-dev" 2640 | } 2641 | }, 2642 | "autoload": { 2643 | "psr-4": { 2644 | "phpDocumentor\\Reflection\\": "src/" 2645 | } 2646 | }, 2647 | "notification-url": "https://packagist.org/downloads/", 2648 | "license": [ 2649 | "MIT" 2650 | ], 2651 | "authors": [ 2652 | { 2653 | "name": "Jaap van Otterdijk", 2654 | "email": "opensource@ijaap.nl" 2655 | } 2656 | ], 2657 | "description": "Common reflection classes used by phpdocumentor to reflect the code structure", 2658 | "homepage": "http://www.phpdoc.org", 2659 | "keywords": [ 2660 | "FQSEN", 2661 | "phpDocumentor", 2662 | "phpdoc", 2663 | "reflection", 2664 | "static analysis" 2665 | ], 2666 | "time": "2018-08-07T13:53:10+00:00" 2667 | }, 2668 | { 2669 | "name": "phpdocumentor/reflection-docblock", 2670 | "version": "4.3.4", 2671 | "source": { 2672 | "type": "git", 2673 | "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", 2674 | "reference": "da3fd972d6bafd628114f7e7e036f45944b62e9c" 2675 | }, 2676 | "dist": { 2677 | "type": "zip", 2678 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/da3fd972d6bafd628114f7e7e036f45944b62e9c", 2679 | "reference": "da3fd972d6bafd628114f7e7e036f45944b62e9c", 2680 | "shasum": "" 2681 | }, 2682 | "require": { 2683 | "php": "^7.0", 2684 | "phpdocumentor/reflection-common": "^1.0.0 || ^2.0.0", 2685 | "phpdocumentor/type-resolver": "~0.4 || ^1.0.0", 2686 | "webmozart/assert": "^1.0" 2687 | }, 2688 | "require-dev": { 2689 | "doctrine/instantiator": "^1.0.5", 2690 | "mockery/mockery": "^1.0", 2691 | "phpdocumentor/type-resolver": "0.4.*", 2692 | "phpunit/phpunit": "^6.4" 2693 | }, 2694 | "type": "library", 2695 | "extra": { 2696 | "branch-alias": { 2697 | "dev-master": "4.x-dev" 2698 | } 2699 | }, 2700 | "autoload": { 2701 | "psr-4": { 2702 | "phpDocumentor\\Reflection\\": [ 2703 | "src/" 2704 | ] 2705 | } 2706 | }, 2707 | "notification-url": "https://packagist.org/downloads/", 2708 | "license": [ 2709 | "MIT" 2710 | ], 2711 | "authors": [ 2712 | { 2713 | "name": "Mike van Riel", 2714 | "email": "me@mikevanriel.com" 2715 | } 2716 | ], 2717 | "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", 2718 | "time": "2019-12-28T18:55:12+00:00" 2719 | }, 2720 | { 2721 | "name": "phpdocumentor/type-resolver", 2722 | "version": "1.0.1", 2723 | "source": { 2724 | "type": "git", 2725 | "url": "https://github.com/phpDocumentor/TypeResolver.git", 2726 | "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9" 2727 | }, 2728 | "dist": { 2729 | "type": "zip", 2730 | "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", 2731 | "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", 2732 | "shasum": "" 2733 | }, 2734 | "require": { 2735 | "php": "^7.1", 2736 | "phpdocumentor/reflection-common": "^2.0" 2737 | }, 2738 | "require-dev": { 2739 | "ext-tokenizer": "^7.1", 2740 | "mockery/mockery": "~1", 2741 | "phpunit/phpunit": "^7.0" 2742 | }, 2743 | "type": "library", 2744 | "extra": { 2745 | "branch-alias": { 2746 | "dev-master": "1.x-dev" 2747 | } 2748 | }, 2749 | "autoload": { 2750 | "psr-4": { 2751 | "phpDocumentor\\Reflection\\": "src" 2752 | } 2753 | }, 2754 | "notification-url": "https://packagist.org/downloads/", 2755 | "license": [ 2756 | "MIT" 2757 | ], 2758 | "authors": [ 2759 | { 2760 | "name": "Mike van Riel", 2761 | "email": "me@mikevanriel.com" 2762 | } 2763 | ], 2764 | "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", 2765 | "time": "2019-08-22T18:11:29+00:00" 2766 | }, 2767 | { 2768 | "name": "phpspec/prophecy", 2769 | "version": "v1.10.2", 2770 | "source": { 2771 | "type": "git", 2772 | "url": "https://github.com/phpspec/prophecy.git", 2773 | "reference": "b4400efc9d206e83138e2bb97ed7f5b14b831cd9" 2774 | }, 2775 | "dist": { 2776 | "type": "zip", 2777 | "url": "https://api.github.com/repos/phpspec/prophecy/zipball/b4400efc9d206e83138e2bb97ed7f5b14b831cd9", 2778 | "reference": "b4400efc9d206e83138e2bb97ed7f5b14b831cd9", 2779 | "shasum": "" 2780 | }, 2781 | "require": { 2782 | "doctrine/instantiator": "^1.0.2", 2783 | "php": "^5.3|^7.0", 2784 | "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", 2785 | "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0", 2786 | "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0" 2787 | }, 2788 | "require-dev": { 2789 | "phpspec/phpspec": "^2.5 || ^3.2", 2790 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" 2791 | }, 2792 | "type": "library", 2793 | "extra": { 2794 | "branch-alias": { 2795 | "dev-master": "1.10.x-dev" 2796 | } 2797 | }, 2798 | "autoload": { 2799 | "psr-4": { 2800 | "Prophecy\\": "src/Prophecy" 2801 | } 2802 | }, 2803 | "notification-url": "https://packagist.org/downloads/", 2804 | "license": [ 2805 | "MIT" 2806 | ], 2807 | "authors": [ 2808 | { 2809 | "name": "Konstantin Kudryashov", 2810 | "email": "ever.zet@gmail.com", 2811 | "homepage": "http://everzet.com" 2812 | }, 2813 | { 2814 | "name": "Marcello Duarte", 2815 | "email": "marcello.duarte@gmail.com" 2816 | } 2817 | ], 2818 | "description": "Highly opinionated mocking framework for PHP 5.3+", 2819 | "homepage": "https://github.com/phpspec/prophecy", 2820 | "keywords": [ 2821 | "Double", 2822 | "Dummy", 2823 | "fake", 2824 | "mock", 2825 | "spy", 2826 | "stub" 2827 | ], 2828 | "time": "2020-01-20T15:57:02+00:00" 2829 | }, 2830 | { 2831 | "name": "phpunit/php-code-coverage", 2832 | "version": "6.1.4", 2833 | "source": { 2834 | "type": "git", 2835 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git", 2836 | "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d" 2837 | }, 2838 | "dist": { 2839 | "type": "zip", 2840 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", 2841 | "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", 2842 | "shasum": "" 2843 | }, 2844 | "require": { 2845 | "ext-dom": "*", 2846 | "ext-xmlwriter": "*", 2847 | "php": "^7.1", 2848 | "phpunit/php-file-iterator": "^2.0", 2849 | "phpunit/php-text-template": "^1.2.1", 2850 | "phpunit/php-token-stream": "^3.0", 2851 | "sebastian/code-unit-reverse-lookup": "^1.0.1", 2852 | "sebastian/environment": "^3.1 || ^4.0", 2853 | "sebastian/version": "^2.0.1", 2854 | "theseer/tokenizer": "^1.1" 2855 | }, 2856 | "require-dev": { 2857 | "phpunit/phpunit": "^7.0" 2858 | }, 2859 | "suggest": { 2860 | "ext-xdebug": "^2.6.0" 2861 | }, 2862 | "type": "library", 2863 | "extra": { 2864 | "branch-alias": { 2865 | "dev-master": "6.1-dev" 2866 | } 2867 | }, 2868 | "autoload": { 2869 | "classmap": [ 2870 | "src/" 2871 | ] 2872 | }, 2873 | "notification-url": "https://packagist.org/downloads/", 2874 | "license": [ 2875 | "BSD-3-Clause" 2876 | ], 2877 | "authors": [ 2878 | { 2879 | "name": "Sebastian Bergmann", 2880 | "email": "sebastian@phpunit.de", 2881 | "role": "lead" 2882 | } 2883 | ], 2884 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", 2885 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage", 2886 | "keywords": [ 2887 | "coverage", 2888 | "testing", 2889 | "xunit" 2890 | ], 2891 | "time": "2018-10-31T16:06:48+00:00" 2892 | }, 2893 | { 2894 | "name": "phpunit/php-file-iterator", 2895 | "version": "2.0.2", 2896 | "source": { 2897 | "type": "git", 2898 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git", 2899 | "reference": "050bedf145a257b1ff02746c31894800e5122946" 2900 | }, 2901 | "dist": { 2902 | "type": "zip", 2903 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946", 2904 | "reference": "050bedf145a257b1ff02746c31894800e5122946", 2905 | "shasum": "" 2906 | }, 2907 | "require": { 2908 | "php": "^7.1" 2909 | }, 2910 | "require-dev": { 2911 | "phpunit/phpunit": "^7.1" 2912 | }, 2913 | "type": "library", 2914 | "extra": { 2915 | "branch-alias": { 2916 | "dev-master": "2.0.x-dev" 2917 | } 2918 | }, 2919 | "autoload": { 2920 | "classmap": [ 2921 | "src/" 2922 | ] 2923 | }, 2924 | "notification-url": "https://packagist.org/downloads/", 2925 | "license": [ 2926 | "BSD-3-Clause" 2927 | ], 2928 | "authors": [ 2929 | { 2930 | "name": "Sebastian Bergmann", 2931 | "email": "sebastian@phpunit.de", 2932 | "role": "lead" 2933 | } 2934 | ], 2935 | "description": "FilterIterator implementation that filters files based on a list of suffixes.", 2936 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", 2937 | "keywords": [ 2938 | "filesystem", 2939 | "iterator" 2940 | ], 2941 | "time": "2018-09-13T20:33:42+00:00" 2942 | }, 2943 | { 2944 | "name": "phpunit/php-text-template", 2945 | "version": "1.2.1", 2946 | "source": { 2947 | "type": "git", 2948 | "url": "https://github.com/sebastianbergmann/php-text-template.git", 2949 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" 2950 | }, 2951 | "dist": { 2952 | "type": "zip", 2953 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 2954 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 2955 | "shasum": "" 2956 | }, 2957 | "require": { 2958 | "php": ">=5.3.3" 2959 | }, 2960 | "type": "library", 2961 | "autoload": { 2962 | "classmap": [ 2963 | "src/" 2964 | ] 2965 | }, 2966 | "notification-url": "https://packagist.org/downloads/", 2967 | "license": [ 2968 | "BSD-3-Clause" 2969 | ], 2970 | "authors": [ 2971 | { 2972 | "name": "Sebastian Bergmann", 2973 | "email": "sebastian@phpunit.de", 2974 | "role": "lead" 2975 | } 2976 | ], 2977 | "description": "Simple template engine.", 2978 | "homepage": "https://github.com/sebastianbergmann/php-text-template/", 2979 | "keywords": [ 2980 | "template" 2981 | ], 2982 | "time": "2015-06-21T13:50:34+00:00" 2983 | }, 2984 | { 2985 | "name": "phpunit/php-timer", 2986 | "version": "2.1.2", 2987 | "source": { 2988 | "type": "git", 2989 | "url": "https://github.com/sebastianbergmann/php-timer.git", 2990 | "reference": "1038454804406b0b5f5f520358e78c1c2f71501e" 2991 | }, 2992 | "dist": { 2993 | "type": "zip", 2994 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e", 2995 | "reference": "1038454804406b0b5f5f520358e78c1c2f71501e", 2996 | "shasum": "" 2997 | }, 2998 | "require": { 2999 | "php": "^7.1" 3000 | }, 3001 | "require-dev": { 3002 | "phpunit/phpunit": "^7.0" 3003 | }, 3004 | "type": "library", 3005 | "extra": { 3006 | "branch-alias": { 3007 | "dev-master": "2.1-dev" 3008 | } 3009 | }, 3010 | "autoload": { 3011 | "classmap": [ 3012 | "src/" 3013 | ] 3014 | }, 3015 | "notification-url": "https://packagist.org/downloads/", 3016 | "license": [ 3017 | "BSD-3-Clause" 3018 | ], 3019 | "authors": [ 3020 | { 3021 | "name": "Sebastian Bergmann", 3022 | "email": "sebastian@phpunit.de", 3023 | "role": "lead" 3024 | } 3025 | ], 3026 | "description": "Utility class for timing", 3027 | "homepage": "https://github.com/sebastianbergmann/php-timer/", 3028 | "keywords": [ 3029 | "timer" 3030 | ], 3031 | "time": "2019-06-07T04:22:29+00:00" 3032 | }, 3033 | { 3034 | "name": "phpunit/php-token-stream", 3035 | "version": "3.1.1", 3036 | "source": { 3037 | "type": "git", 3038 | "url": "https://github.com/sebastianbergmann/php-token-stream.git", 3039 | "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff" 3040 | }, 3041 | "dist": { 3042 | "type": "zip", 3043 | "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/995192df77f63a59e47f025390d2d1fdf8f425ff", 3044 | "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff", 3045 | "shasum": "" 3046 | }, 3047 | "require": { 3048 | "ext-tokenizer": "*", 3049 | "php": "^7.1" 3050 | }, 3051 | "require-dev": { 3052 | "phpunit/phpunit": "^7.0" 3053 | }, 3054 | "type": "library", 3055 | "extra": { 3056 | "branch-alias": { 3057 | "dev-master": "3.1-dev" 3058 | } 3059 | }, 3060 | "autoload": { 3061 | "classmap": [ 3062 | "src/" 3063 | ] 3064 | }, 3065 | "notification-url": "https://packagist.org/downloads/", 3066 | "license": [ 3067 | "BSD-3-Clause" 3068 | ], 3069 | "authors": [ 3070 | { 3071 | "name": "Sebastian Bergmann", 3072 | "email": "sebastian@phpunit.de" 3073 | } 3074 | ], 3075 | "description": "Wrapper around PHP's tokenizer extension.", 3076 | "homepage": "https://github.com/sebastianbergmann/php-token-stream/", 3077 | "keywords": [ 3078 | "tokenizer" 3079 | ], 3080 | "time": "2019-09-17T06:23:10+00:00" 3081 | }, 3082 | { 3083 | "name": "phpunit/phpunit", 3084 | "version": "7.5.20", 3085 | "source": { 3086 | "type": "git", 3087 | "url": "https://github.com/sebastianbergmann/phpunit.git", 3088 | "reference": "9467db479d1b0487c99733bb1e7944d32deded2c" 3089 | }, 3090 | "dist": { 3091 | "type": "zip", 3092 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9467db479d1b0487c99733bb1e7944d32deded2c", 3093 | "reference": "9467db479d1b0487c99733bb1e7944d32deded2c", 3094 | "shasum": "" 3095 | }, 3096 | "require": { 3097 | "doctrine/instantiator": "^1.1", 3098 | "ext-dom": "*", 3099 | "ext-json": "*", 3100 | "ext-libxml": "*", 3101 | "ext-mbstring": "*", 3102 | "ext-xml": "*", 3103 | "myclabs/deep-copy": "^1.7", 3104 | "phar-io/manifest": "^1.0.2", 3105 | "phar-io/version": "^2.0", 3106 | "php": "^7.1", 3107 | "phpspec/prophecy": "^1.7", 3108 | "phpunit/php-code-coverage": "^6.0.7", 3109 | "phpunit/php-file-iterator": "^2.0.1", 3110 | "phpunit/php-text-template": "^1.2.1", 3111 | "phpunit/php-timer": "^2.1", 3112 | "sebastian/comparator": "^3.0", 3113 | "sebastian/diff": "^3.0", 3114 | "sebastian/environment": "^4.0", 3115 | "sebastian/exporter": "^3.1", 3116 | "sebastian/global-state": "^2.0", 3117 | "sebastian/object-enumerator": "^3.0.3", 3118 | "sebastian/resource-operations": "^2.0", 3119 | "sebastian/version": "^2.0.1" 3120 | }, 3121 | "conflict": { 3122 | "phpunit/phpunit-mock-objects": "*" 3123 | }, 3124 | "require-dev": { 3125 | "ext-pdo": "*" 3126 | }, 3127 | "suggest": { 3128 | "ext-soap": "*", 3129 | "ext-xdebug": "*", 3130 | "phpunit/php-invoker": "^2.0" 3131 | }, 3132 | "bin": [ 3133 | "phpunit" 3134 | ], 3135 | "type": "library", 3136 | "extra": { 3137 | "branch-alias": { 3138 | "dev-master": "7.5-dev" 3139 | } 3140 | }, 3141 | "autoload": { 3142 | "classmap": [ 3143 | "src/" 3144 | ] 3145 | }, 3146 | "notification-url": "https://packagist.org/downloads/", 3147 | "license": [ 3148 | "BSD-3-Clause" 3149 | ], 3150 | "authors": [ 3151 | { 3152 | "name": "Sebastian Bergmann", 3153 | "email": "sebastian@phpunit.de", 3154 | "role": "lead" 3155 | } 3156 | ], 3157 | "description": "The PHP Unit Testing framework.", 3158 | "homepage": "https://phpunit.de/", 3159 | "keywords": [ 3160 | "phpunit", 3161 | "testing", 3162 | "xunit" 3163 | ], 3164 | "time": "2020-01-08T08:45:45+00:00" 3165 | }, 3166 | { 3167 | "name": "psy/psysh", 3168 | "version": "v0.9.12", 3169 | "source": { 3170 | "type": "git", 3171 | "url": "https://github.com/bobthecow/psysh.git", 3172 | "reference": "90da7f37568aee36b116a030c5f99c915267edd4" 3173 | }, 3174 | "dist": { 3175 | "type": "zip", 3176 | "url": "https://api.github.com/repos/bobthecow/psysh/zipball/90da7f37568aee36b116a030c5f99c915267edd4", 3177 | "reference": "90da7f37568aee36b116a030c5f99c915267edd4", 3178 | "shasum": "" 3179 | }, 3180 | "require": { 3181 | "dnoegel/php-xdg-base-dir": "0.1.*", 3182 | "ext-json": "*", 3183 | "ext-tokenizer": "*", 3184 | "jakub-onderka/php-console-highlighter": "0.3.*|0.4.*", 3185 | "nikic/php-parser": "~1.3|~2.0|~3.0|~4.0", 3186 | "php": ">=5.4.0", 3187 | "symfony/console": "~2.3.10|^2.4.2|~3.0|~4.0|~5.0", 3188 | "symfony/var-dumper": "~2.7|~3.0|~4.0|~5.0" 3189 | }, 3190 | "require-dev": { 3191 | "bamarni/composer-bin-plugin": "^1.2", 3192 | "hoa/console": "~2.15|~3.16", 3193 | "phpunit/phpunit": "~4.8.35|~5.0|~6.0|~7.0" 3194 | }, 3195 | "suggest": { 3196 | "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", 3197 | "ext-pdo-sqlite": "The doc command requires SQLite to work.", 3198 | "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.", 3199 | "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history.", 3200 | "hoa/console": "A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit." 3201 | }, 3202 | "bin": [ 3203 | "bin/psysh" 3204 | ], 3205 | "type": "library", 3206 | "extra": { 3207 | "branch-alias": { 3208 | "dev-develop": "0.9.x-dev" 3209 | } 3210 | }, 3211 | "autoload": { 3212 | "files": [ 3213 | "src/functions.php" 3214 | ], 3215 | "psr-4": { 3216 | "Psy\\": "src/" 3217 | } 3218 | }, 3219 | "notification-url": "https://packagist.org/downloads/", 3220 | "license": [ 3221 | "MIT" 3222 | ], 3223 | "authors": [ 3224 | { 3225 | "name": "Justin Hileman", 3226 | "email": "justin@justinhileman.info", 3227 | "homepage": "http://justinhileman.com" 3228 | } 3229 | ], 3230 | "description": "An interactive shell for modern PHP.", 3231 | "homepage": "http://psysh.org", 3232 | "keywords": [ 3233 | "REPL", 3234 | "console", 3235 | "interactive", 3236 | "shell" 3237 | ], 3238 | "time": "2019-12-06T14:19:43+00:00" 3239 | }, 3240 | { 3241 | "name": "sebastian/code-unit-reverse-lookup", 3242 | "version": "1.0.1", 3243 | "source": { 3244 | "type": "git", 3245 | "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", 3246 | "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" 3247 | }, 3248 | "dist": { 3249 | "type": "zip", 3250 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", 3251 | "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", 3252 | "shasum": "" 3253 | }, 3254 | "require": { 3255 | "php": "^5.6 || ^7.0" 3256 | }, 3257 | "require-dev": { 3258 | "phpunit/phpunit": "^5.7 || ^6.0" 3259 | }, 3260 | "type": "library", 3261 | "extra": { 3262 | "branch-alias": { 3263 | "dev-master": "1.0.x-dev" 3264 | } 3265 | }, 3266 | "autoload": { 3267 | "classmap": [ 3268 | "src/" 3269 | ] 3270 | }, 3271 | "notification-url": "https://packagist.org/downloads/", 3272 | "license": [ 3273 | "BSD-3-Clause" 3274 | ], 3275 | "authors": [ 3276 | { 3277 | "name": "Sebastian Bergmann", 3278 | "email": "sebastian@phpunit.de" 3279 | } 3280 | ], 3281 | "description": "Looks up which function or method a line of code belongs to", 3282 | "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", 3283 | "time": "2017-03-04T06:30:41+00:00" 3284 | }, 3285 | { 3286 | "name": "sebastian/comparator", 3287 | "version": "3.0.2", 3288 | "source": { 3289 | "type": "git", 3290 | "url": "https://github.com/sebastianbergmann/comparator.git", 3291 | "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" 3292 | }, 3293 | "dist": { 3294 | "type": "zip", 3295 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", 3296 | "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", 3297 | "shasum": "" 3298 | }, 3299 | "require": { 3300 | "php": "^7.1", 3301 | "sebastian/diff": "^3.0", 3302 | "sebastian/exporter": "^3.1" 3303 | }, 3304 | "require-dev": { 3305 | "phpunit/phpunit": "^7.1" 3306 | }, 3307 | "type": "library", 3308 | "extra": { 3309 | "branch-alias": { 3310 | "dev-master": "3.0-dev" 3311 | } 3312 | }, 3313 | "autoload": { 3314 | "classmap": [ 3315 | "src/" 3316 | ] 3317 | }, 3318 | "notification-url": "https://packagist.org/downloads/", 3319 | "license": [ 3320 | "BSD-3-Clause" 3321 | ], 3322 | "authors": [ 3323 | { 3324 | "name": "Jeff Welch", 3325 | "email": "whatthejeff@gmail.com" 3326 | }, 3327 | { 3328 | "name": "Volker Dusch", 3329 | "email": "github@wallbash.com" 3330 | }, 3331 | { 3332 | "name": "Bernhard Schussek", 3333 | "email": "bschussek@2bepublished.at" 3334 | }, 3335 | { 3336 | "name": "Sebastian Bergmann", 3337 | "email": "sebastian@phpunit.de" 3338 | } 3339 | ], 3340 | "description": "Provides the functionality to compare PHP values for equality", 3341 | "homepage": "https://github.com/sebastianbergmann/comparator", 3342 | "keywords": [ 3343 | "comparator", 3344 | "compare", 3345 | "equality" 3346 | ], 3347 | "time": "2018-07-12T15:12:46+00:00" 3348 | }, 3349 | { 3350 | "name": "sebastian/diff", 3351 | "version": "3.0.2", 3352 | "source": { 3353 | "type": "git", 3354 | "url": "https://github.com/sebastianbergmann/diff.git", 3355 | "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29" 3356 | }, 3357 | "dist": { 3358 | "type": "zip", 3359 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29", 3360 | "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29", 3361 | "shasum": "" 3362 | }, 3363 | "require": { 3364 | "php": "^7.1" 3365 | }, 3366 | "require-dev": { 3367 | "phpunit/phpunit": "^7.5 || ^8.0", 3368 | "symfony/process": "^2 || ^3.3 || ^4" 3369 | }, 3370 | "type": "library", 3371 | "extra": { 3372 | "branch-alias": { 3373 | "dev-master": "3.0-dev" 3374 | } 3375 | }, 3376 | "autoload": { 3377 | "classmap": [ 3378 | "src/" 3379 | ] 3380 | }, 3381 | "notification-url": "https://packagist.org/downloads/", 3382 | "license": [ 3383 | "BSD-3-Clause" 3384 | ], 3385 | "authors": [ 3386 | { 3387 | "name": "Kore Nordmann", 3388 | "email": "mail@kore-nordmann.de" 3389 | }, 3390 | { 3391 | "name": "Sebastian Bergmann", 3392 | "email": "sebastian@phpunit.de" 3393 | } 3394 | ], 3395 | "description": "Diff implementation", 3396 | "homepage": "https://github.com/sebastianbergmann/diff", 3397 | "keywords": [ 3398 | "diff", 3399 | "udiff", 3400 | "unidiff", 3401 | "unified diff" 3402 | ], 3403 | "time": "2019-02-04T06:01:07+00:00" 3404 | }, 3405 | { 3406 | "name": "sebastian/environment", 3407 | "version": "4.2.3", 3408 | "source": { 3409 | "type": "git", 3410 | "url": "https://github.com/sebastianbergmann/environment.git", 3411 | "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368" 3412 | }, 3413 | "dist": { 3414 | "type": "zip", 3415 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/464c90d7bdf5ad4e8a6aea15c091fec0603d4368", 3416 | "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368", 3417 | "shasum": "" 3418 | }, 3419 | "require": { 3420 | "php": "^7.1" 3421 | }, 3422 | "require-dev": { 3423 | "phpunit/phpunit": "^7.5" 3424 | }, 3425 | "suggest": { 3426 | "ext-posix": "*" 3427 | }, 3428 | "type": "library", 3429 | "extra": { 3430 | "branch-alias": { 3431 | "dev-master": "4.2-dev" 3432 | } 3433 | }, 3434 | "autoload": { 3435 | "classmap": [ 3436 | "src/" 3437 | ] 3438 | }, 3439 | "notification-url": "https://packagist.org/downloads/", 3440 | "license": [ 3441 | "BSD-3-Clause" 3442 | ], 3443 | "authors": [ 3444 | { 3445 | "name": "Sebastian Bergmann", 3446 | "email": "sebastian@phpunit.de" 3447 | } 3448 | ], 3449 | "description": "Provides functionality to handle HHVM/PHP environments", 3450 | "homepage": "http://www.github.com/sebastianbergmann/environment", 3451 | "keywords": [ 3452 | "Xdebug", 3453 | "environment", 3454 | "hhvm" 3455 | ], 3456 | "time": "2019-11-20T08:46:58+00:00" 3457 | }, 3458 | { 3459 | "name": "sebastian/exporter", 3460 | "version": "3.1.2", 3461 | "source": { 3462 | "type": "git", 3463 | "url": "https://github.com/sebastianbergmann/exporter.git", 3464 | "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e" 3465 | }, 3466 | "dist": { 3467 | "type": "zip", 3468 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e", 3469 | "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e", 3470 | "shasum": "" 3471 | }, 3472 | "require": { 3473 | "php": "^7.0", 3474 | "sebastian/recursion-context": "^3.0" 3475 | }, 3476 | "require-dev": { 3477 | "ext-mbstring": "*", 3478 | "phpunit/phpunit": "^6.0" 3479 | }, 3480 | "type": "library", 3481 | "extra": { 3482 | "branch-alias": { 3483 | "dev-master": "3.1.x-dev" 3484 | } 3485 | }, 3486 | "autoload": { 3487 | "classmap": [ 3488 | "src/" 3489 | ] 3490 | }, 3491 | "notification-url": "https://packagist.org/downloads/", 3492 | "license": [ 3493 | "BSD-3-Clause" 3494 | ], 3495 | "authors": [ 3496 | { 3497 | "name": "Sebastian Bergmann", 3498 | "email": "sebastian@phpunit.de" 3499 | }, 3500 | { 3501 | "name": "Jeff Welch", 3502 | "email": "whatthejeff@gmail.com" 3503 | }, 3504 | { 3505 | "name": "Volker Dusch", 3506 | "email": "github@wallbash.com" 3507 | }, 3508 | { 3509 | "name": "Adam Harvey", 3510 | "email": "aharvey@php.net" 3511 | }, 3512 | { 3513 | "name": "Bernhard Schussek", 3514 | "email": "bschussek@gmail.com" 3515 | } 3516 | ], 3517 | "description": "Provides the functionality to export PHP variables for visualization", 3518 | "homepage": "http://www.github.com/sebastianbergmann/exporter", 3519 | "keywords": [ 3520 | "export", 3521 | "exporter" 3522 | ], 3523 | "time": "2019-09-14T09:02:43+00:00" 3524 | }, 3525 | { 3526 | "name": "sebastian/global-state", 3527 | "version": "2.0.0", 3528 | "source": { 3529 | "type": "git", 3530 | "url": "https://github.com/sebastianbergmann/global-state.git", 3531 | "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" 3532 | }, 3533 | "dist": { 3534 | "type": "zip", 3535 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", 3536 | "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", 3537 | "shasum": "" 3538 | }, 3539 | "require": { 3540 | "php": "^7.0" 3541 | }, 3542 | "require-dev": { 3543 | "phpunit/phpunit": "^6.0" 3544 | }, 3545 | "suggest": { 3546 | "ext-uopz": "*" 3547 | }, 3548 | "type": "library", 3549 | "extra": { 3550 | "branch-alias": { 3551 | "dev-master": "2.0-dev" 3552 | } 3553 | }, 3554 | "autoload": { 3555 | "classmap": [ 3556 | "src/" 3557 | ] 3558 | }, 3559 | "notification-url": "https://packagist.org/downloads/", 3560 | "license": [ 3561 | "BSD-3-Clause" 3562 | ], 3563 | "authors": [ 3564 | { 3565 | "name": "Sebastian Bergmann", 3566 | "email": "sebastian@phpunit.de" 3567 | } 3568 | ], 3569 | "description": "Snapshotting of global state", 3570 | "homepage": "http://www.github.com/sebastianbergmann/global-state", 3571 | "keywords": [ 3572 | "global state" 3573 | ], 3574 | "time": "2017-04-27T15:39:26+00:00" 3575 | }, 3576 | { 3577 | "name": "sebastian/object-enumerator", 3578 | "version": "3.0.3", 3579 | "source": { 3580 | "type": "git", 3581 | "url": "https://github.com/sebastianbergmann/object-enumerator.git", 3582 | "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" 3583 | }, 3584 | "dist": { 3585 | "type": "zip", 3586 | "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", 3587 | "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", 3588 | "shasum": "" 3589 | }, 3590 | "require": { 3591 | "php": "^7.0", 3592 | "sebastian/object-reflector": "^1.1.1", 3593 | "sebastian/recursion-context": "^3.0" 3594 | }, 3595 | "require-dev": { 3596 | "phpunit/phpunit": "^6.0" 3597 | }, 3598 | "type": "library", 3599 | "extra": { 3600 | "branch-alias": { 3601 | "dev-master": "3.0.x-dev" 3602 | } 3603 | }, 3604 | "autoload": { 3605 | "classmap": [ 3606 | "src/" 3607 | ] 3608 | }, 3609 | "notification-url": "https://packagist.org/downloads/", 3610 | "license": [ 3611 | "BSD-3-Clause" 3612 | ], 3613 | "authors": [ 3614 | { 3615 | "name": "Sebastian Bergmann", 3616 | "email": "sebastian@phpunit.de" 3617 | } 3618 | ], 3619 | "description": "Traverses array structures and object graphs to enumerate all referenced objects", 3620 | "homepage": "https://github.com/sebastianbergmann/object-enumerator/", 3621 | "time": "2017-08-03T12:35:26+00:00" 3622 | }, 3623 | { 3624 | "name": "sebastian/object-reflector", 3625 | "version": "1.1.1", 3626 | "source": { 3627 | "type": "git", 3628 | "url": "https://github.com/sebastianbergmann/object-reflector.git", 3629 | "reference": "773f97c67f28de00d397be301821b06708fca0be" 3630 | }, 3631 | "dist": { 3632 | "type": "zip", 3633 | "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", 3634 | "reference": "773f97c67f28de00d397be301821b06708fca0be", 3635 | "shasum": "" 3636 | }, 3637 | "require": { 3638 | "php": "^7.0" 3639 | }, 3640 | "require-dev": { 3641 | "phpunit/phpunit": "^6.0" 3642 | }, 3643 | "type": "library", 3644 | "extra": { 3645 | "branch-alias": { 3646 | "dev-master": "1.1-dev" 3647 | } 3648 | }, 3649 | "autoload": { 3650 | "classmap": [ 3651 | "src/" 3652 | ] 3653 | }, 3654 | "notification-url": "https://packagist.org/downloads/", 3655 | "license": [ 3656 | "BSD-3-Clause" 3657 | ], 3658 | "authors": [ 3659 | { 3660 | "name": "Sebastian Bergmann", 3661 | "email": "sebastian@phpunit.de" 3662 | } 3663 | ], 3664 | "description": "Allows reflection of object attributes, including inherited and non-public ones", 3665 | "homepage": "https://github.com/sebastianbergmann/object-reflector/", 3666 | "time": "2017-03-29T09:07:27+00:00" 3667 | }, 3668 | { 3669 | "name": "sebastian/recursion-context", 3670 | "version": "3.0.0", 3671 | "source": { 3672 | "type": "git", 3673 | "url": "https://github.com/sebastianbergmann/recursion-context.git", 3674 | "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" 3675 | }, 3676 | "dist": { 3677 | "type": "zip", 3678 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", 3679 | "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", 3680 | "shasum": "" 3681 | }, 3682 | "require": { 3683 | "php": "^7.0" 3684 | }, 3685 | "require-dev": { 3686 | "phpunit/phpunit": "^6.0" 3687 | }, 3688 | "type": "library", 3689 | "extra": { 3690 | "branch-alias": { 3691 | "dev-master": "3.0.x-dev" 3692 | } 3693 | }, 3694 | "autoload": { 3695 | "classmap": [ 3696 | "src/" 3697 | ] 3698 | }, 3699 | "notification-url": "https://packagist.org/downloads/", 3700 | "license": [ 3701 | "BSD-3-Clause" 3702 | ], 3703 | "authors": [ 3704 | { 3705 | "name": "Jeff Welch", 3706 | "email": "whatthejeff@gmail.com" 3707 | }, 3708 | { 3709 | "name": "Sebastian Bergmann", 3710 | "email": "sebastian@phpunit.de" 3711 | }, 3712 | { 3713 | "name": "Adam Harvey", 3714 | "email": "aharvey@php.net" 3715 | } 3716 | ], 3717 | "description": "Provides functionality to recursively process PHP variables", 3718 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context", 3719 | "time": "2017-03-03T06:23:57+00:00" 3720 | }, 3721 | { 3722 | "name": "sebastian/resource-operations", 3723 | "version": "2.0.1", 3724 | "source": { 3725 | "type": "git", 3726 | "url": "https://github.com/sebastianbergmann/resource-operations.git", 3727 | "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9" 3728 | }, 3729 | "dist": { 3730 | "type": "zip", 3731 | "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9", 3732 | "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9", 3733 | "shasum": "" 3734 | }, 3735 | "require": { 3736 | "php": "^7.1" 3737 | }, 3738 | "type": "library", 3739 | "extra": { 3740 | "branch-alias": { 3741 | "dev-master": "2.0-dev" 3742 | } 3743 | }, 3744 | "autoload": { 3745 | "classmap": [ 3746 | "src/" 3747 | ] 3748 | }, 3749 | "notification-url": "https://packagist.org/downloads/", 3750 | "license": [ 3751 | "BSD-3-Clause" 3752 | ], 3753 | "authors": [ 3754 | { 3755 | "name": "Sebastian Bergmann", 3756 | "email": "sebastian@phpunit.de" 3757 | } 3758 | ], 3759 | "description": "Provides a list of PHP built-in functions that operate on resources", 3760 | "homepage": "https://www.github.com/sebastianbergmann/resource-operations", 3761 | "time": "2018-10-04T04:07:39+00:00" 3762 | }, 3763 | { 3764 | "name": "sebastian/version", 3765 | "version": "2.0.1", 3766 | "source": { 3767 | "type": "git", 3768 | "url": "https://github.com/sebastianbergmann/version.git", 3769 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" 3770 | }, 3771 | "dist": { 3772 | "type": "zip", 3773 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", 3774 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", 3775 | "shasum": "" 3776 | }, 3777 | "require": { 3778 | "php": ">=5.6" 3779 | }, 3780 | "type": "library", 3781 | "extra": { 3782 | "branch-alias": { 3783 | "dev-master": "2.0.x-dev" 3784 | } 3785 | }, 3786 | "autoload": { 3787 | "classmap": [ 3788 | "src/" 3789 | ] 3790 | }, 3791 | "notification-url": "https://packagist.org/downloads/", 3792 | "license": [ 3793 | "BSD-3-Clause" 3794 | ], 3795 | "authors": [ 3796 | { 3797 | "name": "Sebastian Bergmann", 3798 | "email": "sebastian@phpunit.de", 3799 | "role": "lead" 3800 | } 3801 | ], 3802 | "description": "Library that helps with managing the version number of Git-hosted PHP projects", 3803 | "homepage": "https://github.com/sebastianbergmann/version", 3804 | "time": "2016-10-03T07:35:21+00:00" 3805 | }, 3806 | { 3807 | "name": "squizlabs/php_codesniffer", 3808 | "version": "3.5.4", 3809 | "source": { 3810 | "type": "git", 3811 | "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", 3812 | "reference": "dceec07328401de6211037abbb18bda423677e26" 3813 | }, 3814 | "dist": { 3815 | "type": "zip", 3816 | "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/dceec07328401de6211037abbb18bda423677e26", 3817 | "reference": "dceec07328401de6211037abbb18bda423677e26", 3818 | "shasum": "" 3819 | }, 3820 | "require": { 3821 | "ext-simplexml": "*", 3822 | "ext-tokenizer": "*", 3823 | "ext-xmlwriter": "*", 3824 | "php": ">=5.4.0" 3825 | }, 3826 | "require-dev": { 3827 | "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" 3828 | }, 3829 | "bin": [ 3830 | "bin/phpcs", 3831 | "bin/phpcbf" 3832 | ], 3833 | "type": "library", 3834 | "extra": { 3835 | "branch-alias": { 3836 | "dev-master": "3.x-dev" 3837 | } 3838 | }, 3839 | "notification-url": "https://packagist.org/downloads/", 3840 | "license": [ 3841 | "BSD-3-Clause" 3842 | ], 3843 | "authors": [ 3844 | { 3845 | "name": "Greg Sherwood", 3846 | "role": "lead" 3847 | } 3848 | ], 3849 | "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", 3850 | "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", 3851 | "keywords": [ 3852 | "phpcs", 3853 | "standards" 3854 | ], 3855 | "time": "2020-01-30T22:20:29+00:00" 3856 | }, 3857 | { 3858 | "name": "symfony/polyfill-php72", 3859 | "version": "v1.14.0", 3860 | "source": { 3861 | "type": "git", 3862 | "url": "https://github.com/symfony/polyfill-php72.git", 3863 | "reference": "46ecacf4751dd0dc81e4f6bf01dbf9da1dc1dadf" 3864 | }, 3865 | "dist": { 3866 | "type": "zip", 3867 | "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/46ecacf4751dd0dc81e4f6bf01dbf9da1dc1dadf", 3868 | "reference": "46ecacf4751dd0dc81e4f6bf01dbf9da1dc1dadf", 3869 | "shasum": "" 3870 | }, 3871 | "require": { 3872 | "php": ">=5.3.3" 3873 | }, 3874 | "type": "library", 3875 | "extra": { 3876 | "branch-alias": { 3877 | "dev-master": "1.14-dev" 3878 | } 3879 | }, 3880 | "autoload": { 3881 | "psr-4": { 3882 | "Symfony\\Polyfill\\Php72\\": "" 3883 | }, 3884 | "files": [ 3885 | "bootstrap.php" 3886 | ] 3887 | }, 3888 | "notification-url": "https://packagist.org/downloads/", 3889 | "license": [ 3890 | "MIT" 3891 | ], 3892 | "authors": [ 3893 | { 3894 | "name": "Nicolas Grekas", 3895 | "email": "p@tchwork.com" 3896 | }, 3897 | { 3898 | "name": "Symfony Community", 3899 | "homepage": "https://symfony.com/contributors" 3900 | } 3901 | ], 3902 | "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", 3903 | "homepage": "https://symfony.com", 3904 | "keywords": [ 3905 | "compatibility", 3906 | "polyfill", 3907 | "portable", 3908 | "shim" 3909 | ], 3910 | "time": "2020-01-13T11:15:53+00:00" 3911 | }, 3912 | { 3913 | "name": "symfony/var-dumper", 3914 | "version": "v4.4.4", 3915 | "source": { 3916 | "type": "git", 3917 | "url": "https://github.com/symfony/var-dumper.git", 3918 | "reference": "46b53fd714568af343953c039ff47b67ce8af8d6" 3919 | }, 3920 | "dist": { 3921 | "type": "zip", 3922 | "url": "https://api.github.com/repos/symfony/var-dumper/zipball/46b53fd714568af343953c039ff47b67ce8af8d6", 3923 | "reference": "46b53fd714568af343953c039ff47b67ce8af8d6", 3924 | "shasum": "" 3925 | }, 3926 | "require": { 3927 | "php": "^7.1.3", 3928 | "symfony/polyfill-mbstring": "~1.0", 3929 | "symfony/polyfill-php72": "~1.5" 3930 | }, 3931 | "conflict": { 3932 | "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", 3933 | "symfony/console": "<3.4" 3934 | }, 3935 | "require-dev": { 3936 | "ext-iconv": "*", 3937 | "symfony/console": "^3.4|^4.0|^5.0", 3938 | "symfony/process": "^4.4|^5.0", 3939 | "twig/twig": "^1.34|^2.4|^3.0" 3940 | }, 3941 | "suggest": { 3942 | "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", 3943 | "ext-intl": "To show region name in time zone dump", 3944 | "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" 3945 | }, 3946 | "bin": [ 3947 | "Resources/bin/var-dump-server" 3948 | ], 3949 | "type": "library", 3950 | "extra": { 3951 | "branch-alias": { 3952 | "dev-master": "4.4-dev" 3953 | } 3954 | }, 3955 | "autoload": { 3956 | "files": [ 3957 | "Resources/functions/dump.php" 3958 | ], 3959 | "psr-4": { 3960 | "Symfony\\Component\\VarDumper\\": "" 3961 | }, 3962 | "exclude-from-classmap": [ 3963 | "/Tests/" 3964 | ] 3965 | }, 3966 | "notification-url": "https://packagist.org/downloads/", 3967 | "license": [ 3968 | "MIT" 3969 | ], 3970 | "authors": [ 3971 | { 3972 | "name": "Nicolas Grekas", 3973 | "email": "p@tchwork.com" 3974 | }, 3975 | { 3976 | "name": "Symfony Community", 3977 | "homepage": "https://symfony.com/contributors" 3978 | } 3979 | ], 3980 | "description": "Symfony mechanism for exploring and dumping PHP variables", 3981 | "homepage": "https://symfony.com", 3982 | "keywords": [ 3983 | "debug", 3984 | "dump" 3985 | ], 3986 | "time": "2020-01-25T12:44:29+00:00" 3987 | }, 3988 | { 3989 | "name": "theseer/tokenizer", 3990 | "version": "1.1.3", 3991 | "source": { 3992 | "type": "git", 3993 | "url": "https://github.com/theseer/tokenizer.git", 3994 | "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9" 3995 | }, 3996 | "dist": { 3997 | "type": "zip", 3998 | "url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9", 3999 | "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9", 4000 | "shasum": "" 4001 | }, 4002 | "require": { 4003 | "ext-dom": "*", 4004 | "ext-tokenizer": "*", 4005 | "ext-xmlwriter": "*", 4006 | "php": "^7.0" 4007 | }, 4008 | "type": "library", 4009 | "autoload": { 4010 | "classmap": [ 4011 | "src/" 4012 | ] 4013 | }, 4014 | "notification-url": "https://packagist.org/downloads/", 4015 | "license": [ 4016 | "BSD-3-Clause" 4017 | ], 4018 | "authors": [ 4019 | { 4020 | "name": "Arne Blankerts", 4021 | "email": "arne@blankerts.de", 4022 | "role": "Developer" 4023 | } 4024 | ], 4025 | "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", 4026 | "time": "2019-06-13T22:48:21+00:00" 4027 | }, 4028 | { 4029 | "name": "webmozart/assert", 4030 | "version": "1.7.0", 4031 | "source": { 4032 | "type": "git", 4033 | "url": "https://github.com/webmozart/assert.git", 4034 | "reference": "aed98a490f9a8f78468232db345ab9cf606cf598" 4035 | }, 4036 | "dist": { 4037 | "type": "zip", 4038 | "url": "https://api.github.com/repos/webmozart/assert/zipball/aed98a490f9a8f78468232db345ab9cf606cf598", 4039 | "reference": "aed98a490f9a8f78468232db345ab9cf606cf598", 4040 | "shasum": "" 4041 | }, 4042 | "require": { 4043 | "php": "^5.3.3 || ^7.0", 4044 | "symfony/polyfill-ctype": "^1.8" 4045 | }, 4046 | "conflict": { 4047 | "vimeo/psalm": "<3.6.0" 4048 | }, 4049 | "require-dev": { 4050 | "phpunit/phpunit": "^4.8.36 || ^7.5.13" 4051 | }, 4052 | "type": "library", 4053 | "autoload": { 4054 | "psr-4": { 4055 | "Webmozart\\Assert\\": "src/" 4056 | } 4057 | }, 4058 | "notification-url": "https://packagist.org/downloads/", 4059 | "license": [ 4060 | "MIT" 4061 | ], 4062 | "authors": [ 4063 | { 4064 | "name": "Bernhard Schussek", 4065 | "email": "bschussek@gmail.com" 4066 | } 4067 | ], 4068 | "description": "Assertions to validate method input/output with nice error messages.", 4069 | "keywords": [ 4070 | "assert", 4071 | "check", 4072 | "validate" 4073 | ], 4074 | "time": "2020-02-14T12:15:55+00:00" 4075 | } 4076 | ], 4077 | "aliases": [], 4078 | "minimum-stability": "stable", 4079 | "stability-flags": [], 4080 | "prefer-stable": false, 4081 | "prefer-lowest": false, 4082 | "platform": { 4083 | "php": ">=7.1" 4084 | }, 4085 | "platform-dev": [], 4086 | "platform-overrides": { 4087 | "PHP": "7.1.3" 4088 | } 4089 | } 4090 | -------------------------------------------------------------------------------- /eloquent-generator: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env php 2 | codeGenerator = $codeGenerator; 55 | $this->resolver = $resolver; 56 | $this->logger = $logger; 57 | } 58 | 59 | /** 60 | * @return iterable [filepath => code] 61 | */ 62 | public function build(): iterable 63 | { 64 | foreach (array_keys($this->connections) as $connection) { 65 | $this->logger->info("Start build connection '$connection' ..."); 66 | 67 | yield from $this->transferDatabaseToCode($connection); 68 | } 69 | } 70 | 71 | /** 72 | * @param array $connections 73 | * @return static 74 | */ 75 | public function setConnections(array $connections): CodeBuilder 76 | { 77 | $this->connections = $connections; 78 | $this->withConnectionNamespace = count($connections) > 1; 79 | $this->schemaGenerators = $this->resolver->resolveSchemaGenerators($connections); 80 | 81 | return $this; 82 | } 83 | 84 | /** 85 | * @param string $namespace 86 | * @return static 87 | */ 88 | public function setNamespace($namespace): CodeBuilder 89 | { 90 | $this->namespace = $namespace; 91 | 92 | return $this; 93 | } 94 | 95 | /** 96 | * @param string $connection 97 | * @param string $table 98 | * @return string 99 | */ 100 | private function createRelativePath($connection, $table): string 101 | { 102 | if ($this->withConnectionNamespace) { 103 | return Str::studly($connection) . '/' . Str::studly($table) . '.php'; 104 | } 105 | 106 | return Str::studly($table) . '.php'; 107 | } 108 | 109 | /** 110 | * @param string $connection 111 | * @return iterable 112 | */ 113 | private function transferDatabaseToCode($connection): iterable 114 | { 115 | $schemaGenerator = $this->schemaGenerators[$connection]; 116 | 117 | foreach ($schemaGenerator->getTables() as $table) { 118 | $relativePath = $this->createRelativePath($connection, $table); 119 | 120 | $this->logger->info("Generate model '$relativePath' ..."); 121 | 122 | $indexGenerator = $this->resolver->resolveIndexGenerator($connection, $table); 123 | 124 | $code = $this->codeGenerator->generate( 125 | $schemaGenerator, 126 | $indexGenerator, 127 | $this->namespace, 128 | $connection, 129 | $table, 130 | $this->withConnectionNamespace 131 | ); 132 | 133 | yield $relativePath => $code; 134 | } 135 | } 136 | } 137 | -------------------------------------------------------------------------------- /src/Commands/Concerns/DatabaseConnection.php: -------------------------------------------------------------------------------- 1 | $connections[$connection], 27 | ]; 28 | } 29 | 30 | /** 31 | * @param string $configFile 32 | * @return array 33 | */ 34 | protected function normalizeConnectionConfig($configFile): array 35 | { 36 | $config = Config::load([ 37 | $configFile, 38 | ]); 39 | 40 | if (!$config->has('connections')) { 41 | throw new RuntimeException("The key 'connections' is not set in config file"); 42 | } 43 | 44 | $connections = $config->get('connections'); 45 | 46 | if (!is_array($connections)) { 47 | throw new RuntimeException('Connections config is not an array'); 48 | } 49 | 50 | return $connections; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/Commands/Concerns/Environment.php: -------------------------------------------------------------------------------- 1 | load(); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/Commands/GenerateCommand.php: -------------------------------------------------------------------------------- 1 | container = $container; 30 | } 31 | 32 | /** 33 | * @return LaravelBridge 34 | */ 35 | public function getContainer(): LaravelBridge 36 | { 37 | return $this->container; 38 | } 39 | 40 | protected function configure() 41 | { 42 | parent::configure(); 43 | 44 | $this->setName('eloquent-generator') 45 | ->setDescription('Generate Eloquent models') 46 | ->addOption('--config-file', null, InputOption::VALUE_REQUIRED, 'Config file', 'config/database.php') 47 | ->addOption('--connection', null, InputOption::VALUE_REQUIRED, 'Connection name will only build', null) 48 | ->addOption('--output-dir', null, InputOption::VALUE_REQUIRED, 'Relative path with getcwd()', 'generated') 49 | ->addOption('--namespace', null, InputOption::VALUE_REQUIRED, 'Namespace prefix', 'App') 50 | ->addOption('--overwrite', null, InputOption::VALUE_NONE, 'Overwrite the exist file'); 51 | } 52 | 53 | protected function execute(InputInterface $input, OutputInterface $output) 54 | { 55 | $env = $input->getOption('env'); 56 | $configFile = $input->getOption('config-file'); 57 | $connection = $input->getOption('connection'); 58 | $outputDir = $input->getOption('output-dir'); 59 | $namespace = $input->getOption('namespace'); 60 | $overwrite = $input->getOption('overwrite'); 61 | 62 | $this->loadDotEnv($this->formatPath($env) . '/.env'); 63 | 64 | // Normalize connection config 65 | $connections = $this->normalizeConnectionConfig($this->formatPath($configFile)); 66 | 67 | // Filter connection if presented 68 | $this->container['config']['database.connections'] = $this->filterConnection($connections, $connection); 69 | 70 | /** @var CodeBuilder $codeBuilder */ 71 | $codeBuilder = $this->container->make(CodeBuilder::class); 72 | 73 | $buildCode = $this->buildCode($codeBuilder, $this->container['config']['database.connections'], $namespace); 74 | 75 | /** @var Writer $writer */ 76 | $writer = $this->container->make(Writer::class); 77 | $writer->appendBasePath($outputDir) 78 | ->writeMass($buildCode, $overwrite); 79 | } 80 | 81 | /** 82 | * @param CodeBuilder $codeBuilder 83 | * @param array $connections 84 | * @param $namespace 85 | * @return array 86 | */ 87 | private function buildCode(CodeBuilder $codeBuilder, array $connections, $namespace): iterable 88 | { 89 | return $codeBuilder->setConnections($connections) 90 | ->setNamespace($namespace) 91 | ->build(); 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /src/Engines/TemplateEngine.php: -------------------------------------------------------------------------------- 1 | compile(file_get_contents($path), $this->filterData($data)); 12 | } 13 | 14 | /** 15 | * @param string $content 16 | * @param array $data 17 | * @return string 18 | */ 19 | private function compile($content, array $data): string 20 | { 21 | foreach ($data as $key => $value) { 22 | $content = str_replace("{{ ${key} }}", $value, $content); 23 | } 24 | 25 | return $content; 26 | } 27 | 28 | /** 29 | * @param array $data 30 | * @return array 31 | */ 32 | private function filterData(array $data): array 33 | { 34 | unset($data['__env'], $data['app']); 35 | 36 | return $data; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/Generators/CodeGenerator.php: -------------------------------------------------------------------------------- 1 | commentGenerator = $commentGenerator; 38 | $this->primaryKeyGenerator = $primaryKeyGenerator; 39 | $this->view = $view; 40 | } 41 | 42 | /** 43 | * @param SchemaGenerator $schemaGenerator 44 | * @param IndexGenerator $indexGenerator 45 | * @param string $namespace 46 | * @param string $connection 47 | * @param string $table 48 | * @param bool $withConnectionNamespace 49 | * @return string 50 | */ 51 | public function generate( 52 | SchemaGenerator $schemaGenerator, 53 | IndexGenerator $indexGenerator, 54 | $namespace, 55 | $connection, 56 | $table, 57 | $withConnectionNamespace = false 58 | ) { 59 | if ($withConnectionNamespace) { 60 | $namespace .= '\\' . ucfirst($connection); 61 | } 62 | 63 | $fields = $this->buildFields($schemaGenerator, $table); 64 | 65 | return $this->view->make('model', [ 66 | 'comment' => $this->commentGenerator->generate($fields), 67 | 'connection' => $connection, 68 | 'name' => Str::studly($table), 69 | 'namespace' => $namespace, 70 | 'pk' => $this->primaryKeyGenerator->generate($indexGenerator, $fields), 71 | 'table' => $table, 72 | ])->render(); 73 | } 74 | 75 | /** 76 | * @param SchemaGenerator $schemaGenerator 77 | * @param string $table 78 | * @return array 79 | */ 80 | private function buildFields(SchemaGenerator $schemaGenerator, $table) 81 | { 82 | return collect($schemaGenerator->getFields($table))->filter(function ($value, $key) { 83 | return is_string($key); 84 | })->toArray(); 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /src/Generators/CommentGenerator.php: -------------------------------------------------------------------------------- 1 | typeGenerator = $typeGenerator; 20 | } 21 | 22 | /** 23 | * @param array $fields 24 | * @return string 25 | */ 26 | public function generate(array $fields) 27 | { 28 | if (empty($fields)) { 29 | return ''; 30 | } 31 | 32 | $comment = '/**' . PHP_EOL; 33 | 34 | foreach ($fields as $property) { 35 | $modelProperty = $this->filterComment($this->typeGenerator->generate($property)); 36 | 37 | $comment .= " * @property {$modelProperty}" . PHP_EOL; 38 | } 39 | 40 | $comment .= ' */'; 41 | 42 | return $comment; 43 | } 44 | 45 | private function filterComment(string $generate): string 46 | { 47 | $generate = str_replace(["\r\n", "\r"], "\n", $generate); 48 | 49 | $generate = str_replace("\n", "\n * ", $generate); 50 | 51 | return $generate; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/Generators/PrimaryKeyGenerator.php: -------------------------------------------------------------------------------- 1 | getIndex($attr['field']); 18 | return isset($indexAttr->type) && 'primary' === $indexAttr->type; 19 | }); 20 | 21 | $pks = array_values(array_map( 22 | static function ($attr) { 23 | return $attr['field']; 24 | }, 25 | $fieldsWithPk 26 | )); 27 | 28 | return $this->buildArrayCode($pks); 29 | } 30 | 31 | protected function buildArrayCode(array $pks): string 32 | { 33 | if (count($pks) !== 1) { 34 | return 'null'; 35 | } 36 | 37 | return "'{$pks[0]}'"; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/Generators/PropertyGenerator.php: -------------------------------------------------------------------------------- 1 | 'bool', 13 | 14 | // int fields 15 | 'smallInteger' => 'int', 16 | 'integer' => 'int', 17 | 'bigInteger' => 'int', 18 | 19 | // float fields 20 | 'decimal' => 'float', 21 | 'float' => 'float', 22 | 23 | // string fields 24 | 'char' => 'string', 25 | 'string' => 'string', 26 | 'text' => 'string', 27 | 28 | // date and time fields 29 | 'dateTime' => '\\Carbon\\Carbon', 30 | 'timestamps' => '\\Carbon\\Carbon', 31 | ]; 32 | 33 | /** 34 | * @param array $columnProperties 35 | * @return string 36 | */ 37 | public function generate(array $columnProperties): string 38 | { 39 | $type = $this->mapping[$columnProperties['type']] ?? 'mixed'; 40 | $field = $columnProperties['field']; 41 | 42 | $modelProperty = "{$type} {$field}"; 43 | $modelProperty = $this->resolveDecorators($columnProperties, $modelProperty); 44 | 45 | // Should remove tail space 46 | return trim($modelProperty); 47 | } 48 | 49 | /** 50 | * @return array 51 | */ 52 | public function getMapping(): array 53 | { 54 | return $this->mapping; 55 | } 56 | 57 | /** 58 | * @param string $type 59 | * @param string $propertyType 60 | */ 61 | public function setMapping(string $type, string $propertyType): void 62 | { 63 | $this->mapping[$type] = $propertyType; 64 | } 65 | 66 | /** 67 | * @param array $decorators 68 | * @return bool 69 | */ 70 | private function resolveNullable(array $decorators): bool 71 | { 72 | return in_array('nullable', $decorators, true); 73 | } 74 | 75 | /** 76 | * @param array $decorators 77 | * @return null|string 78 | */ 79 | private function resolveComment(array $decorators): ?string 80 | { 81 | $key = collect($decorators)->search( 82 | static function ($item) { 83 | return false !== strpos($item, 'comment'); 84 | } 85 | ); 86 | 87 | if (false === $key) { 88 | return null; 89 | } 90 | 91 | if (preg_match('/comment\(\'(.*)\'\)/', $decorators[$key], $matches)) { 92 | return $matches[1]; 93 | } 94 | 95 | return $decorators[$key]; 96 | } 97 | 98 | /** 99 | * @param array $property 100 | * @param string $modelProperty 101 | * @return string 102 | */ 103 | private function resolveDecorators(array $property, string $modelProperty): string 104 | { 105 | $decorators = $property['decorators'] ?? null; 106 | 107 | if (empty($decorators)) { 108 | return $modelProperty; 109 | } 110 | 111 | if ($this->resolveNullable($decorators)) { 112 | $modelProperty = 'null|' . $modelProperty; 113 | } 114 | 115 | $comment = $this->resolveComment($decorators); 116 | 117 | if (null !== $comment) { 118 | $modelProperty .= ' ' . $comment; 119 | } 120 | 121 | return $modelProperty; 122 | } 123 | } 124 | -------------------------------------------------------------------------------- /src/Listeners/BootstrapLogger.php: -------------------------------------------------------------------------------- 1 | app = $app; 19 | } 20 | 21 | public function handle(CommandStarting $event): void 22 | { 23 | $this->app->setupLogger('laravel-eloquent-generator', new ConsoleLogger($event->output), true); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/Listeners/BootstrapVersion.php: -------------------------------------------------------------------------------- 1 | artisan->setName('Laravel Eloquent Generator'); 13 | 14 | if (class_exists(Version::class)) { 15 | $event->artisan->setVersion(Version::VERSION); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/Providers/BaseServiceProvider.php: -------------------------------------------------------------------------------- 1 | app->singleton('view', function ($app) { 16 | $factory = new Factory( 17 | new EngineResolver(), 18 | new FileViewFinder($app['files'], [ 19 | __DIR__ . '/../templates' 20 | ]), 21 | $app['events'] 22 | ); 23 | 24 | $factory->setContainer($app); 25 | $factory->share('app', $app); 26 | 27 | $factory->addExtension('txt', 'text', function () { 28 | return $this->app->make(TemplateEngine::class); 29 | }); 30 | 31 | return $factory; 32 | }); 33 | 34 | $this->app->bind(\Illuminate\Contracts\View\Factory::class, 'view'); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/Resolver.php: -------------------------------------------------------------------------------- 1 | map( 20 | static function ($config, $connection) { 21 | return new SchemaGenerator($connection, false, false); 22 | } 23 | )->toArray(); 24 | } 25 | 26 | /** 27 | * Resolve IndexGenerator 28 | * 29 | * @param string $connection 30 | * @param string $table 31 | * @return IndexGenerator 32 | */ 33 | public function resolveIndexGenerator($connection, $table): IndexGenerator 34 | { 35 | $schema = DB::connection($connection)->getDoctrineConnection(); 36 | 37 | return new IndexGenerator( 38 | $table, 39 | $schema->getSchemaManager(), 40 | false 41 | ); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/templates/model.txt: -------------------------------------------------------------------------------- 1 |