├── .coveralls.yml ├── .github └── workflows │ └── php.yml ├── .gitignore ├── .scrutinizer.yml ├── CONTRIBUTING.md ├── Dockerfile.tests ├── LICENSE ├── README.md ├── build.php ├── composer.json ├── composer.lock ├── docker-compose.yml ├── phpunit.xml ├── src ├── AbstractGenerator.php ├── All.php ├── Alliteration.php ├── Generator.php ├── Vgng.php ├── adjectives.txt ├── nouns.txt └── video_game_names.txt └── tests ├── AllTest.php ├── AlliterationTest.php └── VgngTest.php /.coveralls.yml: -------------------------------------------------------------------------------- 1 | service_name: travis-ci 2 | coverage_clover: clover.xml 3 | json_path: coveralls-upload.json 4 | -------------------------------------------------------------------------------- /.github/workflows/php.yml: -------------------------------------------------------------------------------- 1 | name: Build 2 | on: [push, pull_request] 3 | jobs: 4 | build: 5 | runs-on: ubuntu-latest 6 | strategy: 7 | fail-fast: false 8 | matrix: 9 | php: ['5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0'] 10 | name: PHP ${{ matrix.php }} 11 | environment: Build 12 | steps: 13 | - uses: actions/checkout@v1 14 | - name: Install PHP 15 | uses: shivammathur/setup-php@master 16 | with: 17 | php-version: ${{ matrix.php }} 18 | - name: Report PHP version 19 | run: php -v 20 | - name: Validate composer.json and composer.lock 21 | run: composer validate 22 | - name: Get Composer Cache Directory 23 | id: composer-cache 24 | run: echo "::set-output name=dir::$(composer config cache-files-dir)" 25 | - name: Cache dependencies 26 | uses: actions/cache@v1 27 | with: 28 | path: ${{ steps.composer-cache.outputs.dir }} 29 | key: ${{ matrix.php }}-composer-${{ hashFiles('**/composer.lock') }} 30 | restore-keys: ${{ matrix.php }}-composer- 31 | - name: Update dependencies 32 | run: composer update --prefer-dist --no-progress --no-suggest 33 | - name: Run test suite 34 | run: ./vendor/bin/phpunit --coverage-clover clover.xml 35 | - name: Run coverage service 36 | env: 37 | COVERALLS_RUN_LOCALLY: 1 38 | COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} 39 | run: ./vendor/bin/php-coveralls --coverage_clover=./clover.xml -v 40 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /coverage/ 2 | /vendor/ 3 | -------------------------------------------------------------------------------- /.scrutinizer.yml: -------------------------------------------------------------------------------- 1 | filter: 2 | excluded_paths: 3 | - 'vendor/*' 4 | - 'tests/*' 5 | before_commands: 6 | - 'composer install' 7 | tools: 8 | php_analyzer: true 9 | php_mess_detector: true 10 | php_code_sniffer: 11 | config: 12 | standard: PSR1 13 | sensiolabs_security_checker: true 14 | php_loc: 15 | excluded_dirs: 16 | - vendor 17 | - tests 18 | php_pdepend: true 19 | php_sim: true 20 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contribution Guidelines 2 | This project is wide open to contributions. You can use GitHub to [report 3 | issues][issues] or [submit pull requests][pull-requests]. When opening pull 4 | requests, it is recommended to follow these guidelines in order to grease the 5 | wheels, so to speak. 6 | 7 | Please include as many details as you can in any issues and pull requests. 8 | Understanding how you are using the library and exactly what problems you are 9 | having can also help make things move quickly. 10 | 11 | ## Building 12 | There is an included [build script][build-script] that you can execute locally 13 | to run the code through the [PSR-1 coding standard][psr-1] and the 14 | [PHPUnit][phpunit] test suite. Code coverage is kept at 100% according to 15 | PHPUnit's code coverage report. This is inforced using 16 | [coveralls][coveralls]. 17 | 18 | Alternatively, you can use [Docker][docker] and/or [Docker 19 | Compose][docker-compose] to execute the build: 20 | ```bash 21 | docker-compose run build 22 | ``` 23 | 24 | ## Automated builds 25 | Pull requests will automatically have a build kicked off on [Travis 26 | CI][travis-ci] and [Scrutinizer CI][scrutinizer-ci]. The results of these 27 | builds are monitored closely for all pull requests. 28 | 29 | [issues]: https://github.com/nubs/random-name-generator/issues 30 | [pull-requests]: https://github.com/nubs/random-name-generator/pulls 31 | [build-script]: https://github.com/nubs/random-name-generator/blob/master/build.php 32 | [psr-1]: http://www.php-fig.org/psr/psr-1/ "PSR-1 - Basic Coding Standard" 33 | [phpunit]: http://phpunit.de/ "PHPUnit - The PHP Testing Framework" 34 | [travis-ci]: https://travis-ci.org/nubs/random-name-generator 35 | [scrutinizer-ci]: https://scrutinizer-ci.com/g/nubs/random-name-generator/ 36 | [coveralls]: https://coveralls.io/github/nubs/random-name-generator 37 | [docker]: https://docker.com/ "Docker - Build, Ship, and Run Any App, Anywhere" 38 | [docker-compose]: https://www.docker.com/docker-compose 39 | -------------------------------------------------------------------------------- /Dockerfile.tests: -------------------------------------------------------------------------------- 1 | FROM nubs/phpunit 2 | 3 | MAINTAINER Spencer Rinehart 4 | 5 | CMD ["./build.php"] 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014-2016 Spencer Rinehart 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Random Name Generator 2 | A PHP library to create interesting, sometimes entertaining, random names. 3 | 4 | [![Build Status](http://img.shields.io/travis/nubs/random-name-generator.svg?style=flat)](https://travis-ci.org/nubs/random-name-generator) 5 | [![Scrutinizer Code Quality](http://img.shields.io/scrutinizer/g/nubs/random-name-generator.svg?style=flat)](https://scrutinizer-ci.com/g/nubs/random-name-generator/) 6 | [![Coverage Status](https://coveralls.io/repos/nubs/random-name-generator/badge.svg?branch=master&service=github)](https://coveralls.io/github/nubs/random-name-generator?branch=master) 7 | 8 | [![Latest Stable Version](http://img.shields.io/packagist/v/nubs/random-name-generator.svg?style=flat)](https://packagist.org/packages/nubs/random-name-generator) 9 | [![Total Downloads](http://img.shields.io/packagist/dt/nubs/random-name-generator.svg?style=flat)](https://packagist.org/packages/nubs/random-name-generator) 10 | [![License](http://img.shields.io/packagist/l/nubs/random-name-generator.svg?style=flat)](https://packagist.org/packages/nubs/random-name-generator) 11 | 12 | [![Dependency Status](https://www.versioneye.com/user/projects/537d561814c15855aa000019/badge.svg?style=flat)](https://www.versioneye.com/user/projects/537d561814c15855aa000019) 13 | 14 | ## Requirements 15 | This library requires PHP 5.6, or newer. 16 | 17 | ## Installation 18 | This package uses [composer](https://getcomposer.org) so you can just add 19 | `nubs/random-name-generator` as a dependency to your `composer.json` file or 20 | execute the following command: 21 | 22 | ```bash 23 | composer require nubs/random-name-generator 24 | ``` 25 | 26 | ## Generators 27 | 28 | ### All 29 | The "all" generator will utilize all other configured generators to generate 30 | random names. It will select from the list of generators randomly and then 31 | use them to generate a random name using their functionality. 32 | 33 | #### Usage 34 | ```php 35 | $generator = \Nubs\RandomNameGenerator\All::create(); 36 | echo $generator->getName(); 37 | ``` 38 | 39 | Alternatively, if you want to configure/build the generators to use instead of 40 | using all of the available generators, you can construct them yourself: 41 | 42 | ```php 43 | $generator = new \Nubs\RandomNameGenerator\All( 44 | [ 45 | new \Nubs\RandomNameGenerator\Alliteration(), 46 | new \Nubs\RandomNameGenerator\Vgng() 47 | ] 48 | ); 49 | ``` 50 | 51 | ### Video Game Names 52 | The video game name generator is based off of [prior](http://videogamena.me/) 53 | [art](https://github.com/nullpuppy/vgng). It will generate unique names based 54 | off of "typical" video games. 55 | 56 | #### Examples 57 | * *Kamikaze Bubblegum Warrior* 58 | * *Rockin' Valkyrie Gaiden* 59 | * *Neurotic Jackhammer Detective* 60 | * *My Little Mountain Climber Conflict* 61 | * *Small-Time Princess vs. The Space Mutants* 62 | 63 | You can also use [this web example](http://sam.sbat.com/) to see more example 64 | video game names generated by this library. 65 | 66 | #### Usage 67 | ```php 68 | $generator = new \Nubs\RandomNameGenerator\Vgng(); 69 | echo $generator->getName(); 70 | ``` 71 | 72 | ## Alliterative Names 73 | The alliteration name generator is based off of a list of 74 | [adjectives](http://grammar.yourdictionary.com/parts-of-speech/adjectives/list-of-adjective-words.html) 75 | and a list of [animals](https://animalcorner.co.uk/animals/). 76 | 77 | #### Examples 78 | * *Agreeable Anaconda* 79 | * *Disturbed Duck* 80 | * *Misty Meerkat* 81 | * *Prickly Pig* 82 | 83 | #### Usage 84 | ```php 85 | $generator = new \Nubs\RandomNameGenerator\Alliteration(); 86 | echo $generator->getName(); 87 | ``` 88 | 89 | ## License 90 | random-name-generator is licensed under the MIT license. See 91 | [LICENSE](LICENSE) for the full license text. 92 | -------------------------------------------------------------------------------- /build.php: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env php 2 | process(['standard' => ['PSR1'], 'files' => ['src', 'tests', 'build.php']]); 7 | if ($phpcsViolations > 0) { 8 | exit(1); 9 | } 10 | 11 | $phpunitConfiguration = PHPUnit_Util_Configuration::getInstance(__DIR__ . '/phpunit.xml'); 12 | $phpunitArguments = ['coverageHtml' => __DIR__ . '/coverage', 'configuration' => $phpunitConfiguration]; 13 | $testRunner = new PHPUnit_TextUI_TestRunner(); 14 | $result = $testRunner->doRun($phpunitConfiguration->getTestSuiteConfiguration(), $phpunitArguments, false); 15 | if (!$result->wasSuccessful()) { 16 | exit(1); 17 | } 18 | 19 | $coverageReport = $result->getCodeCoverage()->getReport(); 20 | if ($coverageReport->getNumExecutedLines() !== $coverageReport->getNumExecutableLines()) { 21 | file_put_contents('php://stderr', "Code coverage was NOT 100%\n"); 22 | exit(1); 23 | } 24 | 25 | file_put_contents('php://stderr', "Code coverage was 100%\n"); 26 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nubs/random-name-generator", 3 | "description": "A library to create interesting, sometimes entertaining, random names.", 4 | "keywords": ["random", "generator", "video game", "alliteration"], 5 | "authors": [ 6 | { 7 | "name": "Spencer Rinehart", 8 | "email": "anubis@overthemonkey.com", 9 | "role": "Developer" 10 | } 11 | ], 12 | "license": "MIT", 13 | "require": { 14 | "php": "~5.6 || ~7.0 || ~8.0" 15 | }, 16 | "require-dev": { 17 | "phpunit/phpunit": "^5.0 || ^6.5 || ^7.0 || ^9.0", 18 | "php-coveralls/php-coveralls": "~2.4", 19 | "cinam/randomizer": ">=1.1.1,<2.0", 20 | "squizlabs/php_codesniffer": "~2.3" 21 | }, 22 | "autoload": { 23 | "psr-4": { 24 | "Nubs\\RandomNameGenerator\\": "src" 25 | } 26 | }, 27 | "scripts": { 28 | "test": "./build.php" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /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": "45ba31e8a6316bc345f9294f7ae4ee92", 8 | "packages": [], 9 | "packages-dev": [ 10 | { 11 | "name": "cinam/randomizer", 12 | "version": "1.1.1", 13 | "source": { 14 | "type": "git", 15 | "url": "https://github.com/cinam/randomizer.git", 16 | "reference": "beca7e3ad5b93cebdb897cd47247b19a109b970f" 17 | }, 18 | "dist": { 19 | "type": "zip", 20 | "url": "https://api.github.com/repos/cinam/randomizer/zipball/beca7e3ad5b93cebdb897cd47247b19a109b970f", 21 | "reference": "beca7e3ad5b93cebdb897cd47247b19a109b970f", 22 | "shasum": "" 23 | }, 24 | "require": { 25 | "php": ">=5.3.0" 26 | }, 27 | "require-dev": { 28 | "phpunit/phpunit": "3.7.*" 29 | }, 30 | "type": "library", 31 | "autoload": { 32 | "psr-4": { 33 | "Cinam\\Randomizer\\": "src/" 34 | } 35 | }, 36 | "notification-url": "https://packagist.org/downloads/", 37 | "license": [ 38 | "MIT" 39 | ], 40 | "authors": [ 41 | { 42 | "name": "cinam", 43 | "email": "cinam@hotmail.com" 44 | } 45 | ], 46 | "description": "Tools for generating random values.", 47 | "homepage": "http://github.com/cinam/randomizer", 48 | "keywords": [ 49 | "random", 50 | "random numbers", 51 | "random values" 52 | ], 53 | "support": { 54 | "issues": "https://github.com/cinam/randomizer/issues", 55 | "source": "https://github.com/cinam/randomizer/tree/master" 56 | }, 57 | "time": "2014-06-01T07:27:32+00:00" 58 | }, 59 | { 60 | "name": "doctrine/instantiator", 61 | "version": "1.0.5", 62 | "source": { 63 | "type": "git", 64 | "url": "https://github.com/doctrine/instantiator.git", 65 | "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" 66 | }, 67 | "dist": { 68 | "type": "zip", 69 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", 70 | "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", 71 | "shasum": "" 72 | }, 73 | "require": { 74 | "php": ">=5.3,<8.0-DEV" 75 | }, 76 | "require-dev": { 77 | "athletic/athletic": "~0.1.8", 78 | "ext-pdo": "*", 79 | "ext-phar": "*", 80 | "phpunit/phpunit": "~4.0", 81 | "squizlabs/php_codesniffer": "~2.0" 82 | }, 83 | "type": "library", 84 | "extra": { 85 | "branch-alias": { 86 | "dev-master": "1.0.x-dev" 87 | } 88 | }, 89 | "autoload": { 90 | "psr-4": { 91 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" 92 | } 93 | }, 94 | "notification-url": "https://packagist.org/downloads/", 95 | "license": [ 96 | "MIT" 97 | ], 98 | "authors": [ 99 | { 100 | "name": "Marco Pivetta", 101 | "email": "ocramius@gmail.com", 102 | "homepage": "http://ocramius.github.com/" 103 | } 104 | ], 105 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", 106 | "homepage": "https://github.com/doctrine/instantiator", 107 | "keywords": [ 108 | "constructor", 109 | "instantiate" 110 | ], 111 | "support": { 112 | "issues": "https://github.com/doctrine/instantiator/issues", 113 | "source": "https://github.com/doctrine/instantiator/tree/master" 114 | }, 115 | "time": "2015-06-14T21:17:01+00:00" 116 | }, 117 | { 118 | "name": "guzzlehttp/guzzle", 119 | "version": "6.5.5", 120 | "source": { 121 | "type": "git", 122 | "url": "https://github.com/guzzle/guzzle.git", 123 | "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e" 124 | }, 125 | "dist": { 126 | "type": "zip", 127 | "url": "https://api.github.com/repos/guzzle/guzzle/zipball/9d4290de1cfd701f38099ef7e183b64b4b7b0c5e", 128 | "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e", 129 | "shasum": "" 130 | }, 131 | "require": { 132 | "ext-json": "*", 133 | "guzzlehttp/promises": "^1.0", 134 | "guzzlehttp/psr7": "^1.6.1", 135 | "php": ">=5.5", 136 | "symfony/polyfill-intl-idn": "^1.17.0" 137 | }, 138 | "require-dev": { 139 | "ext-curl": "*", 140 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", 141 | "psr/log": "^1.1" 142 | }, 143 | "suggest": { 144 | "psr/log": "Required for using the Log middleware" 145 | }, 146 | "type": "library", 147 | "extra": { 148 | "branch-alias": { 149 | "dev-master": "6.5-dev" 150 | } 151 | }, 152 | "autoload": { 153 | "psr-4": { 154 | "GuzzleHttp\\": "src/" 155 | }, 156 | "files": [ 157 | "src/functions_include.php" 158 | ] 159 | }, 160 | "notification-url": "https://packagist.org/downloads/", 161 | "license": [ 162 | "MIT" 163 | ], 164 | "authors": [ 165 | { 166 | "name": "Michael Dowling", 167 | "email": "mtdowling@gmail.com", 168 | "homepage": "https://github.com/mtdowling" 169 | } 170 | ], 171 | "description": "Guzzle is a PHP HTTP client library", 172 | "homepage": "http://guzzlephp.org/", 173 | "keywords": [ 174 | "client", 175 | "curl", 176 | "framework", 177 | "http", 178 | "http client", 179 | "rest", 180 | "web service" 181 | ], 182 | "support": { 183 | "issues": "https://github.com/guzzle/guzzle/issues", 184 | "source": "https://github.com/guzzle/guzzle/tree/6.5" 185 | }, 186 | "time": "2020-06-16T21:01:06+00:00" 187 | }, 188 | { 189 | "name": "guzzlehttp/promises", 190 | "version": "1.4.0", 191 | "source": { 192 | "type": "git", 193 | "url": "https://github.com/guzzle/promises.git", 194 | "reference": "60d379c243457e073cff02bc323a2a86cb355631" 195 | }, 196 | "dist": { 197 | "type": "zip", 198 | "url": "https://api.github.com/repos/guzzle/promises/zipball/60d379c243457e073cff02bc323a2a86cb355631", 199 | "reference": "60d379c243457e073cff02bc323a2a86cb355631", 200 | "shasum": "" 201 | }, 202 | "require": { 203 | "php": ">=5.5" 204 | }, 205 | "require-dev": { 206 | "symfony/phpunit-bridge": "^4.4 || ^5.1" 207 | }, 208 | "type": "library", 209 | "extra": { 210 | "branch-alias": { 211 | "dev-master": "1.4-dev" 212 | } 213 | }, 214 | "autoload": { 215 | "psr-4": { 216 | "GuzzleHttp\\Promise\\": "src/" 217 | }, 218 | "files": [ 219 | "src/functions_include.php" 220 | ] 221 | }, 222 | "notification-url": "https://packagist.org/downloads/", 223 | "license": [ 224 | "MIT" 225 | ], 226 | "authors": [ 227 | { 228 | "name": "Michael Dowling", 229 | "email": "mtdowling@gmail.com", 230 | "homepage": "https://github.com/mtdowling" 231 | } 232 | ], 233 | "description": "Guzzle promises library", 234 | "keywords": [ 235 | "promise" 236 | ], 237 | "support": { 238 | "issues": "https://github.com/guzzle/promises/issues", 239 | "source": "https://github.com/guzzle/promises/tree/1.4.0" 240 | }, 241 | "time": "2020-09-30T07:37:28+00:00" 242 | }, 243 | { 244 | "name": "guzzlehttp/psr7", 245 | "version": "1.7.0", 246 | "source": { 247 | "type": "git", 248 | "url": "https://github.com/guzzle/psr7.git", 249 | "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3" 250 | }, 251 | "dist": { 252 | "type": "zip", 253 | "url": "https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3", 254 | "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3", 255 | "shasum": "" 256 | }, 257 | "require": { 258 | "php": ">=5.4.0", 259 | "psr/http-message": "~1.0", 260 | "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" 261 | }, 262 | "provide": { 263 | "psr/http-message-implementation": "1.0" 264 | }, 265 | "require-dev": { 266 | "ext-zlib": "*", 267 | "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" 268 | }, 269 | "suggest": { 270 | "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" 271 | }, 272 | "type": "library", 273 | "extra": { 274 | "branch-alias": { 275 | "dev-master": "1.7-dev" 276 | } 277 | }, 278 | "autoload": { 279 | "psr-4": { 280 | "GuzzleHttp\\Psr7\\": "src/" 281 | }, 282 | "files": [ 283 | "src/functions_include.php" 284 | ] 285 | }, 286 | "notification-url": "https://packagist.org/downloads/", 287 | "license": [ 288 | "MIT" 289 | ], 290 | "authors": [ 291 | { 292 | "name": "Michael Dowling", 293 | "email": "mtdowling@gmail.com", 294 | "homepage": "https://github.com/mtdowling" 295 | }, 296 | { 297 | "name": "Tobias Schultze", 298 | "homepage": "https://github.com/Tobion" 299 | } 300 | ], 301 | "description": "PSR-7 message implementation that also provides common utility methods", 302 | "keywords": [ 303 | "http", 304 | "message", 305 | "psr-7", 306 | "request", 307 | "response", 308 | "stream", 309 | "uri", 310 | "url" 311 | ], 312 | "support": { 313 | "issues": "https://github.com/guzzle/psr7/issues", 314 | "source": "https://github.com/guzzle/psr7/tree/1.7.0" 315 | }, 316 | "time": "2020-09-30T07:37:11+00:00" 317 | }, 318 | { 319 | "name": "myclabs/deep-copy", 320 | "version": "1.7.0", 321 | "source": { 322 | "type": "git", 323 | "url": "https://github.com/myclabs/DeepCopy.git", 324 | "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e" 325 | }, 326 | "dist": { 327 | "type": "zip", 328 | "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", 329 | "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", 330 | "shasum": "" 331 | }, 332 | "require": { 333 | "php": "^5.6 || ^7.0" 334 | }, 335 | "require-dev": { 336 | "doctrine/collections": "^1.0", 337 | "doctrine/common": "^2.6", 338 | "phpunit/phpunit": "^4.1" 339 | }, 340 | "type": "library", 341 | "autoload": { 342 | "psr-4": { 343 | "DeepCopy\\": "src/DeepCopy/" 344 | }, 345 | "files": [ 346 | "src/DeepCopy/deep_copy.php" 347 | ] 348 | }, 349 | "notification-url": "https://packagist.org/downloads/", 350 | "license": [ 351 | "MIT" 352 | ], 353 | "description": "Create deep copies (clones) of your objects", 354 | "keywords": [ 355 | "clone", 356 | "copy", 357 | "duplicate", 358 | "object", 359 | "object graph" 360 | ], 361 | "support": { 362 | "issues": "https://github.com/myclabs/DeepCopy/issues", 363 | "source": "https://github.com/myclabs/DeepCopy/tree/1.x" 364 | }, 365 | "time": "2017-10-19T19:58:43+00:00" 366 | }, 367 | { 368 | "name": "paragonie/random_compat", 369 | "version": "v2.0.19", 370 | "source": { 371 | "type": "git", 372 | "url": "https://github.com/paragonie/random_compat.git", 373 | "reference": "446fc9faa5c2a9ddf65eb7121c0af7e857295241" 374 | }, 375 | "dist": { 376 | "type": "zip", 377 | "url": "https://api.github.com/repos/paragonie/random_compat/zipball/446fc9faa5c2a9ddf65eb7121c0af7e857295241", 378 | "reference": "446fc9faa5c2a9ddf65eb7121c0af7e857295241", 379 | "shasum": "" 380 | }, 381 | "require": { 382 | "php": ">=5.2.0" 383 | }, 384 | "require-dev": { 385 | "phpunit/phpunit": "4.*|5.*" 386 | }, 387 | "suggest": { 388 | "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." 389 | }, 390 | "type": "library", 391 | "autoload": { 392 | "files": [ 393 | "lib/random.php" 394 | ] 395 | }, 396 | "notification-url": "https://packagist.org/downloads/", 397 | "license": [ 398 | "MIT" 399 | ], 400 | "authors": [ 401 | { 402 | "name": "Paragon Initiative Enterprises", 403 | "email": "security@paragonie.com", 404 | "homepage": "https://paragonie.com" 405 | } 406 | ], 407 | "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", 408 | "keywords": [ 409 | "csprng", 410 | "polyfill", 411 | "pseudorandom", 412 | "random" 413 | ], 414 | "support": { 415 | "email": "info@paragonie.com", 416 | "issues": "https://github.com/paragonie/random_compat/issues", 417 | "source": "https://github.com/paragonie/random_compat" 418 | }, 419 | "time": "2020-10-15T10:06:57+00:00" 420 | }, 421 | { 422 | "name": "php-coveralls/php-coveralls", 423 | "version": "v2.4.3", 424 | "source": { 425 | "type": "git", 426 | "url": "https://github.com/php-coveralls/php-coveralls.git", 427 | "reference": "909381bd40a17ae6e9076051f0d73293c1c091af" 428 | }, 429 | "dist": { 430 | "type": "zip", 431 | "url": "https://api.github.com/repos/php-coveralls/php-coveralls/zipball/909381bd40a17ae6e9076051f0d73293c1c091af", 432 | "reference": "909381bd40a17ae6e9076051f0d73293c1c091af", 433 | "shasum": "" 434 | }, 435 | "require": { 436 | "ext-json": "*", 437 | "ext-simplexml": "*", 438 | "guzzlehttp/guzzle": "^6.0 || ^7.0", 439 | "php": "^5.5 || ^7.0 || ^8.0", 440 | "psr/log": "^1.0", 441 | "symfony/config": "^2.1 || ^3.0 || ^4.0 || ^5.0", 442 | "symfony/console": "^2.1 || ^3.0 || ^4.0 || ^5.0", 443 | "symfony/stopwatch": "^2.0 || ^3.0 || ^4.0 || ^5.0", 444 | "symfony/yaml": "^2.0.5 || ^3.0 || ^4.0 || ^5.0" 445 | }, 446 | "require-dev": { 447 | "phpunit/phpunit": "^4.8.35 || ^5.4.3 || ^6.0 || ^7.0 || ^8.0 || ^9.0", 448 | "sanmai/phpunit-legacy-adapter": "^6.1 || ^8.0" 449 | }, 450 | "suggest": { 451 | "symfony/http-kernel": "Allows Symfony integration" 452 | }, 453 | "bin": [ 454 | "bin/php-coveralls" 455 | ], 456 | "type": "library", 457 | "autoload": { 458 | "psr-4": { 459 | "PhpCoveralls\\": "src/" 460 | } 461 | }, 462 | "notification-url": "https://packagist.org/downloads/", 463 | "license": [ 464 | "MIT" 465 | ], 466 | "authors": [ 467 | { 468 | "name": "Kitamura Satoshi", 469 | "email": "with.no.parachute@gmail.com", 470 | "homepage": "https://www.facebook.com/satooshi.jp", 471 | "role": "Original creator" 472 | }, 473 | { 474 | "name": "Takashi Matsuo", 475 | "email": "tmatsuo@google.com" 476 | }, 477 | { 478 | "name": "Google Inc" 479 | }, 480 | { 481 | "name": "Dariusz Ruminski", 482 | "email": "dariusz.ruminski@gmail.com", 483 | "homepage": "https://github.com/keradus" 484 | }, 485 | { 486 | "name": "Contributors", 487 | "homepage": "https://github.com/php-coveralls/php-coveralls/graphs/contributors" 488 | } 489 | ], 490 | "description": "PHP client library for Coveralls API", 491 | "homepage": "https://github.com/php-coveralls/php-coveralls", 492 | "keywords": [ 493 | "ci", 494 | "coverage", 495 | "github", 496 | "test" 497 | ], 498 | "support": { 499 | "issues": "https://github.com/php-coveralls/php-coveralls/issues", 500 | "source": "https://github.com/php-coveralls/php-coveralls/tree/v2.4.3" 501 | }, 502 | "time": "2020-12-24T09:17:03+00:00" 503 | }, 504 | { 505 | "name": "phpdocumentor/reflection-common", 506 | "version": "1.0.1", 507 | "source": { 508 | "type": "git", 509 | "url": "https://github.com/phpDocumentor/ReflectionCommon.git", 510 | "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" 511 | }, 512 | "dist": { 513 | "type": "zip", 514 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", 515 | "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", 516 | "shasum": "" 517 | }, 518 | "require": { 519 | "php": ">=5.5" 520 | }, 521 | "require-dev": { 522 | "phpunit/phpunit": "^4.6" 523 | }, 524 | "type": "library", 525 | "extra": { 526 | "branch-alias": { 527 | "dev-master": "1.0.x-dev" 528 | } 529 | }, 530 | "autoload": { 531 | "psr-4": { 532 | "phpDocumentor\\Reflection\\": [ 533 | "src" 534 | ] 535 | } 536 | }, 537 | "notification-url": "https://packagist.org/downloads/", 538 | "license": [ 539 | "MIT" 540 | ], 541 | "authors": [ 542 | { 543 | "name": "Jaap van Otterdijk", 544 | "email": "opensource@ijaap.nl" 545 | } 546 | ], 547 | "description": "Common reflection classes used by phpdocumentor to reflect the code structure", 548 | "homepage": "http://www.phpdoc.org", 549 | "keywords": [ 550 | "FQSEN", 551 | "phpDocumentor", 552 | "phpdoc", 553 | "reflection", 554 | "static analysis" 555 | ], 556 | "support": { 557 | "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", 558 | "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/master" 559 | }, 560 | "time": "2017-09-11T18:02:19+00:00" 561 | }, 562 | { 563 | "name": "phpdocumentor/reflection-docblock", 564 | "version": "3.3.2", 565 | "source": { 566 | "type": "git", 567 | "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", 568 | "reference": "bf329f6c1aadea3299f08ee804682b7c45b326a2" 569 | }, 570 | "dist": { 571 | "type": "zip", 572 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bf329f6c1aadea3299f08ee804682b7c45b326a2", 573 | "reference": "bf329f6c1aadea3299f08ee804682b7c45b326a2", 574 | "shasum": "" 575 | }, 576 | "require": { 577 | "php": "^5.6 || ^7.0", 578 | "phpdocumentor/reflection-common": "^1.0.0", 579 | "phpdocumentor/type-resolver": "^0.4.0", 580 | "webmozart/assert": "^1.0" 581 | }, 582 | "require-dev": { 583 | "mockery/mockery": "^0.9.4", 584 | "phpunit/phpunit": "^4.4" 585 | }, 586 | "type": "library", 587 | "autoload": { 588 | "psr-4": { 589 | "phpDocumentor\\Reflection\\": [ 590 | "src/" 591 | ] 592 | } 593 | }, 594 | "notification-url": "https://packagist.org/downloads/", 595 | "license": [ 596 | "MIT" 597 | ], 598 | "authors": [ 599 | { 600 | "name": "Mike van Riel", 601 | "email": "me@mikevanriel.com" 602 | } 603 | ], 604 | "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", 605 | "support": { 606 | "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", 607 | "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/release/3.x" 608 | }, 609 | "time": "2017-11-10T14:09:06+00:00" 610 | }, 611 | { 612 | "name": "phpdocumentor/type-resolver", 613 | "version": "0.4.0", 614 | "source": { 615 | "type": "git", 616 | "url": "https://github.com/phpDocumentor/TypeResolver.git", 617 | "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" 618 | }, 619 | "dist": { 620 | "type": "zip", 621 | "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", 622 | "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", 623 | "shasum": "" 624 | }, 625 | "require": { 626 | "php": "^5.5 || ^7.0", 627 | "phpdocumentor/reflection-common": "^1.0" 628 | }, 629 | "require-dev": { 630 | "mockery/mockery": "^0.9.4", 631 | "phpunit/phpunit": "^5.2||^4.8.24" 632 | }, 633 | "type": "library", 634 | "extra": { 635 | "branch-alias": { 636 | "dev-master": "1.0.x-dev" 637 | } 638 | }, 639 | "autoload": { 640 | "psr-4": { 641 | "phpDocumentor\\Reflection\\": [ 642 | "src/" 643 | ] 644 | } 645 | }, 646 | "notification-url": "https://packagist.org/downloads/", 647 | "license": [ 648 | "MIT" 649 | ], 650 | "authors": [ 651 | { 652 | "name": "Mike van Riel", 653 | "email": "me@mikevanriel.com" 654 | } 655 | ], 656 | "support": { 657 | "issues": "https://github.com/phpDocumentor/TypeResolver/issues", 658 | "source": "https://github.com/phpDocumentor/TypeResolver/tree/master" 659 | }, 660 | "time": "2017-07-14T14:27:02+00:00" 661 | }, 662 | { 663 | "name": "phpspec/prophecy", 664 | "version": "v1.10.3", 665 | "source": { 666 | "type": "git", 667 | "url": "https://github.com/phpspec/prophecy.git", 668 | "reference": "451c3cd1418cf640de218914901e51b064abb093" 669 | }, 670 | "dist": { 671 | "type": "zip", 672 | "url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093", 673 | "reference": "451c3cd1418cf640de218914901e51b064abb093", 674 | "shasum": "" 675 | }, 676 | "require": { 677 | "doctrine/instantiator": "^1.0.2", 678 | "php": "^5.3|^7.0", 679 | "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", 680 | "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0", 681 | "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0" 682 | }, 683 | "require-dev": { 684 | "phpspec/phpspec": "^2.5 || ^3.2", 685 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" 686 | }, 687 | "type": "library", 688 | "extra": { 689 | "branch-alias": { 690 | "dev-master": "1.10.x-dev" 691 | } 692 | }, 693 | "autoload": { 694 | "psr-4": { 695 | "Prophecy\\": "src/Prophecy" 696 | } 697 | }, 698 | "notification-url": "https://packagist.org/downloads/", 699 | "license": [ 700 | "MIT" 701 | ], 702 | "authors": [ 703 | { 704 | "name": "Konstantin Kudryashov", 705 | "email": "ever.zet@gmail.com", 706 | "homepage": "http://everzet.com" 707 | }, 708 | { 709 | "name": "Marcello Duarte", 710 | "email": "marcello.duarte@gmail.com" 711 | } 712 | ], 713 | "description": "Highly opinionated mocking framework for PHP 5.3+", 714 | "homepage": "https://github.com/phpspec/prophecy", 715 | "keywords": [ 716 | "Double", 717 | "Dummy", 718 | "fake", 719 | "mock", 720 | "spy", 721 | "stub" 722 | ], 723 | "support": { 724 | "issues": "https://github.com/phpspec/prophecy/issues", 725 | "source": "https://github.com/phpspec/prophecy/tree/v1.10.3" 726 | }, 727 | "time": "2020-03-05T15:02:03+00:00" 728 | }, 729 | { 730 | "name": "phpunit/php-code-coverage", 731 | "version": "4.0.8", 732 | "source": { 733 | "type": "git", 734 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git", 735 | "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d" 736 | }, 737 | "dist": { 738 | "type": "zip", 739 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ef7b2f56815df854e66ceaee8ebe9393ae36a40d", 740 | "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d", 741 | "shasum": "" 742 | }, 743 | "require": { 744 | "ext-dom": "*", 745 | "ext-xmlwriter": "*", 746 | "php": "^5.6 || ^7.0", 747 | "phpunit/php-file-iterator": "^1.3", 748 | "phpunit/php-text-template": "^1.2", 749 | "phpunit/php-token-stream": "^1.4.2 || ^2.0", 750 | "sebastian/code-unit-reverse-lookup": "^1.0", 751 | "sebastian/environment": "^1.3.2 || ^2.0", 752 | "sebastian/version": "^1.0 || ^2.0" 753 | }, 754 | "require-dev": { 755 | "ext-xdebug": "^2.1.4", 756 | "phpunit/phpunit": "^5.7" 757 | }, 758 | "suggest": { 759 | "ext-xdebug": "^2.5.1" 760 | }, 761 | "type": "library", 762 | "extra": { 763 | "branch-alias": { 764 | "dev-master": "4.0.x-dev" 765 | } 766 | }, 767 | "autoload": { 768 | "classmap": [ 769 | "src/" 770 | ] 771 | }, 772 | "notification-url": "https://packagist.org/downloads/", 773 | "license": [ 774 | "BSD-3-Clause" 775 | ], 776 | "authors": [ 777 | { 778 | "name": "Sebastian Bergmann", 779 | "email": "sb@sebastian-bergmann.de", 780 | "role": "lead" 781 | } 782 | ], 783 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", 784 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage", 785 | "keywords": [ 786 | "coverage", 787 | "testing", 788 | "xunit" 789 | ], 790 | "support": { 791 | "irc": "irc://irc.freenode.net/phpunit", 792 | "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", 793 | "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/4.0" 794 | }, 795 | "time": "2017-04-02T07:44:40+00:00" 796 | }, 797 | { 798 | "name": "phpunit/php-file-iterator", 799 | "version": "1.4.5", 800 | "source": { 801 | "type": "git", 802 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git", 803 | "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" 804 | }, 805 | "dist": { 806 | "type": "zip", 807 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", 808 | "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", 809 | "shasum": "" 810 | }, 811 | "require": { 812 | "php": ">=5.3.3" 813 | }, 814 | "type": "library", 815 | "extra": { 816 | "branch-alias": { 817 | "dev-master": "1.4.x-dev" 818 | } 819 | }, 820 | "autoload": { 821 | "classmap": [ 822 | "src/" 823 | ] 824 | }, 825 | "notification-url": "https://packagist.org/downloads/", 826 | "license": [ 827 | "BSD-3-Clause" 828 | ], 829 | "authors": [ 830 | { 831 | "name": "Sebastian Bergmann", 832 | "email": "sb@sebastian-bergmann.de", 833 | "role": "lead" 834 | } 835 | ], 836 | "description": "FilterIterator implementation that filters files based on a list of suffixes.", 837 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", 838 | "keywords": [ 839 | "filesystem", 840 | "iterator" 841 | ], 842 | "support": { 843 | "irc": "irc://irc.freenode.net/phpunit", 844 | "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", 845 | "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/1.4.5" 846 | }, 847 | "time": "2017-11-27T13:52:08+00:00" 848 | }, 849 | { 850 | "name": "phpunit/php-text-template", 851 | "version": "1.2.1", 852 | "source": { 853 | "type": "git", 854 | "url": "https://github.com/sebastianbergmann/php-text-template.git", 855 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" 856 | }, 857 | "dist": { 858 | "type": "zip", 859 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 860 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 861 | "shasum": "" 862 | }, 863 | "require": { 864 | "php": ">=5.3.3" 865 | }, 866 | "type": "library", 867 | "autoload": { 868 | "classmap": [ 869 | "src/" 870 | ] 871 | }, 872 | "notification-url": "https://packagist.org/downloads/", 873 | "license": [ 874 | "BSD-3-Clause" 875 | ], 876 | "authors": [ 877 | { 878 | "name": "Sebastian Bergmann", 879 | "email": "sebastian@phpunit.de", 880 | "role": "lead" 881 | } 882 | ], 883 | "description": "Simple template engine.", 884 | "homepage": "https://github.com/sebastianbergmann/php-text-template/", 885 | "keywords": [ 886 | "template" 887 | ], 888 | "support": { 889 | "issues": "https://github.com/sebastianbergmann/php-text-template/issues", 890 | "source": "https://github.com/sebastianbergmann/php-text-template/tree/1.2.1" 891 | }, 892 | "time": "2015-06-21T13:50:34+00:00" 893 | }, 894 | { 895 | "name": "phpunit/php-timer", 896 | "version": "1.0.9", 897 | "source": { 898 | "type": "git", 899 | "url": "https://github.com/sebastianbergmann/php-timer.git", 900 | "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" 901 | }, 902 | "dist": { 903 | "type": "zip", 904 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", 905 | "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", 906 | "shasum": "" 907 | }, 908 | "require": { 909 | "php": "^5.3.3 || ^7.0" 910 | }, 911 | "require-dev": { 912 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" 913 | }, 914 | "type": "library", 915 | "extra": { 916 | "branch-alias": { 917 | "dev-master": "1.0-dev" 918 | } 919 | }, 920 | "autoload": { 921 | "classmap": [ 922 | "src/" 923 | ] 924 | }, 925 | "notification-url": "https://packagist.org/downloads/", 926 | "license": [ 927 | "BSD-3-Clause" 928 | ], 929 | "authors": [ 930 | { 931 | "name": "Sebastian Bergmann", 932 | "email": "sb@sebastian-bergmann.de", 933 | "role": "lead" 934 | } 935 | ], 936 | "description": "Utility class for timing", 937 | "homepage": "https://github.com/sebastianbergmann/php-timer/", 938 | "keywords": [ 939 | "timer" 940 | ], 941 | "support": { 942 | "issues": "https://github.com/sebastianbergmann/php-timer/issues", 943 | "source": "https://github.com/sebastianbergmann/php-timer/tree/master" 944 | }, 945 | "time": "2017-02-26T11:10:40+00:00" 946 | }, 947 | { 948 | "name": "phpunit/php-token-stream", 949 | "version": "1.4.12", 950 | "source": { 951 | "type": "git", 952 | "url": "https://github.com/sebastianbergmann/php-token-stream.git", 953 | "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16" 954 | }, 955 | "dist": { 956 | "type": "zip", 957 | "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1ce90ba27c42e4e44e6d8458241466380b51fa16", 958 | "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16", 959 | "shasum": "" 960 | }, 961 | "require": { 962 | "ext-tokenizer": "*", 963 | "php": ">=5.3.3" 964 | }, 965 | "require-dev": { 966 | "phpunit/phpunit": "~4.2" 967 | }, 968 | "type": "library", 969 | "extra": { 970 | "branch-alias": { 971 | "dev-master": "1.4-dev" 972 | } 973 | }, 974 | "autoload": { 975 | "classmap": [ 976 | "src/" 977 | ] 978 | }, 979 | "notification-url": "https://packagist.org/downloads/", 980 | "license": [ 981 | "BSD-3-Clause" 982 | ], 983 | "authors": [ 984 | { 985 | "name": "Sebastian Bergmann", 986 | "email": "sebastian@phpunit.de" 987 | } 988 | ], 989 | "description": "Wrapper around PHP's tokenizer extension.", 990 | "homepage": "https://github.com/sebastianbergmann/php-token-stream/", 991 | "keywords": [ 992 | "tokenizer" 993 | ], 994 | "support": { 995 | "issues": "https://github.com/sebastianbergmann/php-token-stream/issues", 996 | "source": "https://github.com/sebastianbergmann/php-token-stream/tree/1.4" 997 | }, 998 | "abandoned": true, 999 | "time": "2017-12-04T08:55:13+00:00" 1000 | }, 1001 | { 1002 | "name": "phpunit/phpunit", 1003 | "version": "5.7.27", 1004 | "source": { 1005 | "type": "git", 1006 | "url": "https://github.com/sebastianbergmann/phpunit.git", 1007 | "reference": "b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c" 1008 | }, 1009 | "dist": { 1010 | "type": "zip", 1011 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c", 1012 | "reference": "b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c", 1013 | "shasum": "" 1014 | }, 1015 | "require": { 1016 | "ext-dom": "*", 1017 | "ext-json": "*", 1018 | "ext-libxml": "*", 1019 | "ext-mbstring": "*", 1020 | "ext-xml": "*", 1021 | "myclabs/deep-copy": "~1.3", 1022 | "php": "^5.6 || ^7.0", 1023 | "phpspec/prophecy": "^1.6.2", 1024 | "phpunit/php-code-coverage": "^4.0.4", 1025 | "phpunit/php-file-iterator": "~1.4", 1026 | "phpunit/php-text-template": "~1.2", 1027 | "phpunit/php-timer": "^1.0.6", 1028 | "phpunit/phpunit-mock-objects": "^3.2", 1029 | "sebastian/comparator": "^1.2.4", 1030 | "sebastian/diff": "^1.4.3", 1031 | "sebastian/environment": "^1.3.4 || ^2.0", 1032 | "sebastian/exporter": "~2.0", 1033 | "sebastian/global-state": "^1.1", 1034 | "sebastian/object-enumerator": "~2.0", 1035 | "sebastian/resource-operations": "~1.0", 1036 | "sebastian/version": "^1.0.6|^2.0.1", 1037 | "symfony/yaml": "~2.1|~3.0|~4.0" 1038 | }, 1039 | "conflict": { 1040 | "phpdocumentor/reflection-docblock": "3.0.2" 1041 | }, 1042 | "require-dev": { 1043 | "ext-pdo": "*" 1044 | }, 1045 | "suggest": { 1046 | "ext-xdebug": "*", 1047 | "phpunit/php-invoker": "~1.1" 1048 | }, 1049 | "bin": [ 1050 | "phpunit" 1051 | ], 1052 | "type": "library", 1053 | "extra": { 1054 | "branch-alias": { 1055 | "dev-master": "5.7.x-dev" 1056 | } 1057 | }, 1058 | "autoload": { 1059 | "classmap": [ 1060 | "src/" 1061 | ] 1062 | }, 1063 | "notification-url": "https://packagist.org/downloads/", 1064 | "license": [ 1065 | "BSD-3-Clause" 1066 | ], 1067 | "authors": [ 1068 | { 1069 | "name": "Sebastian Bergmann", 1070 | "email": "sebastian@phpunit.de", 1071 | "role": "lead" 1072 | } 1073 | ], 1074 | "description": "The PHP Unit Testing framework.", 1075 | "homepage": "https://phpunit.de/", 1076 | "keywords": [ 1077 | "phpunit", 1078 | "testing", 1079 | "xunit" 1080 | ], 1081 | "support": { 1082 | "issues": "https://github.com/sebastianbergmann/phpunit/issues", 1083 | "source": "https://github.com/sebastianbergmann/phpunit/tree/5.7.27" 1084 | }, 1085 | "time": "2018-02-01T05:50:59+00:00" 1086 | }, 1087 | { 1088 | "name": "phpunit/phpunit-mock-objects", 1089 | "version": "3.4.4", 1090 | "source": { 1091 | "type": "git", 1092 | "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", 1093 | "reference": "a23b761686d50a560cc56233b9ecf49597cc9118" 1094 | }, 1095 | "dist": { 1096 | "type": "zip", 1097 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/a23b761686d50a560cc56233b9ecf49597cc9118", 1098 | "reference": "a23b761686d50a560cc56233b9ecf49597cc9118", 1099 | "shasum": "" 1100 | }, 1101 | "require": { 1102 | "doctrine/instantiator": "^1.0.2", 1103 | "php": "^5.6 || ^7.0", 1104 | "phpunit/php-text-template": "^1.2", 1105 | "sebastian/exporter": "^1.2 || ^2.0" 1106 | }, 1107 | "conflict": { 1108 | "phpunit/phpunit": "<5.4.0" 1109 | }, 1110 | "require-dev": { 1111 | "phpunit/phpunit": "^5.4" 1112 | }, 1113 | "suggest": { 1114 | "ext-soap": "*" 1115 | }, 1116 | "type": "library", 1117 | "extra": { 1118 | "branch-alias": { 1119 | "dev-master": "3.2.x-dev" 1120 | } 1121 | }, 1122 | "autoload": { 1123 | "classmap": [ 1124 | "src/" 1125 | ] 1126 | }, 1127 | "notification-url": "https://packagist.org/downloads/", 1128 | "license": [ 1129 | "BSD-3-Clause" 1130 | ], 1131 | "authors": [ 1132 | { 1133 | "name": "Sebastian Bergmann", 1134 | "email": "sb@sebastian-bergmann.de", 1135 | "role": "lead" 1136 | } 1137 | ], 1138 | "description": "Mock Object library for PHPUnit", 1139 | "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", 1140 | "keywords": [ 1141 | "mock", 1142 | "xunit" 1143 | ], 1144 | "support": { 1145 | "irc": "irc://irc.freenode.net/phpunit", 1146 | "issues": "https://github.com/sebastianbergmann/phpunit-mock-objects/issues", 1147 | "source": "https://github.com/sebastianbergmann/phpunit-mock-objects/tree/3.4" 1148 | }, 1149 | "abandoned": true, 1150 | "time": "2017-06-30T09:13:00+00:00" 1151 | }, 1152 | { 1153 | "name": "psr/http-message", 1154 | "version": "1.0.1", 1155 | "source": { 1156 | "type": "git", 1157 | "url": "https://github.com/php-fig/http-message.git", 1158 | "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" 1159 | }, 1160 | "dist": { 1161 | "type": "zip", 1162 | "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", 1163 | "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", 1164 | "shasum": "" 1165 | }, 1166 | "require": { 1167 | "php": ">=5.3.0" 1168 | }, 1169 | "type": "library", 1170 | "extra": { 1171 | "branch-alias": { 1172 | "dev-master": "1.0.x-dev" 1173 | } 1174 | }, 1175 | "autoload": { 1176 | "psr-4": { 1177 | "Psr\\Http\\Message\\": "src/" 1178 | } 1179 | }, 1180 | "notification-url": "https://packagist.org/downloads/", 1181 | "license": [ 1182 | "MIT" 1183 | ], 1184 | "authors": [ 1185 | { 1186 | "name": "PHP-FIG", 1187 | "homepage": "http://www.php-fig.org/" 1188 | } 1189 | ], 1190 | "description": "Common interface for HTTP messages", 1191 | "homepage": "https://github.com/php-fig/http-message", 1192 | "keywords": [ 1193 | "http", 1194 | "http-message", 1195 | "psr", 1196 | "psr-7", 1197 | "request", 1198 | "response" 1199 | ], 1200 | "support": { 1201 | "source": "https://github.com/php-fig/http-message/tree/master" 1202 | }, 1203 | "time": "2016-08-06T14:39:51+00:00" 1204 | }, 1205 | { 1206 | "name": "psr/log", 1207 | "version": "1.1.3", 1208 | "source": { 1209 | "type": "git", 1210 | "url": "https://github.com/php-fig/log.git", 1211 | "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" 1212 | }, 1213 | "dist": { 1214 | "type": "zip", 1215 | "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", 1216 | "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", 1217 | "shasum": "" 1218 | }, 1219 | "require": { 1220 | "php": ">=5.3.0" 1221 | }, 1222 | "type": "library", 1223 | "extra": { 1224 | "branch-alias": { 1225 | "dev-master": "1.1.x-dev" 1226 | } 1227 | }, 1228 | "autoload": { 1229 | "psr-4": { 1230 | "Psr\\Log\\": "Psr/Log/" 1231 | } 1232 | }, 1233 | "notification-url": "https://packagist.org/downloads/", 1234 | "license": [ 1235 | "MIT" 1236 | ], 1237 | "authors": [ 1238 | { 1239 | "name": "PHP-FIG", 1240 | "homepage": "http://www.php-fig.org/" 1241 | } 1242 | ], 1243 | "description": "Common interface for logging libraries", 1244 | "homepage": "https://github.com/php-fig/log", 1245 | "keywords": [ 1246 | "log", 1247 | "psr", 1248 | "psr-3" 1249 | ], 1250 | "support": { 1251 | "source": "https://github.com/php-fig/log/tree/1.1.3" 1252 | }, 1253 | "time": "2020-03-23T09:12:05+00:00" 1254 | }, 1255 | { 1256 | "name": "ralouphie/getallheaders", 1257 | "version": "3.0.3", 1258 | "source": { 1259 | "type": "git", 1260 | "url": "https://github.com/ralouphie/getallheaders.git", 1261 | "reference": "120b605dfeb996808c31b6477290a714d356e822" 1262 | }, 1263 | "dist": { 1264 | "type": "zip", 1265 | "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", 1266 | "reference": "120b605dfeb996808c31b6477290a714d356e822", 1267 | "shasum": "" 1268 | }, 1269 | "require": { 1270 | "php": ">=5.6" 1271 | }, 1272 | "require-dev": { 1273 | "php-coveralls/php-coveralls": "^2.1", 1274 | "phpunit/phpunit": "^5 || ^6.5" 1275 | }, 1276 | "type": "library", 1277 | "autoload": { 1278 | "files": [ 1279 | "src/getallheaders.php" 1280 | ] 1281 | }, 1282 | "notification-url": "https://packagist.org/downloads/", 1283 | "license": [ 1284 | "MIT" 1285 | ], 1286 | "authors": [ 1287 | { 1288 | "name": "Ralph Khattar", 1289 | "email": "ralph.khattar@gmail.com" 1290 | } 1291 | ], 1292 | "description": "A polyfill for getallheaders.", 1293 | "support": { 1294 | "issues": "https://github.com/ralouphie/getallheaders/issues", 1295 | "source": "https://github.com/ralouphie/getallheaders/tree/develop" 1296 | }, 1297 | "time": "2019-03-08T08:55:37+00:00" 1298 | }, 1299 | { 1300 | "name": "sebastian/code-unit-reverse-lookup", 1301 | "version": "1.0.2", 1302 | "source": { 1303 | "type": "git", 1304 | "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", 1305 | "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619" 1306 | }, 1307 | "dist": { 1308 | "type": "zip", 1309 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619", 1310 | "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619", 1311 | "shasum": "" 1312 | }, 1313 | "require": { 1314 | "php": ">=5.6" 1315 | }, 1316 | "require-dev": { 1317 | "phpunit/phpunit": "^8.5" 1318 | }, 1319 | "type": "library", 1320 | "extra": { 1321 | "branch-alias": { 1322 | "dev-master": "1.0.x-dev" 1323 | } 1324 | }, 1325 | "autoload": { 1326 | "classmap": [ 1327 | "src/" 1328 | ] 1329 | }, 1330 | "notification-url": "https://packagist.org/downloads/", 1331 | "license": [ 1332 | "BSD-3-Clause" 1333 | ], 1334 | "authors": [ 1335 | { 1336 | "name": "Sebastian Bergmann", 1337 | "email": "sebastian@phpunit.de" 1338 | } 1339 | ], 1340 | "description": "Looks up which function or method a line of code belongs to", 1341 | "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", 1342 | "support": { 1343 | "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", 1344 | "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/1.0.2" 1345 | }, 1346 | "funding": [ 1347 | { 1348 | "url": "https://github.com/sebastianbergmann", 1349 | "type": "github" 1350 | } 1351 | ], 1352 | "time": "2020-11-30T08:15:22+00:00" 1353 | }, 1354 | { 1355 | "name": "sebastian/comparator", 1356 | "version": "1.2.4", 1357 | "source": { 1358 | "type": "git", 1359 | "url": "https://github.com/sebastianbergmann/comparator.git", 1360 | "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be" 1361 | }, 1362 | "dist": { 1363 | "type": "zip", 1364 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", 1365 | "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", 1366 | "shasum": "" 1367 | }, 1368 | "require": { 1369 | "php": ">=5.3.3", 1370 | "sebastian/diff": "~1.2", 1371 | "sebastian/exporter": "~1.2 || ~2.0" 1372 | }, 1373 | "require-dev": { 1374 | "phpunit/phpunit": "~4.4" 1375 | }, 1376 | "type": "library", 1377 | "extra": { 1378 | "branch-alias": { 1379 | "dev-master": "1.2.x-dev" 1380 | } 1381 | }, 1382 | "autoload": { 1383 | "classmap": [ 1384 | "src/" 1385 | ] 1386 | }, 1387 | "notification-url": "https://packagist.org/downloads/", 1388 | "license": [ 1389 | "BSD-3-Clause" 1390 | ], 1391 | "authors": [ 1392 | { 1393 | "name": "Jeff Welch", 1394 | "email": "whatthejeff@gmail.com" 1395 | }, 1396 | { 1397 | "name": "Volker Dusch", 1398 | "email": "github@wallbash.com" 1399 | }, 1400 | { 1401 | "name": "Bernhard Schussek", 1402 | "email": "bschussek@2bepublished.at" 1403 | }, 1404 | { 1405 | "name": "Sebastian Bergmann", 1406 | "email": "sebastian@phpunit.de" 1407 | } 1408 | ], 1409 | "description": "Provides the functionality to compare PHP values for equality", 1410 | "homepage": "http://www.github.com/sebastianbergmann/comparator", 1411 | "keywords": [ 1412 | "comparator", 1413 | "compare", 1414 | "equality" 1415 | ], 1416 | "support": { 1417 | "issues": "https://github.com/sebastianbergmann/comparator/issues", 1418 | "source": "https://github.com/sebastianbergmann/comparator/tree/1.2" 1419 | }, 1420 | "time": "2017-01-29T09:50:25+00:00" 1421 | }, 1422 | { 1423 | "name": "sebastian/diff", 1424 | "version": "1.4.3", 1425 | "source": { 1426 | "type": "git", 1427 | "url": "https://github.com/sebastianbergmann/diff.git", 1428 | "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4" 1429 | }, 1430 | "dist": { 1431 | "type": "zip", 1432 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4", 1433 | "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4", 1434 | "shasum": "" 1435 | }, 1436 | "require": { 1437 | "php": "^5.3.3 || ^7.0" 1438 | }, 1439 | "require-dev": { 1440 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" 1441 | }, 1442 | "type": "library", 1443 | "extra": { 1444 | "branch-alias": { 1445 | "dev-master": "1.4-dev" 1446 | } 1447 | }, 1448 | "autoload": { 1449 | "classmap": [ 1450 | "src/" 1451 | ] 1452 | }, 1453 | "notification-url": "https://packagist.org/downloads/", 1454 | "license": [ 1455 | "BSD-3-Clause" 1456 | ], 1457 | "authors": [ 1458 | { 1459 | "name": "Kore Nordmann", 1460 | "email": "mail@kore-nordmann.de" 1461 | }, 1462 | { 1463 | "name": "Sebastian Bergmann", 1464 | "email": "sebastian@phpunit.de" 1465 | } 1466 | ], 1467 | "description": "Diff implementation", 1468 | "homepage": "https://github.com/sebastianbergmann/diff", 1469 | "keywords": [ 1470 | "diff" 1471 | ], 1472 | "support": { 1473 | "issues": "https://github.com/sebastianbergmann/diff/issues", 1474 | "source": "https://github.com/sebastianbergmann/diff/tree/1.4" 1475 | }, 1476 | "time": "2017-05-22T07:24:03+00:00" 1477 | }, 1478 | { 1479 | "name": "sebastian/environment", 1480 | "version": "2.0.0", 1481 | "source": { 1482 | "type": "git", 1483 | "url": "https://github.com/sebastianbergmann/environment.git", 1484 | "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac" 1485 | }, 1486 | "dist": { 1487 | "type": "zip", 1488 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5795ffe5dc5b02460c3e34222fee8cbe245d8fac", 1489 | "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac", 1490 | "shasum": "" 1491 | }, 1492 | "require": { 1493 | "php": "^5.6 || ^7.0" 1494 | }, 1495 | "require-dev": { 1496 | "phpunit/phpunit": "^5.0" 1497 | }, 1498 | "type": "library", 1499 | "extra": { 1500 | "branch-alias": { 1501 | "dev-master": "2.0.x-dev" 1502 | } 1503 | }, 1504 | "autoload": { 1505 | "classmap": [ 1506 | "src/" 1507 | ] 1508 | }, 1509 | "notification-url": "https://packagist.org/downloads/", 1510 | "license": [ 1511 | "BSD-3-Clause" 1512 | ], 1513 | "authors": [ 1514 | { 1515 | "name": "Sebastian Bergmann", 1516 | "email": "sebastian@phpunit.de" 1517 | } 1518 | ], 1519 | "description": "Provides functionality to handle HHVM/PHP environments", 1520 | "homepage": "http://www.github.com/sebastianbergmann/environment", 1521 | "keywords": [ 1522 | "Xdebug", 1523 | "environment", 1524 | "hhvm" 1525 | ], 1526 | "support": { 1527 | "issues": "https://github.com/sebastianbergmann/environment/issues", 1528 | "source": "https://github.com/sebastianbergmann/environment/tree/master" 1529 | }, 1530 | "time": "2016-11-26T07:53:53+00:00" 1531 | }, 1532 | { 1533 | "name": "sebastian/exporter", 1534 | "version": "2.0.0", 1535 | "source": { 1536 | "type": "git", 1537 | "url": "https://github.com/sebastianbergmann/exporter.git", 1538 | "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4" 1539 | }, 1540 | "dist": { 1541 | "type": "zip", 1542 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4", 1543 | "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4", 1544 | "shasum": "" 1545 | }, 1546 | "require": { 1547 | "php": ">=5.3.3", 1548 | "sebastian/recursion-context": "~2.0" 1549 | }, 1550 | "require-dev": { 1551 | "ext-mbstring": "*", 1552 | "phpunit/phpunit": "~4.4" 1553 | }, 1554 | "type": "library", 1555 | "extra": { 1556 | "branch-alias": { 1557 | "dev-master": "2.0.x-dev" 1558 | } 1559 | }, 1560 | "autoload": { 1561 | "classmap": [ 1562 | "src/" 1563 | ] 1564 | }, 1565 | "notification-url": "https://packagist.org/downloads/", 1566 | "license": [ 1567 | "BSD-3-Clause" 1568 | ], 1569 | "authors": [ 1570 | { 1571 | "name": "Jeff Welch", 1572 | "email": "whatthejeff@gmail.com" 1573 | }, 1574 | { 1575 | "name": "Volker Dusch", 1576 | "email": "github@wallbash.com" 1577 | }, 1578 | { 1579 | "name": "Bernhard Schussek", 1580 | "email": "bschussek@2bepublished.at" 1581 | }, 1582 | { 1583 | "name": "Sebastian Bergmann", 1584 | "email": "sebastian@phpunit.de" 1585 | }, 1586 | { 1587 | "name": "Adam Harvey", 1588 | "email": "aharvey@php.net" 1589 | } 1590 | ], 1591 | "description": "Provides the functionality to export PHP variables for visualization", 1592 | "homepage": "http://www.github.com/sebastianbergmann/exporter", 1593 | "keywords": [ 1594 | "export", 1595 | "exporter" 1596 | ], 1597 | "support": { 1598 | "issues": "https://github.com/sebastianbergmann/exporter/issues", 1599 | "source": "https://github.com/sebastianbergmann/exporter/tree/master" 1600 | }, 1601 | "time": "2016-11-19T08:54:04+00:00" 1602 | }, 1603 | { 1604 | "name": "sebastian/global-state", 1605 | "version": "1.1.1", 1606 | "source": { 1607 | "type": "git", 1608 | "url": "https://github.com/sebastianbergmann/global-state.git", 1609 | "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4" 1610 | }, 1611 | "dist": { 1612 | "type": "zip", 1613 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4", 1614 | "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4", 1615 | "shasum": "" 1616 | }, 1617 | "require": { 1618 | "php": ">=5.3.3" 1619 | }, 1620 | "require-dev": { 1621 | "phpunit/phpunit": "~4.2" 1622 | }, 1623 | "suggest": { 1624 | "ext-uopz": "*" 1625 | }, 1626 | "type": "library", 1627 | "extra": { 1628 | "branch-alias": { 1629 | "dev-master": "1.0-dev" 1630 | } 1631 | }, 1632 | "autoload": { 1633 | "classmap": [ 1634 | "src/" 1635 | ] 1636 | }, 1637 | "notification-url": "https://packagist.org/downloads/", 1638 | "license": [ 1639 | "BSD-3-Clause" 1640 | ], 1641 | "authors": [ 1642 | { 1643 | "name": "Sebastian Bergmann", 1644 | "email": "sebastian@phpunit.de" 1645 | } 1646 | ], 1647 | "description": "Snapshotting of global state", 1648 | "homepage": "http://www.github.com/sebastianbergmann/global-state", 1649 | "keywords": [ 1650 | "global state" 1651 | ], 1652 | "support": { 1653 | "issues": "https://github.com/sebastianbergmann/global-state/issues", 1654 | "source": "https://github.com/sebastianbergmann/global-state/tree/1.1.1" 1655 | }, 1656 | "time": "2015-10-12T03:26:01+00:00" 1657 | }, 1658 | { 1659 | "name": "sebastian/object-enumerator", 1660 | "version": "2.0.1", 1661 | "source": { 1662 | "type": "git", 1663 | "url": "https://github.com/sebastianbergmann/object-enumerator.git", 1664 | "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7" 1665 | }, 1666 | "dist": { 1667 | "type": "zip", 1668 | "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1311872ac850040a79c3c058bea3e22d0f09cbb7", 1669 | "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7", 1670 | "shasum": "" 1671 | }, 1672 | "require": { 1673 | "php": ">=5.6", 1674 | "sebastian/recursion-context": "~2.0" 1675 | }, 1676 | "require-dev": { 1677 | "phpunit/phpunit": "~5" 1678 | }, 1679 | "type": "library", 1680 | "extra": { 1681 | "branch-alias": { 1682 | "dev-master": "2.0.x-dev" 1683 | } 1684 | }, 1685 | "autoload": { 1686 | "classmap": [ 1687 | "src/" 1688 | ] 1689 | }, 1690 | "notification-url": "https://packagist.org/downloads/", 1691 | "license": [ 1692 | "BSD-3-Clause" 1693 | ], 1694 | "authors": [ 1695 | { 1696 | "name": "Sebastian Bergmann", 1697 | "email": "sebastian@phpunit.de" 1698 | } 1699 | ], 1700 | "description": "Traverses array structures and object graphs to enumerate all referenced objects", 1701 | "homepage": "https://github.com/sebastianbergmann/object-enumerator/", 1702 | "support": { 1703 | "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", 1704 | "source": "https://github.com/sebastianbergmann/object-enumerator/tree/master" 1705 | }, 1706 | "time": "2017-02-18T15:18:39+00:00" 1707 | }, 1708 | { 1709 | "name": "sebastian/recursion-context", 1710 | "version": "2.0.0", 1711 | "source": { 1712 | "type": "git", 1713 | "url": "https://github.com/sebastianbergmann/recursion-context.git", 1714 | "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a" 1715 | }, 1716 | "dist": { 1717 | "type": "zip", 1718 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/2c3ba150cbec723aa057506e73a8d33bdb286c9a", 1719 | "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a", 1720 | "shasum": "" 1721 | }, 1722 | "require": { 1723 | "php": ">=5.3.3" 1724 | }, 1725 | "require-dev": { 1726 | "phpunit/phpunit": "~4.4" 1727 | }, 1728 | "type": "library", 1729 | "extra": { 1730 | "branch-alias": { 1731 | "dev-master": "2.0.x-dev" 1732 | } 1733 | }, 1734 | "autoload": { 1735 | "classmap": [ 1736 | "src/" 1737 | ] 1738 | }, 1739 | "notification-url": "https://packagist.org/downloads/", 1740 | "license": [ 1741 | "BSD-3-Clause" 1742 | ], 1743 | "authors": [ 1744 | { 1745 | "name": "Jeff Welch", 1746 | "email": "whatthejeff@gmail.com" 1747 | }, 1748 | { 1749 | "name": "Sebastian Bergmann", 1750 | "email": "sebastian@phpunit.de" 1751 | }, 1752 | { 1753 | "name": "Adam Harvey", 1754 | "email": "aharvey@php.net" 1755 | } 1756 | ], 1757 | "description": "Provides functionality to recursively process PHP variables", 1758 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context", 1759 | "support": { 1760 | "issues": "https://github.com/sebastianbergmann/recursion-context/issues", 1761 | "source": "https://github.com/sebastianbergmann/recursion-context/tree/master" 1762 | }, 1763 | "time": "2016-11-19T07:33:16+00:00" 1764 | }, 1765 | { 1766 | "name": "sebastian/resource-operations", 1767 | "version": "1.0.0", 1768 | "source": { 1769 | "type": "git", 1770 | "url": "https://github.com/sebastianbergmann/resource-operations.git", 1771 | "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" 1772 | }, 1773 | "dist": { 1774 | "type": "zip", 1775 | "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", 1776 | "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", 1777 | "shasum": "" 1778 | }, 1779 | "require": { 1780 | "php": ">=5.6.0" 1781 | }, 1782 | "type": "library", 1783 | "extra": { 1784 | "branch-alias": { 1785 | "dev-master": "1.0.x-dev" 1786 | } 1787 | }, 1788 | "autoload": { 1789 | "classmap": [ 1790 | "src/" 1791 | ] 1792 | }, 1793 | "notification-url": "https://packagist.org/downloads/", 1794 | "license": [ 1795 | "BSD-3-Clause" 1796 | ], 1797 | "authors": [ 1798 | { 1799 | "name": "Sebastian Bergmann", 1800 | "email": "sebastian@phpunit.de" 1801 | } 1802 | ], 1803 | "description": "Provides a list of PHP built-in functions that operate on resources", 1804 | "homepage": "https://www.github.com/sebastianbergmann/resource-operations", 1805 | "support": { 1806 | "issues": "https://github.com/sebastianbergmann/resource-operations/issues", 1807 | "source": "https://github.com/sebastianbergmann/resource-operations/tree/master" 1808 | }, 1809 | "time": "2015-07-28T20:34:47+00:00" 1810 | }, 1811 | { 1812 | "name": "sebastian/version", 1813 | "version": "2.0.1", 1814 | "source": { 1815 | "type": "git", 1816 | "url": "https://github.com/sebastianbergmann/version.git", 1817 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" 1818 | }, 1819 | "dist": { 1820 | "type": "zip", 1821 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", 1822 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", 1823 | "shasum": "" 1824 | }, 1825 | "require": { 1826 | "php": ">=5.6" 1827 | }, 1828 | "type": "library", 1829 | "extra": { 1830 | "branch-alias": { 1831 | "dev-master": "2.0.x-dev" 1832 | } 1833 | }, 1834 | "autoload": { 1835 | "classmap": [ 1836 | "src/" 1837 | ] 1838 | }, 1839 | "notification-url": "https://packagist.org/downloads/", 1840 | "license": [ 1841 | "BSD-3-Clause" 1842 | ], 1843 | "authors": [ 1844 | { 1845 | "name": "Sebastian Bergmann", 1846 | "email": "sebastian@phpunit.de", 1847 | "role": "lead" 1848 | } 1849 | ], 1850 | "description": "Library that helps with managing the version number of Git-hosted PHP projects", 1851 | "homepage": "https://github.com/sebastianbergmann/version", 1852 | "support": { 1853 | "issues": "https://github.com/sebastianbergmann/version/issues", 1854 | "source": "https://github.com/sebastianbergmann/version/tree/master" 1855 | }, 1856 | "time": "2016-10-03T07:35:21+00:00" 1857 | }, 1858 | { 1859 | "name": "squizlabs/php_codesniffer", 1860 | "version": "2.9.2", 1861 | "source": { 1862 | "type": "git", 1863 | "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", 1864 | "reference": "2acf168de78487db620ab4bc524135a13cfe6745" 1865 | }, 1866 | "dist": { 1867 | "type": "zip", 1868 | "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/2acf168de78487db620ab4bc524135a13cfe6745", 1869 | "reference": "2acf168de78487db620ab4bc524135a13cfe6745", 1870 | "shasum": "" 1871 | }, 1872 | "require": { 1873 | "ext-simplexml": "*", 1874 | "ext-tokenizer": "*", 1875 | "ext-xmlwriter": "*", 1876 | "php": ">=5.1.2" 1877 | }, 1878 | "require-dev": { 1879 | "phpunit/phpunit": "~4.0" 1880 | }, 1881 | "bin": [ 1882 | "scripts/phpcs", 1883 | "scripts/phpcbf" 1884 | ], 1885 | "type": "library", 1886 | "extra": { 1887 | "branch-alias": { 1888 | "dev-master": "2.x-dev" 1889 | } 1890 | }, 1891 | "autoload": { 1892 | "classmap": [ 1893 | "CodeSniffer.php", 1894 | "CodeSniffer/CLI.php", 1895 | "CodeSniffer/Exception.php", 1896 | "CodeSniffer/File.php", 1897 | "CodeSniffer/Fixer.php", 1898 | "CodeSniffer/Report.php", 1899 | "CodeSniffer/Reporting.php", 1900 | "CodeSniffer/Sniff.php", 1901 | "CodeSniffer/Tokens.php", 1902 | "CodeSniffer/Reports/", 1903 | "CodeSniffer/Tokenizers/", 1904 | "CodeSniffer/DocGenerators/", 1905 | "CodeSniffer/Standards/AbstractPatternSniff.php", 1906 | "CodeSniffer/Standards/AbstractScopeSniff.php", 1907 | "CodeSniffer/Standards/AbstractVariableSniff.php", 1908 | "CodeSniffer/Standards/IncorrectPatternException.php", 1909 | "CodeSniffer/Standards/Generic/Sniffs/", 1910 | "CodeSniffer/Standards/MySource/Sniffs/", 1911 | "CodeSniffer/Standards/PEAR/Sniffs/", 1912 | "CodeSniffer/Standards/PSR1/Sniffs/", 1913 | "CodeSniffer/Standards/PSR2/Sniffs/", 1914 | "CodeSniffer/Standards/Squiz/Sniffs/", 1915 | "CodeSniffer/Standards/Zend/Sniffs/" 1916 | ] 1917 | }, 1918 | "notification-url": "https://packagist.org/downloads/", 1919 | "license": [ 1920 | "BSD-3-Clause" 1921 | ], 1922 | "authors": [ 1923 | { 1924 | "name": "Greg Sherwood", 1925 | "role": "lead" 1926 | } 1927 | ], 1928 | "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", 1929 | "homepage": "http://www.squizlabs.com/php-codesniffer", 1930 | "keywords": [ 1931 | "phpcs", 1932 | "standards" 1933 | ], 1934 | "support": { 1935 | "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", 1936 | "source": "https://github.com/squizlabs/PHP_CodeSniffer", 1937 | "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" 1938 | }, 1939 | "time": "2018-11-07T22:31:41+00:00" 1940 | }, 1941 | { 1942 | "name": "symfony/config", 1943 | "version": "v3.4.47", 1944 | "source": { 1945 | "type": "git", 1946 | "url": "https://github.com/symfony/config.git", 1947 | "reference": "bc6b3fd3930d4b53a60b42fe2ed6fc466b75f03f" 1948 | }, 1949 | "dist": { 1950 | "type": "zip", 1951 | "url": "https://api.github.com/repos/symfony/config/zipball/bc6b3fd3930d4b53a60b42fe2ed6fc466b75f03f", 1952 | "reference": "bc6b3fd3930d4b53a60b42fe2ed6fc466b75f03f", 1953 | "shasum": "" 1954 | }, 1955 | "require": { 1956 | "php": "^5.5.9|>=7.0.8", 1957 | "symfony/filesystem": "~2.8|~3.0|~4.0", 1958 | "symfony/polyfill-ctype": "~1.8" 1959 | }, 1960 | "conflict": { 1961 | "symfony/dependency-injection": "<3.3", 1962 | "symfony/finder": "<3.3" 1963 | }, 1964 | "require-dev": { 1965 | "symfony/dependency-injection": "~3.3|~4.0", 1966 | "symfony/event-dispatcher": "~3.3|~4.0", 1967 | "symfony/finder": "~3.3|~4.0", 1968 | "symfony/yaml": "~3.0|~4.0" 1969 | }, 1970 | "suggest": { 1971 | "symfony/yaml": "To use the yaml reference dumper" 1972 | }, 1973 | "type": "library", 1974 | "autoload": { 1975 | "psr-4": { 1976 | "Symfony\\Component\\Config\\": "" 1977 | }, 1978 | "exclude-from-classmap": [ 1979 | "/Tests/" 1980 | ] 1981 | }, 1982 | "notification-url": "https://packagist.org/downloads/", 1983 | "license": [ 1984 | "MIT" 1985 | ], 1986 | "authors": [ 1987 | { 1988 | "name": "Fabien Potencier", 1989 | "email": "fabien@symfony.com" 1990 | }, 1991 | { 1992 | "name": "Symfony Community", 1993 | "homepage": "https://symfony.com/contributors" 1994 | } 1995 | ], 1996 | "description": "Symfony Config Component", 1997 | "homepage": "https://symfony.com", 1998 | "support": { 1999 | "source": "https://github.com/symfony/config/tree/v3.4.47" 2000 | }, 2001 | "funding": [ 2002 | { 2003 | "url": "https://symfony.com/sponsor", 2004 | "type": "custom" 2005 | }, 2006 | { 2007 | "url": "https://github.com/fabpot", 2008 | "type": "github" 2009 | }, 2010 | { 2011 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 2012 | "type": "tidelift" 2013 | } 2014 | ], 2015 | "time": "2020-10-24T10:57:07+00:00" 2016 | }, 2017 | { 2018 | "name": "symfony/console", 2019 | "version": "v3.4.47", 2020 | "source": { 2021 | "type": "git", 2022 | "url": "https://github.com/symfony/console.git", 2023 | "reference": "a10b1da6fc93080c180bba7219b5ff5b7518fe81" 2024 | }, 2025 | "dist": { 2026 | "type": "zip", 2027 | "url": "https://api.github.com/repos/symfony/console/zipball/a10b1da6fc93080c180bba7219b5ff5b7518fe81", 2028 | "reference": "a10b1da6fc93080c180bba7219b5ff5b7518fe81", 2029 | "shasum": "" 2030 | }, 2031 | "require": { 2032 | "php": "^5.5.9|>=7.0.8", 2033 | "symfony/debug": "~2.8|~3.0|~4.0", 2034 | "symfony/polyfill-mbstring": "~1.0" 2035 | }, 2036 | "conflict": { 2037 | "symfony/dependency-injection": "<3.4", 2038 | "symfony/process": "<3.3" 2039 | }, 2040 | "provide": { 2041 | "psr/log-implementation": "1.0" 2042 | }, 2043 | "require-dev": { 2044 | "psr/log": "~1.0", 2045 | "symfony/config": "~3.3|~4.0", 2046 | "symfony/dependency-injection": "~3.4|~4.0", 2047 | "symfony/event-dispatcher": "~2.8|~3.0|~4.0", 2048 | "symfony/lock": "~3.4|~4.0", 2049 | "symfony/process": "~3.3|~4.0" 2050 | }, 2051 | "suggest": { 2052 | "psr/log": "For using the console logger", 2053 | "symfony/event-dispatcher": "", 2054 | "symfony/lock": "", 2055 | "symfony/process": "" 2056 | }, 2057 | "type": "library", 2058 | "autoload": { 2059 | "psr-4": { 2060 | "Symfony\\Component\\Console\\": "" 2061 | }, 2062 | "exclude-from-classmap": [ 2063 | "/Tests/" 2064 | ] 2065 | }, 2066 | "notification-url": "https://packagist.org/downloads/", 2067 | "license": [ 2068 | "MIT" 2069 | ], 2070 | "authors": [ 2071 | { 2072 | "name": "Fabien Potencier", 2073 | "email": "fabien@symfony.com" 2074 | }, 2075 | { 2076 | "name": "Symfony Community", 2077 | "homepage": "https://symfony.com/contributors" 2078 | } 2079 | ], 2080 | "description": "Symfony Console Component", 2081 | "homepage": "https://symfony.com", 2082 | "support": { 2083 | "source": "https://github.com/symfony/console/tree/v3.4.47" 2084 | }, 2085 | "funding": [ 2086 | { 2087 | "url": "https://symfony.com/sponsor", 2088 | "type": "custom" 2089 | }, 2090 | { 2091 | "url": "https://github.com/fabpot", 2092 | "type": "github" 2093 | }, 2094 | { 2095 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 2096 | "type": "tidelift" 2097 | } 2098 | ], 2099 | "time": "2020-10-24T10:57:07+00:00" 2100 | }, 2101 | { 2102 | "name": "symfony/debug", 2103 | "version": "v3.4.47", 2104 | "source": { 2105 | "type": "git", 2106 | "url": "https://github.com/symfony/debug.git", 2107 | "reference": "ab42889de57fdfcfcc0759ab102e2fd4ea72dcae" 2108 | }, 2109 | "dist": { 2110 | "type": "zip", 2111 | "url": "https://api.github.com/repos/symfony/debug/zipball/ab42889de57fdfcfcc0759ab102e2fd4ea72dcae", 2112 | "reference": "ab42889de57fdfcfcc0759ab102e2fd4ea72dcae", 2113 | "shasum": "" 2114 | }, 2115 | "require": { 2116 | "php": "^5.5.9|>=7.0.8", 2117 | "psr/log": "~1.0" 2118 | }, 2119 | "conflict": { 2120 | "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" 2121 | }, 2122 | "require-dev": { 2123 | "symfony/http-kernel": "~2.8|~3.0|~4.0" 2124 | }, 2125 | "type": "library", 2126 | "autoload": { 2127 | "psr-4": { 2128 | "Symfony\\Component\\Debug\\": "" 2129 | }, 2130 | "exclude-from-classmap": [ 2131 | "/Tests/" 2132 | ] 2133 | }, 2134 | "notification-url": "https://packagist.org/downloads/", 2135 | "license": [ 2136 | "MIT" 2137 | ], 2138 | "authors": [ 2139 | { 2140 | "name": "Fabien Potencier", 2141 | "email": "fabien@symfony.com" 2142 | }, 2143 | { 2144 | "name": "Symfony Community", 2145 | "homepage": "https://symfony.com/contributors" 2146 | } 2147 | ], 2148 | "description": "Symfony Debug Component", 2149 | "homepage": "https://symfony.com", 2150 | "support": { 2151 | "source": "https://github.com/symfony/debug/tree/v3.4.47" 2152 | }, 2153 | "funding": [ 2154 | { 2155 | "url": "https://symfony.com/sponsor", 2156 | "type": "custom" 2157 | }, 2158 | { 2159 | "url": "https://github.com/fabpot", 2160 | "type": "github" 2161 | }, 2162 | { 2163 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 2164 | "type": "tidelift" 2165 | } 2166 | ], 2167 | "time": "2020-10-24T10:57:07+00:00" 2168 | }, 2169 | { 2170 | "name": "symfony/filesystem", 2171 | "version": "v3.4.47", 2172 | "source": { 2173 | "type": "git", 2174 | "url": "https://github.com/symfony/filesystem.git", 2175 | "reference": "e58d7841cddfed6e846829040dca2cca0ebbbbb3" 2176 | }, 2177 | "dist": { 2178 | "type": "zip", 2179 | "url": "https://api.github.com/repos/symfony/filesystem/zipball/e58d7841cddfed6e846829040dca2cca0ebbbbb3", 2180 | "reference": "e58d7841cddfed6e846829040dca2cca0ebbbbb3", 2181 | "shasum": "" 2182 | }, 2183 | "require": { 2184 | "php": "^5.5.9|>=7.0.8", 2185 | "symfony/polyfill-ctype": "~1.8" 2186 | }, 2187 | "type": "library", 2188 | "autoload": { 2189 | "psr-4": { 2190 | "Symfony\\Component\\Filesystem\\": "" 2191 | }, 2192 | "exclude-from-classmap": [ 2193 | "/Tests/" 2194 | ] 2195 | }, 2196 | "notification-url": "https://packagist.org/downloads/", 2197 | "license": [ 2198 | "MIT" 2199 | ], 2200 | "authors": [ 2201 | { 2202 | "name": "Fabien Potencier", 2203 | "email": "fabien@symfony.com" 2204 | }, 2205 | { 2206 | "name": "Symfony Community", 2207 | "homepage": "https://symfony.com/contributors" 2208 | } 2209 | ], 2210 | "description": "Symfony Filesystem Component", 2211 | "homepage": "https://symfony.com", 2212 | "support": { 2213 | "source": "https://github.com/symfony/filesystem/tree/v3.4.47" 2214 | }, 2215 | "funding": [ 2216 | { 2217 | "url": "https://symfony.com/sponsor", 2218 | "type": "custom" 2219 | }, 2220 | { 2221 | "url": "https://github.com/fabpot", 2222 | "type": "github" 2223 | }, 2224 | { 2225 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 2226 | "type": "tidelift" 2227 | } 2228 | ], 2229 | "time": "2020-10-24T10:57:07+00:00" 2230 | }, 2231 | { 2232 | "name": "symfony/polyfill-ctype", 2233 | "version": "v1.19.0", 2234 | "source": { 2235 | "type": "git", 2236 | "url": "https://github.com/symfony/polyfill-ctype.git", 2237 | "reference": "aed596913b70fae57be53d86faa2e9ef85a2297b" 2238 | }, 2239 | "dist": { 2240 | "type": "zip", 2241 | "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/aed596913b70fae57be53d86faa2e9ef85a2297b", 2242 | "reference": "aed596913b70fae57be53d86faa2e9ef85a2297b", 2243 | "shasum": "" 2244 | }, 2245 | "require": { 2246 | "php": ">=5.3.3" 2247 | }, 2248 | "suggest": { 2249 | "ext-ctype": "For best performance" 2250 | }, 2251 | "type": "library", 2252 | "extra": { 2253 | "branch-alias": { 2254 | "dev-main": "1.19-dev" 2255 | }, 2256 | "thanks": { 2257 | "name": "symfony/polyfill", 2258 | "url": "https://github.com/symfony/polyfill" 2259 | } 2260 | }, 2261 | "autoload": { 2262 | "psr-4": { 2263 | "Symfony\\Polyfill\\Ctype\\": "" 2264 | }, 2265 | "files": [ 2266 | "bootstrap.php" 2267 | ] 2268 | }, 2269 | "notification-url": "https://packagist.org/downloads/", 2270 | "license": [ 2271 | "MIT" 2272 | ], 2273 | "authors": [ 2274 | { 2275 | "name": "Gert de Pagter", 2276 | "email": "BackEndTea@gmail.com" 2277 | }, 2278 | { 2279 | "name": "Symfony Community", 2280 | "homepage": "https://symfony.com/contributors" 2281 | } 2282 | ], 2283 | "description": "Symfony polyfill for ctype functions", 2284 | "homepage": "https://symfony.com", 2285 | "keywords": [ 2286 | "compatibility", 2287 | "ctype", 2288 | "polyfill", 2289 | "portable" 2290 | ], 2291 | "support": { 2292 | "source": "https://github.com/symfony/polyfill-ctype/tree/v1.19.0" 2293 | }, 2294 | "funding": [ 2295 | { 2296 | "url": "https://symfony.com/sponsor", 2297 | "type": "custom" 2298 | }, 2299 | { 2300 | "url": "https://github.com/fabpot", 2301 | "type": "github" 2302 | }, 2303 | { 2304 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 2305 | "type": "tidelift" 2306 | } 2307 | ], 2308 | "time": "2020-10-23T09:01:57+00:00" 2309 | }, 2310 | { 2311 | "name": "symfony/polyfill-intl-idn", 2312 | "version": "v1.19.0", 2313 | "source": { 2314 | "type": "git", 2315 | "url": "https://github.com/symfony/polyfill-intl-idn.git", 2316 | "reference": "4ad5115c0f5d5172a9fe8147675ec6de266d8826" 2317 | }, 2318 | "dist": { 2319 | "type": "zip", 2320 | "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/4ad5115c0f5d5172a9fe8147675ec6de266d8826", 2321 | "reference": "4ad5115c0f5d5172a9fe8147675ec6de266d8826", 2322 | "shasum": "" 2323 | }, 2324 | "require": { 2325 | "php": ">=5.3.3", 2326 | "symfony/polyfill-intl-normalizer": "^1.10", 2327 | "symfony/polyfill-php70": "^1.10", 2328 | "symfony/polyfill-php72": "^1.10" 2329 | }, 2330 | "suggest": { 2331 | "ext-intl": "For best performance" 2332 | }, 2333 | "type": "library", 2334 | "extra": { 2335 | "branch-alias": { 2336 | "dev-main": "1.19-dev" 2337 | }, 2338 | "thanks": { 2339 | "name": "symfony/polyfill", 2340 | "url": "https://github.com/symfony/polyfill" 2341 | } 2342 | }, 2343 | "autoload": { 2344 | "psr-4": { 2345 | "Symfony\\Polyfill\\Intl\\Idn\\": "" 2346 | }, 2347 | "files": [ 2348 | "bootstrap.php" 2349 | ] 2350 | }, 2351 | "notification-url": "https://packagist.org/downloads/", 2352 | "license": [ 2353 | "MIT" 2354 | ], 2355 | "authors": [ 2356 | { 2357 | "name": "Laurent Bassin", 2358 | "email": "laurent@bassin.info" 2359 | }, 2360 | { 2361 | "name": "Trevor Rowbotham", 2362 | "email": "trevor.rowbotham@pm.me" 2363 | }, 2364 | { 2365 | "name": "Symfony Community", 2366 | "homepage": "https://symfony.com/contributors" 2367 | } 2368 | ], 2369 | "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", 2370 | "homepage": "https://symfony.com", 2371 | "keywords": [ 2372 | "compatibility", 2373 | "idn", 2374 | "intl", 2375 | "polyfill", 2376 | "portable", 2377 | "shim" 2378 | ], 2379 | "support": { 2380 | "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.19.0" 2381 | }, 2382 | "funding": [ 2383 | { 2384 | "url": "https://symfony.com/sponsor", 2385 | "type": "custom" 2386 | }, 2387 | { 2388 | "url": "https://github.com/fabpot", 2389 | "type": "github" 2390 | }, 2391 | { 2392 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 2393 | "type": "tidelift" 2394 | } 2395 | ], 2396 | "time": "2020-10-21T09:57:48+00:00" 2397 | }, 2398 | { 2399 | "name": "symfony/polyfill-intl-normalizer", 2400 | "version": "v1.19.0", 2401 | "source": { 2402 | "type": "git", 2403 | "url": "https://github.com/symfony/polyfill-intl-normalizer.git", 2404 | "reference": "8db0ae7936b42feb370840cf24de1a144fb0ef27" 2405 | }, 2406 | "dist": { 2407 | "type": "zip", 2408 | "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8db0ae7936b42feb370840cf24de1a144fb0ef27", 2409 | "reference": "8db0ae7936b42feb370840cf24de1a144fb0ef27", 2410 | "shasum": "" 2411 | }, 2412 | "require": { 2413 | "php": ">=5.3.3" 2414 | }, 2415 | "suggest": { 2416 | "ext-intl": "For best performance" 2417 | }, 2418 | "type": "library", 2419 | "extra": { 2420 | "branch-alias": { 2421 | "dev-main": "1.19-dev" 2422 | }, 2423 | "thanks": { 2424 | "name": "symfony/polyfill", 2425 | "url": "https://github.com/symfony/polyfill" 2426 | } 2427 | }, 2428 | "autoload": { 2429 | "psr-4": { 2430 | "Symfony\\Polyfill\\Intl\\Normalizer\\": "" 2431 | }, 2432 | "files": [ 2433 | "bootstrap.php" 2434 | ], 2435 | "classmap": [ 2436 | "Resources/stubs" 2437 | ] 2438 | }, 2439 | "notification-url": "https://packagist.org/downloads/", 2440 | "license": [ 2441 | "MIT" 2442 | ], 2443 | "authors": [ 2444 | { 2445 | "name": "Nicolas Grekas", 2446 | "email": "p@tchwork.com" 2447 | }, 2448 | { 2449 | "name": "Symfony Community", 2450 | "homepage": "https://symfony.com/contributors" 2451 | } 2452 | ], 2453 | "description": "Symfony polyfill for intl's Normalizer class and related functions", 2454 | "homepage": "https://symfony.com", 2455 | "keywords": [ 2456 | "compatibility", 2457 | "intl", 2458 | "normalizer", 2459 | "polyfill", 2460 | "portable", 2461 | "shim" 2462 | ], 2463 | "support": { 2464 | "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.19.0" 2465 | }, 2466 | "funding": [ 2467 | { 2468 | "url": "https://symfony.com/sponsor", 2469 | "type": "custom" 2470 | }, 2471 | { 2472 | "url": "https://github.com/fabpot", 2473 | "type": "github" 2474 | }, 2475 | { 2476 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 2477 | "type": "tidelift" 2478 | } 2479 | ], 2480 | "time": "2020-10-23T09:01:57+00:00" 2481 | }, 2482 | { 2483 | "name": "symfony/polyfill-mbstring", 2484 | "version": "v1.19.0", 2485 | "source": { 2486 | "type": "git", 2487 | "url": "https://github.com/symfony/polyfill-mbstring.git", 2488 | "reference": "b5f7b932ee6fa802fc792eabd77c4c88084517ce" 2489 | }, 2490 | "dist": { 2491 | "type": "zip", 2492 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/b5f7b932ee6fa802fc792eabd77c4c88084517ce", 2493 | "reference": "b5f7b932ee6fa802fc792eabd77c4c88084517ce", 2494 | "shasum": "" 2495 | }, 2496 | "require": { 2497 | "php": ">=5.3.3" 2498 | }, 2499 | "suggest": { 2500 | "ext-mbstring": "For best performance" 2501 | }, 2502 | "type": "library", 2503 | "extra": { 2504 | "branch-alias": { 2505 | "dev-main": "1.19-dev" 2506 | }, 2507 | "thanks": { 2508 | "name": "symfony/polyfill", 2509 | "url": "https://github.com/symfony/polyfill" 2510 | } 2511 | }, 2512 | "autoload": { 2513 | "psr-4": { 2514 | "Symfony\\Polyfill\\Mbstring\\": "" 2515 | }, 2516 | "files": [ 2517 | "bootstrap.php" 2518 | ] 2519 | }, 2520 | "notification-url": "https://packagist.org/downloads/", 2521 | "license": [ 2522 | "MIT" 2523 | ], 2524 | "authors": [ 2525 | { 2526 | "name": "Nicolas Grekas", 2527 | "email": "p@tchwork.com" 2528 | }, 2529 | { 2530 | "name": "Symfony Community", 2531 | "homepage": "https://symfony.com/contributors" 2532 | } 2533 | ], 2534 | "description": "Symfony polyfill for the Mbstring extension", 2535 | "homepage": "https://symfony.com", 2536 | "keywords": [ 2537 | "compatibility", 2538 | "mbstring", 2539 | "polyfill", 2540 | "portable", 2541 | "shim" 2542 | ], 2543 | "support": { 2544 | "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.19.0" 2545 | }, 2546 | "funding": [ 2547 | { 2548 | "url": "https://symfony.com/sponsor", 2549 | "type": "custom" 2550 | }, 2551 | { 2552 | "url": "https://github.com/fabpot", 2553 | "type": "github" 2554 | }, 2555 | { 2556 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 2557 | "type": "tidelift" 2558 | } 2559 | ], 2560 | "time": "2020-10-23T09:01:57+00:00" 2561 | }, 2562 | { 2563 | "name": "symfony/polyfill-php70", 2564 | "version": "v1.19.0", 2565 | "source": { 2566 | "type": "git", 2567 | "url": "https://github.com/symfony/polyfill-php70.git", 2568 | "reference": "3fe414077251a81a1b15b1c709faf5c2fbae3d4e" 2569 | }, 2570 | "dist": { 2571 | "type": "zip", 2572 | "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/3fe414077251a81a1b15b1c709faf5c2fbae3d4e", 2573 | "reference": "3fe414077251a81a1b15b1c709faf5c2fbae3d4e", 2574 | "shasum": "" 2575 | }, 2576 | "require": { 2577 | "paragonie/random_compat": "~1.0|~2.0|~9.99", 2578 | "php": ">=5.3.3" 2579 | }, 2580 | "type": "library", 2581 | "extra": { 2582 | "branch-alias": { 2583 | "dev-main": "1.19-dev" 2584 | }, 2585 | "thanks": { 2586 | "name": "symfony/polyfill", 2587 | "url": "https://github.com/symfony/polyfill" 2588 | } 2589 | }, 2590 | "autoload": { 2591 | "psr-4": { 2592 | "Symfony\\Polyfill\\Php70\\": "" 2593 | }, 2594 | "files": [ 2595 | "bootstrap.php" 2596 | ], 2597 | "classmap": [ 2598 | "Resources/stubs" 2599 | ] 2600 | }, 2601 | "notification-url": "https://packagist.org/downloads/", 2602 | "license": [ 2603 | "MIT" 2604 | ], 2605 | "authors": [ 2606 | { 2607 | "name": "Nicolas Grekas", 2608 | "email": "p@tchwork.com" 2609 | }, 2610 | { 2611 | "name": "Symfony Community", 2612 | "homepage": "https://symfony.com/contributors" 2613 | } 2614 | ], 2615 | "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", 2616 | "homepage": "https://symfony.com", 2617 | "keywords": [ 2618 | "compatibility", 2619 | "polyfill", 2620 | "portable", 2621 | "shim" 2622 | ], 2623 | "support": { 2624 | "source": "https://github.com/symfony/polyfill-php70/tree/v1.19.0" 2625 | }, 2626 | "funding": [ 2627 | { 2628 | "url": "https://symfony.com/sponsor", 2629 | "type": "custom" 2630 | }, 2631 | { 2632 | "url": "https://github.com/fabpot", 2633 | "type": "github" 2634 | }, 2635 | { 2636 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 2637 | "type": "tidelift" 2638 | } 2639 | ], 2640 | "time": "2020-10-23T09:01:57+00:00" 2641 | }, 2642 | { 2643 | "name": "symfony/polyfill-php72", 2644 | "version": "v1.19.0", 2645 | "source": { 2646 | "type": "git", 2647 | "url": "https://github.com/symfony/polyfill-php72.git", 2648 | "reference": "beecef6b463b06954638f02378f52496cb84bacc" 2649 | }, 2650 | "dist": { 2651 | "type": "zip", 2652 | "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/beecef6b463b06954638f02378f52496cb84bacc", 2653 | "reference": "beecef6b463b06954638f02378f52496cb84bacc", 2654 | "shasum": "" 2655 | }, 2656 | "require": { 2657 | "php": ">=5.3.3" 2658 | }, 2659 | "type": "library", 2660 | "extra": { 2661 | "branch-alias": { 2662 | "dev-main": "1.19-dev" 2663 | }, 2664 | "thanks": { 2665 | "name": "symfony/polyfill", 2666 | "url": "https://github.com/symfony/polyfill" 2667 | } 2668 | }, 2669 | "autoload": { 2670 | "psr-4": { 2671 | "Symfony\\Polyfill\\Php72\\": "" 2672 | }, 2673 | "files": [ 2674 | "bootstrap.php" 2675 | ] 2676 | }, 2677 | "notification-url": "https://packagist.org/downloads/", 2678 | "license": [ 2679 | "MIT" 2680 | ], 2681 | "authors": [ 2682 | { 2683 | "name": "Nicolas Grekas", 2684 | "email": "p@tchwork.com" 2685 | }, 2686 | { 2687 | "name": "Symfony Community", 2688 | "homepage": "https://symfony.com/contributors" 2689 | } 2690 | ], 2691 | "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", 2692 | "homepage": "https://symfony.com", 2693 | "keywords": [ 2694 | "compatibility", 2695 | "polyfill", 2696 | "portable", 2697 | "shim" 2698 | ], 2699 | "support": { 2700 | "source": "https://github.com/symfony/polyfill-php72/tree/v1.19.0" 2701 | }, 2702 | "funding": [ 2703 | { 2704 | "url": "https://symfony.com/sponsor", 2705 | "type": "custom" 2706 | }, 2707 | { 2708 | "url": "https://github.com/fabpot", 2709 | "type": "github" 2710 | }, 2711 | { 2712 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 2713 | "type": "tidelift" 2714 | } 2715 | ], 2716 | "time": "2020-10-23T09:01:57+00:00" 2717 | }, 2718 | { 2719 | "name": "symfony/stopwatch", 2720 | "version": "v3.4.47", 2721 | "source": { 2722 | "type": "git", 2723 | "url": "https://github.com/symfony/stopwatch.git", 2724 | "reference": "298b81faad4ce60e94466226b2abbb8c9bca7462" 2725 | }, 2726 | "dist": { 2727 | "type": "zip", 2728 | "url": "https://api.github.com/repos/symfony/stopwatch/zipball/298b81faad4ce60e94466226b2abbb8c9bca7462", 2729 | "reference": "298b81faad4ce60e94466226b2abbb8c9bca7462", 2730 | "shasum": "" 2731 | }, 2732 | "require": { 2733 | "php": "^5.5.9|>=7.0.8" 2734 | }, 2735 | "type": "library", 2736 | "autoload": { 2737 | "psr-4": { 2738 | "Symfony\\Component\\Stopwatch\\": "" 2739 | }, 2740 | "exclude-from-classmap": [ 2741 | "/Tests/" 2742 | ] 2743 | }, 2744 | "notification-url": "https://packagist.org/downloads/", 2745 | "license": [ 2746 | "MIT" 2747 | ], 2748 | "authors": [ 2749 | { 2750 | "name": "Fabien Potencier", 2751 | "email": "fabien@symfony.com" 2752 | }, 2753 | { 2754 | "name": "Symfony Community", 2755 | "homepage": "https://symfony.com/contributors" 2756 | } 2757 | ], 2758 | "description": "Symfony Stopwatch Component", 2759 | "homepage": "https://symfony.com", 2760 | "support": { 2761 | "source": "https://github.com/symfony/stopwatch/tree/v3.4.47" 2762 | }, 2763 | "funding": [ 2764 | { 2765 | "url": "https://symfony.com/sponsor", 2766 | "type": "custom" 2767 | }, 2768 | { 2769 | "url": "https://github.com/fabpot", 2770 | "type": "github" 2771 | }, 2772 | { 2773 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 2774 | "type": "tidelift" 2775 | } 2776 | ], 2777 | "time": "2020-10-24T10:57:07+00:00" 2778 | }, 2779 | { 2780 | "name": "symfony/yaml", 2781 | "version": "v3.4.47", 2782 | "source": { 2783 | "type": "git", 2784 | "url": "https://github.com/symfony/yaml.git", 2785 | "reference": "88289caa3c166321883f67fe5130188ebbb47094" 2786 | }, 2787 | "dist": { 2788 | "type": "zip", 2789 | "url": "https://api.github.com/repos/symfony/yaml/zipball/88289caa3c166321883f67fe5130188ebbb47094", 2790 | "reference": "88289caa3c166321883f67fe5130188ebbb47094", 2791 | "shasum": "" 2792 | }, 2793 | "require": { 2794 | "php": "^5.5.9|>=7.0.8", 2795 | "symfony/polyfill-ctype": "~1.8" 2796 | }, 2797 | "conflict": { 2798 | "symfony/console": "<3.4" 2799 | }, 2800 | "require-dev": { 2801 | "symfony/console": "~3.4|~4.0" 2802 | }, 2803 | "suggest": { 2804 | "symfony/console": "For validating YAML files using the lint command" 2805 | }, 2806 | "type": "library", 2807 | "autoload": { 2808 | "psr-4": { 2809 | "Symfony\\Component\\Yaml\\": "" 2810 | }, 2811 | "exclude-from-classmap": [ 2812 | "/Tests/" 2813 | ] 2814 | }, 2815 | "notification-url": "https://packagist.org/downloads/", 2816 | "license": [ 2817 | "MIT" 2818 | ], 2819 | "authors": [ 2820 | { 2821 | "name": "Fabien Potencier", 2822 | "email": "fabien@symfony.com" 2823 | }, 2824 | { 2825 | "name": "Symfony Community", 2826 | "homepage": "https://symfony.com/contributors" 2827 | } 2828 | ], 2829 | "description": "Symfony Yaml Component", 2830 | "homepage": "https://symfony.com", 2831 | "support": { 2832 | "source": "https://github.com/symfony/yaml/tree/v3.4.47" 2833 | }, 2834 | "funding": [ 2835 | { 2836 | "url": "https://symfony.com/sponsor", 2837 | "type": "custom" 2838 | }, 2839 | { 2840 | "url": "https://github.com/fabpot", 2841 | "type": "github" 2842 | }, 2843 | { 2844 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 2845 | "type": "tidelift" 2846 | } 2847 | ], 2848 | "time": "2020-10-24T10:57:07+00:00" 2849 | }, 2850 | { 2851 | "name": "webmozart/assert", 2852 | "version": "1.9.1", 2853 | "source": { 2854 | "type": "git", 2855 | "url": "https://github.com/webmozart/assert.git", 2856 | "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389" 2857 | }, 2858 | "dist": { 2859 | "type": "zip", 2860 | "url": "https://api.github.com/repos/webmozart/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389", 2861 | "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389", 2862 | "shasum": "" 2863 | }, 2864 | "require": { 2865 | "php": "^5.3.3 || ^7.0 || ^8.0", 2866 | "symfony/polyfill-ctype": "^1.8" 2867 | }, 2868 | "conflict": { 2869 | "phpstan/phpstan": "<0.12.20", 2870 | "vimeo/psalm": "<3.9.1" 2871 | }, 2872 | "require-dev": { 2873 | "phpunit/phpunit": "^4.8.36 || ^7.5.13" 2874 | }, 2875 | "type": "library", 2876 | "autoload": { 2877 | "psr-4": { 2878 | "Webmozart\\Assert\\": "src/" 2879 | } 2880 | }, 2881 | "notification-url": "https://packagist.org/downloads/", 2882 | "license": [ 2883 | "MIT" 2884 | ], 2885 | "authors": [ 2886 | { 2887 | "name": "Bernhard Schussek", 2888 | "email": "bschussek@gmail.com" 2889 | } 2890 | ], 2891 | "description": "Assertions to validate method input/output with nice error messages.", 2892 | "keywords": [ 2893 | "assert", 2894 | "check", 2895 | "validate" 2896 | ], 2897 | "support": { 2898 | "issues": "https://github.com/webmozart/assert/issues", 2899 | "source": "https://github.com/webmozart/assert/tree/master" 2900 | }, 2901 | "time": "2020-07-08T17:02:28+00:00" 2902 | } 2903 | ], 2904 | "aliases": [], 2905 | "minimum-stability": "stable", 2906 | "stability-flags": [], 2907 | "prefer-stable": false, 2908 | "prefer-lowest": false, 2909 | "platform": { 2910 | "php": "~5.6 || ~7.0 || ~8.0" 2911 | }, 2912 | "platform-dev": [], 2913 | "plugin-api-version": "2.0.0" 2914 | } 2915 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "2" 2 | services: 3 | build: 4 | build: 5 | context: . 6 | dockerfile: Dockerfile.tests 7 | volumes: 8 | - .:/code 9 | -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | ./tests 4 | 5 | 6 | 7 | src 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/AbstractGenerator.php: -------------------------------------------------------------------------------- 1 | getName(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/All.php: -------------------------------------------------------------------------------- 1 | _generators = $generators; 27 | $this->_randomizer = $randomizer; 28 | } 29 | 30 | /** 31 | * Constructs an All Generator using the default list of generators. 32 | * 33 | * @api 34 | * @param \Cinam\Randomizer\Randomizer $randomizer The random number generator. 35 | * @return \Nubs\RandomNameGenerator\All The constructed generator. 36 | */ 37 | public static function create(Randomizer $randomizer = null) 38 | { 39 | return new self([new Alliteration($randomizer), new Vgng($randomizer)], $randomizer); 40 | } 41 | 42 | /** 43 | * Gets a randomly generated name using the configured generators. 44 | * 45 | * @api 46 | * @return string A random name. 47 | */ 48 | public function getName() 49 | { 50 | return $this->_getRandomGenerator()->getName(); 51 | } 52 | 53 | /** 54 | * Get a random generator from the list of generators. 55 | * 56 | * @return \Nubs\RandomNameGenerator\Generator A random generator. 57 | */ 58 | protected function _getRandomGenerator() 59 | { 60 | return $this->_randomizer ? $this->_randomizer->getArrayValue($this->_generators) : $this->_generators[array_rand($this->_generators)]; 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /src/Alliteration.php: -------------------------------------------------------------------------------- 1 | _randomizer = $randomizer; 29 | $this->_adjectives = file(__DIR__ . '/adjectives.txt', FILE_IGNORE_NEW_LINES); 30 | $this->_nouns = file(__DIR__ . '/nouns.txt', FILE_IGNORE_NEW_LINES); 31 | } 32 | 33 | /** 34 | * Gets a randomly generated alliterative name. 35 | * 36 | * @api 37 | * @return string A random alliterative name. 38 | */ 39 | public function getName() 40 | { 41 | $adjective = $this->_getRandomWord($this->_adjectives); 42 | $noun = $this->_getRandomWord($this->_nouns, $adjective[0]); 43 | 44 | return ucwords("{$adjective} {$noun}"); 45 | } 46 | 47 | /** 48 | * Get a random word from the list of words, optionally filtering by starting letter. 49 | * 50 | * @param array $words An array of words to choose from. 51 | * @param string $startingLetter The desired starting letter of the word. 52 | * @return string The random word. 53 | */ 54 | protected function _getRandomWord(array $words, $startingLetter = null) 55 | { 56 | $wordsToSearch = $startingLetter === null ? $words : preg_grep("/^{$startingLetter}/", $words); 57 | return $this->_randomizer ? $this->_randomizer->getArrayValue($wordsToSearch) : $wordsToSearch[array_rand($wordsToSearch)]; 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /src/Generator.php: -------------------------------------------------------------------------------- 1 | _randomizer = $randomizer; 28 | $this->_definitionSets = array_map( 29 | [$this, '_parseSection'], 30 | $this->_getSections($this->_getFileContents()) 31 | ); 32 | } 33 | 34 | /** 35 | * Gets a randomly generated video game name. 36 | * 37 | * @api 38 | * @return string A random video game name. 39 | */ 40 | public function getName() 41 | { 42 | $similarWords = []; 43 | $words = []; 44 | 45 | foreach ($this->_definitionSets as $definitionSet) { 46 | $word = $this->_getUniqueWord($definitionSet, $similarWords); 47 | $words[] = $word['word']; 48 | $similarWords[] = $word['word']; 49 | $similarWords = array_merge($similarWords, $word['similarWords']); 50 | } 51 | 52 | return implode(' ', $words); 53 | } 54 | 55 | /** 56 | * Get a definition from the definitions that does not exist already. 57 | * 58 | * @param array $definitions The word list to pick from. 59 | * @param array $existingWords The already-chosen words to avoid. 60 | * @return array The definition of a previously unchosen word. 61 | */ 62 | protected function _getUniqueWord(array $definitions, array $existingWords) 63 | { 64 | $definition = $this->_randomizer ? $this->_randomizer->getArrayValue($definitions) : $definitions[array_rand($definitions)]; 65 | 66 | if (array_search($definition['word'], $existingWords) === false) { 67 | return $definition; 68 | } 69 | 70 | return $this->_getUniqueWord($definitions, $existingWords); 71 | } 72 | 73 | /** 74 | * Gets the file contents of the video_game_names.txt file. 75 | * 76 | * @return string The video_game_names.txt contents. 77 | */ 78 | protected function _getFileContents() 79 | { 80 | return file_get_contents(__DIR__ . '/video_game_names.txt'); 81 | } 82 | 83 | /** 84 | * Separates the contents into each of the word list sections. 85 | * 86 | * This builder operates by picking a random word from each of a consecutive 87 | * list of word lists. These separate lists are separated by a line 88 | * consisting of four hyphens in the file. 89 | * 90 | * @param string $contents The file contents. 91 | * @return array Each section split into its own string. 92 | */ 93 | protected function _getSections($contents) 94 | { 95 | return array_map('trim', explode('----', $contents)); 96 | } 97 | 98 | /** 99 | * Parses the given section into the final definitions. 100 | * 101 | * @param string $section The newline-separated list of words in a section. 102 | * @return array The parsed section into its final form. 103 | */ 104 | protected function _parseSection($section) 105 | { 106 | return array_map( 107 | [$this, '_parseDefinition'], 108 | $this->_getDefinitionsFromSection($section) 109 | ); 110 | } 111 | 112 | /** 113 | * Gets the separate definitions from the given section. 114 | * 115 | * @param string $section The newline-separated list of words in a section. 116 | * @return array Each word split out, but unparsed. 117 | */ 118 | protected function _getDefinitionsFromSection($section) 119 | { 120 | return array_map('trim', explode("\n", $section)); 121 | } 122 | 123 | /** 124 | * Parses a single definition into its component pieces. 125 | * 126 | * The format of a definition in a file is word[^similarWord|...]. 127 | * 128 | * @param string $definition The definition. 129 | * @return array The formatted definition. 130 | */ 131 | protected function _parseDefinition($definition) 132 | { 133 | $word = strtok($definition, '^'); 134 | $similarWords = array_filter(explode('|', strtok('^'))); 135 | 136 | return ['word' => $word, 'similarWords' => $similarWords]; 137 | } 138 | } 139 | -------------------------------------------------------------------------------- /src/adjectives.txt: -------------------------------------------------------------------------------- 1 | adorable 2 | adventurous 3 | aggressive 4 | agreeable 5 | alert 6 | alive 7 | amused 8 | angry 9 | annoyed 10 | annoying 11 | anxious 12 | arrogant 13 | ashamed 14 | attractive 15 | average 16 | awful 17 | bad 18 | beautiful 19 | better 20 | bewildered 21 | black 22 | bloody 23 | blue 24 | blue-eyed 25 | blushing 26 | bored 27 | brainy 28 | brave 29 | breakable 30 | bright 31 | busy 32 | calm 33 | careful 34 | cautious 35 | charming 36 | cheerful 37 | clean 38 | clear 39 | clever 40 | cloudy 41 | clumsy 42 | colorful 43 | combative 44 | comfortable 45 | concerned 46 | condemned 47 | confused 48 | cooperative 49 | courageous 50 | crazy 51 | creepy 52 | crowded 53 | cruel 54 | curious 55 | cute 56 | dangerous 57 | dark 58 | dead 59 | defeated 60 | defiant 61 | delightful 62 | depressed 63 | determined 64 | different 65 | difficult 66 | disgusted 67 | distinct 68 | disturbed 69 | dizzy 70 | doubtful 71 | drab 72 | dull 73 | eager 74 | easy 75 | elated 76 | elegant 77 | embarrassed 78 | enchanting 79 | encouraging 80 | energetic 81 | enthusiastic 82 | envious 83 | evil 84 | excited 85 | expensive 86 | exuberant 87 | fair 88 | faithful 89 | famous 90 | fancy 91 | fantastic 92 | fierce 93 | filthy 94 | fine 95 | foolish 96 | fragile 97 | frail 98 | frantic 99 | friendly 100 | frightened 101 | funny 102 | gentle 103 | gifted 104 | glamorous 105 | gleaming 106 | glorious 107 | good 108 | gorgeous 109 | graceful 110 | grieving 111 | grotesque 112 | grumpy 113 | handsome 114 | happy 115 | healthy 116 | helpful 117 | helpless 118 | hilarious 119 | homeless 120 | homely 121 | horrible 122 | hungry 123 | hurt 124 | ill 125 | important 126 | impossible 127 | inexpensive 128 | innocent 129 | inquisitive 130 | itchy 131 | jealous 132 | jittery 133 | jolly 134 | joyous 135 | kind 136 | lazy 137 | light 138 | lively 139 | lonely 140 | long 141 | lovely 142 | lucky 143 | magnificent 144 | misty 145 | modern 146 | motionless 147 | muddy 148 | mushy 149 | mysterious 150 | nasty 151 | naughty 152 | nervous 153 | nice 154 | nutty 155 | obedient 156 | obnoxious 157 | odd 158 | old-fashioned 159 | open 160 | outrageous 161 | outstanding 162 | panicky 163 | perfect 164 | plain 165 | pleasant 166 | poised 167 | poor 168 | powerful 169 | precious 170 | prickly 171 | proud 172 | puzzled 173 | quaint 174 | real 175 | relieved 176 | repulsive 177 | rich 178 | scary 179 | selfish 180 | shiny 181 | shy 182 | silly 183 | sleepy 184 | smiling 185 | smoggy 186 | sore 187 | sparkling 188 | splendid 189 | spotless 190 | stormy 191 | strange 192 | stupid 193 | successful 194 | super 195 | talented 196 | tame 197 | tender 198 | tense 199 | terrible 200 | testy 201 | thankful 202 | thoughtful 203 | thoughtless 204 | tired 205 | tough 206 | troubled 207 | ugliest 208 | ugly 209 | uninterested 210 | unsightly 211 | unusual 212 | upset 213 | uptight 214 | vast 215 | victorious 216 | vivacious 217 | wandering 218 | weary 219 | wicked 220 | wide-eyed 221 | wild 222 | witty 223 | worrisome 224 | worried 225 | wrong 226 | xenophobic 227 | xanthous 228 | xerothermic 229 | yawning 230 | yellowed 231 | yucky 232 | zany 233 | zealous 234 | -------------------------------------------------------------------------------- /src/nouns.txt: -------------------------------------------------------------------------------- 1 | aardvark 2 | addax 3 | albatross 4 | alligator 5 | alpaca 6 | anaconda 7 | angelfish 8 | anteater 9 | antelope 10 | ant 11 | ape 12 | armadillo 13 | baboon 14 | badger 15 | barracuda 16 | bat 17 | batfish 18 | bear 19 | beaver 20 | bee 21 | beetle 22 | bird 23 | bison 24 | boar 25 | booby 26 | buffalo 27 | bug 28 | butterfly 29 | buzzard 30 | caiman 31 | camel 32 | capuchin 33 | capybara 34 | caracal 35 | cardinal 36 | caribou 37 | cassowary 38 | cat 39 | caterpillar 40 | centipede 41 | chamois 42 | cheetah 43 | chicken 44 | chimpanzee 45 | chinchilla 46 | chipmunk 47 | cicada 48 | civet 49 | cobra 50 | cockroach 51 | cod 52 | constrictor 53 | copperhead 54 | cormorant 55 | corncrake 56 | cottonmouth 57 | cowfish 58 | cow 59 | coyote 60 | crab 61 | crane 62 | crayfish 63 | crocodile 64 | crossbill 65 | curlew 66 | deer 67 | dingo 68 | dog 69 | dogfish 70 | dolphin 71 | donkey 72 | dormouse 73 | dotterel 74 | dove 75 | dragonfly 76 | duck 77 | dugong 78 | dunlin 79 | eagle 80 | earthworm 81 | echidna 82 | eel 83 | eland 84 | elephant 85 | elk 86 | emu 87 | falcon 88 | ferret 89 | finch 90 | fish 91 | flamingo 92 | flatworm 93 | fly 94 | fowl 95 | fox 96 | frog 97 | gannet 98 | gaur 99 | gazelle 100 | gecko 101 | gemsbok 102 | gentoo 103 | gerbil 104 | gerenuk 105 | gharial 106 | gibbon 107 | giraffe 108 | gnat 109 | gnu 110 | goat 111 | goldfinch 112 | goosander 113 | goose 114 | gorilla 115 | goshawk 116 | grasshopper 117 | grebe 118 | grivet 119 | grouse 120 | guanaco 121 | gull 122 | hamerkop 123 | hamster 124 | hare 125 | hawk 126 | hedgehog 127 | heron 128 | herring 129 | hippopotamus 130 | hoopoe 131 | hornet 132 | horse 133 | hummingbird 134 | hyena 135 | ibex 136 | ibis 137 | iguana 138 | impala 139 | jackal 140 | jaguar 141 | jay 142 | jellyfish 143 | kangaroo 144 | katipo 145 | kea 146 | kestrel 147 | kingfisher 148 | kinkajou 149 | kitten 150 | koala 151 | kookaburra 152 | kouprey 153 | kudu 154 | ladybird 155 | lapwing 156 | lark 157 | lemur 158 | leopard 159 | lion 160 | lizard 161 | llama 162 | lobster 163 | locust 164 | loris 165 | louse 166 | lynx 167 | lyrebird 168 | macaque 169 | macaw 170 | magpie 171 | mallard 172 | mamba 173 | manatee 174 | mandrill 175 | mantis 176 | manx 177 | markhor 178 | marten 179 | meerkat 180 | millipede 181 | mink 182 | mockingbird 183 | mole 184 | mongoose 185 | monkey 186 | moose 187 | mosquito 188 | moth 189 | mouse 190 | narwhal 191 | newt 192 | nightingale 193 | ocelot 194 | octopus 195 | okapi 196 | opossum 197 | orangutan 198 | oryx 199 | osprey 200 | ostrich 201 | otter 202 | owl 203 | ox 204 | oyster 205 | oystercatcher 206 | panda 207 | panther 208 | parrot 209 | partridge 210 | peacock 211 | peafowl 212 | peccary 213 | pelican 214 | penguin 215 | petrel 216 | pheasant 217 | pig 218 | pigeon 219 | pintail 220 | piranha 221 | platypus 222 | plover 223 | polecat 224 | pollan 225 | pony 226 | porcupine 227 | porpoise 228 | puffin 229 | puma 230 | pygmy 231 | quagga 232 | quail 233 | quelea 234 | quetzal 235 | quoll 236 | rabbit 237 | raccoon 238 | rat 239 | ratel 240 | rattlesnake 241 | raven 242 | ray 243 | reindeer 244 | rhinoceros 245 | rook 246 | sable 247 | salamander 248 | salmon 249 | sandpiper 250 | sardine 251 | scarab 252 | seahorse 253 | seal 254 | serval 255 | shark 256 | sheep 257 | shrew 258 | shrike 259 | skimmer 260 | skipper 261 | skunk 262 | skylark 263 | sloth 264 | snail 265 | snake 266 | spider 267 | squirrel 268 | stag 269 | starling 270 | stoat 271 | stork 272 | swan 273 | swiftlet 274 | tamarin 275 | tapir 276 | tarantula 277 | tarsier 278 | teira 279 | termite 280 | tern 281 | thrush 282 | tiger 283 | toad 284 | tortoise 285 | toucan 286 | trout 287 | tuatara 288 | turkey 289 | turtle 290 | unicorn 291 | vendace 292 | vicuña 293 | vole 294 | vulture 295 | wallaby 296 | walrus 297 | warbler 298 | wasp 299 | weasel 300 | weevil 301 | whale 302 | wildebeest 303 | willet 304 | wolf 305 | wolverine 306 | wombat 307 | worm 308 | wren 309 | wryneck 310 | xenomorph 311 | yacare 312 | yak 313 | zebra 314 | -------------------------------------------------------------------------------- /src/video_game_names.txt: -------------------------------------------------------------------------------- 1 | 3D 2 | 8-Bit 3 | A Boy and His 4 | Action 5 | Advanced^Advance 6 | Adventures of the^Adventure 7 | Aero 8 | African^in Africa 9 | Alcoholic 10 | Alien 11 | Allied 12 | All-American 13 | All-Night 14 | All-Star^Star|Starring Mickey Mouse|Stars|Superstar 15 | Almighty 16 | Amateur 17 | Amazing 18 | Amazon 19 | American 20 | Amish 21 | Amphibious 22 | Ancient 23 | Android^Cyborg 24 | Angry 25 | Apathetic 26 | Aquatic 27 | Arcane 28 | Armored 29 | Art of 30 | Asian 31 | Astral 32 | Attack of the^Attack 33 | Atomic^Nuclear 34 | Australian 35 | Awesome 36 | Barbie's 37 | Battle^Battleship|Battalion 38 | Battlefield:^Battle|Battleship|Battalion 39 | Beautiful^Beautician 40 | Bewildering 41 | Biblical 42 | Big^Big Game Hunter 43 | Big Bird's^Big Game Hunter 44 | Big-Time^Big Game Hunter 45 | Bionic 46 | Bizarre 47 | Bizarro 48 | Black 49 | Blasphemous 50 | Blazing 51 | Bling Bling 52 | Blissful 53 | Blocky 54 | Bloody^Blood|Bloodbath|of the Blood God 55 | Bonk's 56 | Boring 57 | Bouncin' 58 | Brain-Damaged 59 | British 60 | Britney Spears' 61 | BudgetSoft Presents: 62 | Caesar's 63 | Canadian 64 | Cantankerous 65 | Caribbean 66 | Catholic 67 | Celebrity 68 | Celtic 69 | Charlie Brown's 70 | Children of the 71 | Chillin' 72 | Chinese 73 | Chocolate 74 | Christian 75 | Claustrophobic 76 | College 77 | Colonial 78 | Combat 79 | Communist 80 | Confusing 81 | Cool 82 | Corporate 83 | Cosmic 84 | Crazy 85 | Create Your Own^Creator 86 | Creepy 87 | Cthulhu's 88 | Curse of the 89 | Custom 90 | Cyber 91 | Cybernetic 92 | Cyborg^Android 93 | Dance Dance^Breakdancing|Dance|Dance Mix|Dance Party|Dancers|Square Dancing 94 | Dangerous 95 | Darkest 96 | Day of the 97 | Dead or Alive^Death|Deathmatch|of Death|of the Dead 98 | Deadly^Death|Deathmatch|of Death|of the Dead 99 | Death-Defying^Death|Deathmatch|of Death|of the Dead 100 | Deep Space^of the Deep 101 | Def Jam 102 | Demonic 103 | Depressing 104 | Deranged 105 | Derek Smart's 106 | Dirty 107 | Disney's 108 | Distinguished 109 | Disturbing 110 | Divine 111 | Donkey Kong's 112 | Double 113 | Downtown 114 | Dr. 115 | Dracula's 116 | Drug-Induced 117 | Drunken 118 | Duke Nukem: 119 | Dwarven^Dwarf|Gnome|Midget 120 | Dynamite 121 | Ebony 122 | Eco-Friendly 123 | Educational 124 | Elderly 125 | Electric 126 | Elegant 127 | Elite 128 | Elmo's 129 | Emo 130 | Endless 131 | Enormous 132 | Enraged 133 | Epic 134 | Erotic 135 | Escape from the 136 | Eternal 137 | European 138 | Everybody Hates the 139 | Everybody Loves the 140 | Exciting 141 | Excruciating 142 | Explosive^Explosion 143 | Exquisite 144 | Extreme^X-Treme 145 | Fabulous 146 | Fancy 147 | Fantastic 148 | Fantasy 149 | Fatal 150 | Feverish 151 | Fiery 152 | Final 153 | Final Fantasy^Fantasy 154 | First-Person 155 | Fisher Price 156 | Flamboyant 157 | Fluffy 158 | Flying 159 | Forbidden 160 | Forgotten 161 | Frankenstein's 162 | French 163 | Frisky 164 | Fruity 165 | Full Metal 166 | Funky^Funk 167 | Furry 168 | Future 169 | Galactic 170 | Generic 171 | Geriatric 172 | German 173 | Ghetto 174 | Giant 175 | Glowing 176 | Go Go 177 | God of 178 | Golden 179 | Gothic^Goth 180 | Grand 181 | Great 182 | Grimy 183 | Guitar 184 | Happy 185 | Hardcore 186 | Haunted 187 | Hazardous 188 | Heavy 189 | Heavy Metal^Metal 190 | Heinous 191 | Helicopter 192 | Heroic^Hero|Heroes 193 | Hidden 194 | Hideous 195 | High-Speed^Speed 196 | Hillbilly 197 | Hindu 198 | Hip-Hop^Hippo 199 | History of the 200 | Hitler's^Nazi 201 | Ho-Hum 202 | Holy 203 | Horrifying 204 | Hyper 205 | Imperial 206 | Impossible 207 | In Search of 208 | In Search of the 209 | In the Lost Kingdom of 210 | In Your Face 211 | Inappropriate 212 | Inbred 213 | Incomprehensible 214 | Incredible 215 | Indian 216 | Indiana Jones and the 217 | Inept 218 | Infinite 219 | Ingenious 220 | Insane 221 | Intellectual 222 | Intelligent 223 | Intense 224 | Interactive 225 | International 226 | Internet 227 | Interstellar 228 | Invisible 229 | Irish 230 | Iron 231 | Irresistible 232 | Irritating 233 | Islamic 234 | Italian 235 | It's a Mad, Mad^Madness 236 | Jackie Chan's 237 | Jamaican 238 | Japanese 239 | Jedi 240 | Jewish 241 | Johnny Turbo's 242 | John Romero's 243 | Kabuki 244 | Kamikaze 245 | Kermit's 246 | Killer 247 | Kinect 248 | King of^King|Kingdom 249 | Kinky 250 | Kirby's 251 | Kosher 252 | Kung-fu 253 | Jack Thompson's 254 | Lair of the 255 | Latino 256 | Lazy 257 | Legacy of 258 | Legend of^Legend|Legends 259 | Legend of the^Legend|Legends 260 | Legendary^Legend|Legends 261 | Leisure Suit 262 | Lethal 263 | Little 264 | Looney Tunes 265 | Lord of the^Lord 266 | Lost 267 | Lovely^Love|of Love|Romance 268 | Low G 269 | Lucky 270 | Luigi's 271 | M.C. Escher's 272 | Madden 273 | Magic^of Magic|of Might and Magic 274 | Magical^Magic|of Magic|of Might and Magic 275 | Magnetic 276 | Major 277 | Manic^Mania|Maniac 278 | Maniac^Mania 279 | Mario's 280 | Mary Kate and Ashley's 281 | Master Chief's^Master 282 | Masters of^Master 283 | Masters of the^Master 284 | Maximum 285 | Mechanized 286 | Medieval 287 | Mega 288 | Mega Man's 289 | Merciless 290 | Metal 291 | Mexican 292 | Michael Jackson's 293 | Mickey's 294 | Micro 295 | Middle-Eastern^in the Middle East 296 | Mighty 297 | Mind-Bending 298 | Miniature^Dwarf|Gnome|Midget 299 | Miracle 300 | Monster^Monster Truck 301 | Monty Python's 302 | Morbid 303 | Morbidly Obese 304 | Mr. 305 | MTV's 306 | Muppet 307 | Musical^DJ|Music 308 | My First 309 | My Little 310 | My Very Own 311 | Mysterious^of Mystery 312 | Mystery^of Mystery 313 | Mystic^of Mystery 314 | Mystical^of Mystery 315 | Mythical 316 | Narcoleptic 317 | Nasty 318 | National Lampoon's 319 | Naughty 320 | NBA 321 | NCAA 322 | Nerf 323 | Neo 324 | Neon 325 | Neurotic 326 | New 327 | Night of the^Knights|Night|Nightmare 328 | Nighttime^Knights|Night|Nightmare 329 | Nihilistic 330 | Ninja 331 | No One Can Stop the 332 | Nostalgic 333 | Nuclear^Atomic 334 | Nudist 335 | Obsessive-Compulsive 336 | Occult 337 | Olympic 338 | Omega 339 | Orbital 340 | Pagan 341 | Panzer 342 | Papal 343 | Paranoid 344 | Pathetic 345 | Peaceful 346 | Perfect 347 | Perverted 348 | Phoenix Wright: 349 | Pixellated 350 | Planet of the^Planet 351 | Political 352 | Post-Apocalyptic 353 | Prehistoric 354 | Preschool 355 | Presidential 356 | Primal 357 | Pro 358 | Profane 359 | Professional^Pro 360 | Psychedelic 361 | Psycho 362 | Queen of the^Princess 363 | Quiet 364 | Rad 365 | Radical 366 | Radioactive 367 | Raging^Rage 368 | Real 369 | Red Hot 370 | Regal 371 | Relentless 372 | Religious 373 | Remote 374 | Renegade 375 | Retarded 376 | Retro 377 | Return of^Returns|Strikes Again|Strikes Back 378 | Return of the^Returns|Strikes Again|Strikes Back 379 | Revenge of^Revenge|- The Revenge 380 | Revenge of the^Revenge|- The Revenge 381 | Rise of the 382 | Robot 383 | Robotic^Robot 384 | Rock 'n' Roll 385 | Rocket-Powered 386 | Rockin' 387 | Rogue 388 | Romantic 389 | Royal 390 | Rural 391 | Rushing^Rush 392 | Russian 393 | Samba de 394 | Samurai 395 | Satan's 396 | Savage 397 | Save Yourself from the 398 | Scandinavian 399 | Scooby Doo and the 400 | Scottish 401 | Screaming 402 | Search for the 403 | Secret of the 404 | Sensual^Sex 405 | Sexy^Sex 406 | Shadow of the^Shadow 407 | Shady 408 | Shameful 409 | Shrunken^Midget 410 | Sid Meier's 411 | Silent 412 | Silly 413 | Sim^Simulator 414 | Sinister 415 | Sleazy 416 | Sleepy 417 | Small-Time 418 | Sonic's 419 | Soviet 420 | Space 421 | Special^Special Edition 422 | Spectacular 423 | Spectral^Ghost 424 | Spirit of the 425 | Spooky 426 | Spunky 427 | Star^All-Stars|Starring Mickey Mouse|Stars|Superstar 428 | Star Trek^All-Stars|Star|Starring Mickey Mouse|Stars|Superstar 429 | Star Wars^All-Stars|Star|Starring Mickey Mouse|Stars|Superstar 430 | Stealth 431 | Stoic 432 | Strategic 433 | Street 434 | Stupendous 435 | Stylish 436 | Subatomic 437 | Subterranean^Underground|Underworld 438 | Summer 439 | Super 440 | Super Sexy^Sex|Superstar 441 | Supreme 442 | Surprise 443 | Tactical^Tactics 444 | Tasteless 445 | Team 446 | Teenage 447 | Telekinetic 448 | Terrible 449 | The 450 | The Care Bears' 451 | The Castle of 452 | The Castle of the 453 | The Glory of 454 | The Great 455 | The Harlem Globetrotters: 456 | The Hunt For the 457 | The Incredible 458 | The Infernal 459 | The Last 460 | The Muppets^Muppets 461 | The Quest for the^Quest 462 | The Secret Weapon of the 463 | The Simpsons' 464 | The Sims: 465 | The Six Million Dollar 466 | Third-World 467 | Throbbing 468 | Tiger Woods' 469 | Tiny^Midget 470 | Tom Clancy's 471 | Tony Hawk's 472 | Topsy-Turvy 473 | Toxic 474 | Transvestite 475 | Trendy 476 | Tribal 477 | Tropical 478 | True Crime: 479 | Turbo 480 | Twin 481 | Twisted 482 | Ultimate 483 | Ultra 484 | Ultraviolent^Ultra 485 | Unbelievable 486 | Undead 487 | Undercover^Under Fire|Underwear|Underground|Underworld 488 | Underground^Under Fire|Underwear|Underground|Underworld 489 | Underwater^Under Fire|Underwear|Underground|Underworld 490 | Unforgettable 491 | Unholy 492 | Unpleasant 493 | Unreal 494 | Unremarkable 495 | Unstoppable 496 | Urban 497 | Vampire 498 | Vegetarian 499 | Viking 500 | Violent 501 | Virtua 502 | Virtual 503 | Wacky 504 | Wandering 505 | War of the^Warfare|Warrior|Wars|- Total War 506 | We Love 507 | Weary 508 | Wild^Gone Wild 509 | Wonderous 510 | Wooden 511 | World^World Cup|World Tour 512 | World of^World|World Cup|World Tour 513 | Wrath of the 514 | WWII^Warfare|Warrior|Wars|World|World Cup|World Tour|- Total War 515 | Ye Olde 516 | Yoshi's 517 | Zany 518 | Zombie^Zombies 519 | ---- 520 | 3D 521 | Acid 522 | Aerobics 523 | Afro 524 | Alien 525 | Alligator 526 | Amish 527 | Android 528 | Animal 529 | Arcade 530 | Architecture 531 | Army 532 | Assault 533 | Axe 534 | Badminton^Baseball|Basketball|Boxing|Football|Paintbrawl|Pinball|Polo 535 | Baking 536 | Ballet 537 | Balloon 538 | Banana 539 | Bandicoot 540 | Banjo 541 | Barbarian 542 | Barcode 543 | Baseball^Base|Baseball|Basketball|Boxing|Football|Paintbrawl|Pinball|Polo 544 | Basketball^Baseball|Basketball|Boxing|Football|Paintbrawl|Pinball|Polo 545 | Bass 546 | Batman 547 | Battle^Battalion 548 | Battleship^Battle|Battalion 549 | Bazooka 550 | Beach 551 | Beast 552 | Beat 553 | Beautician 554 | Bedtime 555 | Bible 556 | Big Game Hunter^Hunt|Hunter 557 | Bimbo 558 | Bingo 559 | Biplane 560 | Blade 561 | Blimp 562 | Blood^Bloodbath|of the Blood God 563 | BMX 564 | Bobsled 565 | Bomb 566 | Bomberman 567 | Bong 568 | Bongo 569 | Booty 570 | Bow Hunter^Hunt|Hunter 571 | Bowling^Baseball|Basketball|Boxing|Football|Paintbrawl|Pinball|Polo 572 | Boxing^Baseball|Basketball|Boxing|Football|Paintbrawl|Pinball|Polo 573 | Breakdancing^Dance Mix|Dance Party|Dancers 574 | Bubble 575 | Bubblegum 576 | Buddhist 577 | Bungie 578 | Burger 579 | Business 580 | Cannibal 581 | Car 582 | Cardboard 583 | Carnival 584 | Casino 585 | Castlevania 586 | Catapult 587 | Caveman^Man 588 | Chainsaw 589 | Chase 590 | Cheese 591 | Chef 592 | Chess 593 | Chicken 594 | Chipmunk 595 | Chocobo 596 | Circus 597 | City 598 | College 599 | Combat 600 | Computer 601 | Conga 602 | Cookie 603 | Cooking 604 | Cowboy 605 | Cricket^Baseball|Basketball|Boxing|Football|Paintbrawl|Pinball|Polo 606 | Croquet^Baseball|Basketball|Boxing|Football|Paintbrawl|Pinball|Polo 607 | Crowbar 608 | Crystal 609 | Cyborg 610 | Dance^Dance Mix|Dance Party|Dancers 611 | Dating 612 | Death^Deathmatch|of Death|of the Dead 613 | Deer Hunter 614 | Demon 615 | Dentist 616 | Desert^in the Desert 617 | Devil 618 | Dinosaur 619 | Disco 620 | Dodgeball^Baseball|Basketball|Boxing|Football|Paintbrawl|Pinball|Polo 621 | Dog 622 | Donkey 623 | Dragon 624 | Driving 625 | Drug-Dealing 626 | Duck 627 | Dungeon 628 | Dwarf 629 | Elevator 630 | Equestrian 631 | Fashion 632 | Fantasy 633 | Farm^Farmer 634 | Fencing 635 | Fighter^Fight|Fight Club 636 | Fire 637 | Fishing^Baseball|Basketball|Boxing|Football|Paintbrawl|Pinball|Polo 638 | Flatulence 639 | Florist 640 | Football^Baseball|Basketball|Boxing|Football|Paintbrawl|Pinball|Polo 641 | Forklift 642 | Frisbee 643 | Frog 644 | Fun 645 | Fun Noodle 646 | Funk 647 | Furry 648 | Ghost 649 | Gimp 650 | Gnome 651 | Go-Kart 652 | Goblin 653 | Godzilla 654 | Golf 655 | Gopher 656 | Goth 657 | Graveyard 658 | Grizzly Bear 659 | Guitar 660 | Gun 661 | Hair Salon 662 | Hammer 663 | Hamster 664 | Handgun 665 | Hang Glider 666 | Hardware 667 | Harpoon 668 | Harvest 669 | Helicopter 670 | Hillbilly 671 | Hippo 672 | Hitman^Man 673 | Hobo 674 | Hockey 675 | Hoedown^Beatdown|Showdown|Smackdown|Takedown 676 | Hovercraft 677 | Horse Racing^Baseball|Basketball|Boxing|Football|Paintbrawl|Pinball|Polo 678 | Ice 679 | Ice Cream 680 | Indian 681 | Insect 682 | Internet 683 | Jackhammer 684 | Janitor 685 | Jazz 686 | Jetpack 687 | Jetski 688 | Juggalo 689 | Jungle 690 | Kabuki 691 | Kangaroo 692 | Karaoke 693 | Karate 694 | Kart 695 | Katana 696 | Kitchen 697 | Kung-fu 698 | Lacrosse^Baseball|Basketball|Boxing|Football|Paintbrawl|Pinball|Polo 699 | Landmine 700 | Laser 701 | Lawnmower 702 | Lego 703 | Leisure Suit 704 | Lightning 705 | Limbo 706 | Lizard 707 | Llama 708 | Love^of Love|Romance 709 | Lowrider 710 | Mafia 711 | Magic^of Magic|of Might and Magic 712 | Mahjong 713 | Makeout 714 | Makeover 715 | Mall 716 | Manlove 717 | Matador 718 | Math 719 | Maze 720 | Mech 721 | Metal 722 | Midget 723 | Military 724 | Mind Control 725 | Monkey 726 | Monster 727 | Monster Truck 728 | Moon 729 | Moped 730 | Motorcycle 731 | Motocross 732 | Mountain Climber 733 | Mummy 734 | Mushroom 735 | Music^DJ 736 | Mutant 737 | NASCAR 738 | Nazi 739 | Night^Knights|Nightmare 740 | Ninja 741 | Nuclear 742 | Nudist 743 | Octopus 744 | Office 745 | Ostrich 746 | Outlaw 747 | Pachinko 748 | Paintball^Baseball|Basketball|Boxing|Football|Paintbrawl|Pinball|Polo 749 | Penguin 750 | Piano 751 | Pinball^Baseball|Basketball|Boxing|Football|Paintbrawl|Pinball|Polo 752 | Ping Pong^Baseball|Basketball|Boxing|Football|Paintbrawl|Pinball|Polo 753 | Pirate 754 | Platypus 755 | Plumber 756 | Plunger 757 | Pogo 758 | Pokemon 759 | Police 760 | Polka 761 | Pony 762 | Porn 763 | Princess 764 | Prison 765 | Programming 766 | Punching 767 | Puppy 768 | Puzzle 769 | Quantum 770 | Quiz 771 | Rabbit 772 | Raccoon 773 | Racing^Racer 774 | Railroad 775 | Rainbow 776 | River 777 | Robot 778 | Rocket 779 | Rodeo 780 | Rollerball^Baseball|Basketball|Boxing|Football|Paintbrawl|Pinball|Polo 781 | Rugby^Baseball|Basketball|Boxing|Football|Paintbrawl|Pinball|Polo 782 | Sailboat 783 | Sailor 784 | Samurai 785 | Sandwich 786 | Scooter 787 | Scorched Earth 788 | Sewer 789 | Sex 790 | Shadow 791 | Shark 792 | Shaving 793 | Shock 794 | Shopping 795 | Shotgun 796 | Skate 797 | Skydiving 798 | Sloth 799 | Sniper 800 | Snowboard 801 | Soccer 802 | Software 803 | Spatula 804 | Speed 805 | Spelling 806 | Spelunking 807 | Spider 808 | Spork 809 | Square Dancing^Dance Mix|Dance Party|Dancers 810 | Squirrel 811 | Stapler 812 | STD 813 | Stick 814 | Stunt 815 | Submarine 816 | Sumo 817 | Sudoku 818 | Sunshine 819 | Surf 820 | Surgery 821 | Sushi 822 | Sword 823 | Tank 824 | Techno 825 | Tennis 826 | Terrorist 827 | Tetris 828 | Theme Park^Park 829 | Thief 830 | Thunder 831 | Toon 832 | Trailer Park^Park 833 | Train 834 | Trampoline 835 | Transvestite 836 | Tricycle 837 | Turtle 838 | Typing 839 | UFO 840 | Underwear^Under Fire|Underground|Underworld 841 | Unicorn 842 | Unicycle 843 | Valkyrie 844 | Vampire 845 | Vegetarian 846 | Vigilante 847 | Viking 848 | Vocabulary 849 | Volleyball^Baseball|Basketball|Boxing|Football|Paintbrawl|Pinball|Polo 850 | Wagon 851 | Walrus 852 | Wedding 853 | Weight Loss 854 | Werewolf 855 | Whale 856 | Wheelchair 857 | Wizard 858 | Workout 859 | Worm 860 | Wrestling 861 | Writing 862 | WWE 863 | WWII^Warfare|Warrior|Wars|World|World Cup|World Tour|- Total War 864 | Yak 865 | Yeti 866 | Yoga 867 | Zamboni 868 | Zombie^Zombies 869 | ---- 870 | - 2nd Impact 871 | - 3rd Strike 872 | 1942 873 | 25th Anniversary Edition 874 | 2K 875 | 2000 876 | 3000 877 | 3D 878 | 64 879 | 95 880 | Academy 881 | Advance 882 | Adventure 883 | Agent 884 | All-Stars 885 | Alpha 886 | Anarchy 887 | Annihilation 888 | Anthology 889 | Apocalypse 890 | Arena 891 | Armada 892 | Armageddon 893 | Assassins 894 | Assault 895 | at the Olympics 896 | Attack 897 | Babies 898 | Bandit 899 | Bandits 900 | Bastards 901 | Battle 902 | Battalion 903 | Base 904 | Baseball 905 | Basketball 906 | Beatdown 907 | Beta 908 | Blast 909 | Blaster 910 | Bloodbath 911 | Boxing 912 | Boy 913 | Brawl 914 | Brothers 915 | Camp 916 | Caper 917 | Carnage 918 | Castle 919 | CD 920 | Challenge 921 | Championship 922 | Chase 923 | Choreographer 924 | Chronicles 925 | City 926 | Co-Op 927 | Collection 928 | - Collector's Edition 929 | College 930 | Colosseum 931 | Combat 932 | Commander 933 | Commando 934 | Competition 935 | Conflict 936 | Connection 937 | Conquest 938 | Conspiracy 939 | Conundrum 940 | Corps 941 | Country 942 | Creator 943 | Crime Scene Investigation 944 | Crisis 945 | Crusade 946 | Crusader 947 | Dance Mix 948 | Dance Party 949 | Dancers 950 | Daredevils 951 | Dash 952 | Deathmatch 953 | Deluxe 954 | Demolition 955 | Derby 956 | Desperadoes 957 | Destruction 958 | Detective 959 | Diesel 960 | Disaster 961 | DJ 962 | Domination 963 | Dreamland 964 | DS 965 | Dudes 966 | Dungeon 967 | DX 968 | Dynasty 969 | Dystopia 970 | Empire 971 | Encounter 972 | Enforcer 973 | Epidemic 974 | Espionage 975 | EX 976 | Exhibition 977 | Experience 978 | Expert 979 | Explorer 980 | Explosion 981 | Express 982 | Extra 983 | Extravaganza 984 | Factory 985 | Family 986 | Fandango 987 | Fantasy 988 | Farmer 989 | Fest 990 | Feud 991 | Fever 992 | Fiasco 993 | Fiesta 994 | Fight 995 | Fight Club 996 | Fighter 997 | Football 998 | For Kids 999 | Force 1000 | Forever 1001 | Fortress 1002 | Freak 1003 | Frenzy 1004 | from Hell 1005 | from Mars 1006 | from Outer Space 1007 | from Planet X 1008 | Fun 1009 | Gaiden 1010 | Gang 1011 | Girl 1012 | Gold 1013 | Gone Wild 1014 | Gladiator 1015 | Groove 1016 | GT 1017 | Havoc 1018 | Hell 1019 | Hero 1020 | Heroes 1021 | Hoedown 1022 | Hop-A-Bout 1023 | Horde 1024 | Horror 1025 | Hospital 1026 | - Hot Pursuit 1027 | House 1028 | Hunt 1029 | Hunter 1030 | II 1031 | III 1032 | Ignition 1033 | in Africa 1034 | in Busytown 1035 | in Crazyland 1036 | in Middle-Earth 1037 | in My Pocket 1038 | in Space 1039 | in the Bayou 1040 | in the Dark 1041 | in the Desert 1042 | in the Hood 1043 | in the Magic Kingdom 1044 | in the Middle East 1045 | in the Outback 1046 | in the Salad Kingdom 1047 | in the Sky 1048 | in Toyland 1049 | in Vegas 1050 | Incident 1051 | Inferno 1052 | Insanity 1053 | Inspector 1054 | Insurrection 1055 | Interactive 1056 | Interceptor 1057 | Invaders 1058 | Invasion 1059 | Island 1060 | Jam 1061 | Jamboree 1062 | Jihad 1063 | Joe 1064 | Journey 1065 | Jr. 1066 | Kid 1067 | Kids 1068 | King 1069 | Kingdom 1070 | Knights 1071 | Kombat 1072 | Legend 1073 | Legends 1074 | - Limited Edition 1075 | Live 1076 | Lord 1077 | Machine 1078 | Madness 1079 | Man 1080 | Mania 1081 | Maniac 1082 | Mansion 1083 | Marines 1084 | Massacre 1085 | Master 1086 | Maxx 1087 | Mayhem 1088 | Melee 1089 | Mission 1090 | Munchers 1091 | Nation 1092 | Nightmare 1093 | Nitro 1094 | Odyssey 1095 | of Death 1096 | of Doom 1097 | of Fury 1098 | of Love 1099 | of Magic 1100 | of Might and Magic 1101 | of Mystery 1102 | of the Blood God 1103 | of the Damned 1104 | of the Dead 1105 | of the Deep 1106 | of the Third Reich 1107 | on the Oregon Trail 1108 | Offensive 1109 | Omega 1110 | on the High Seas 1111 | On The Road 1112 | on Wheels 1113 | Online 1114 | Onslaught 1115 | Operation 1116 | Operatives 1117 | Oppression 1118 | Orchestra 1119 | Over Normandy 1120 | Overdrive 1121 | Overload 1122 | Overlords 1123 | Paintbrawl 1124 | Palace 1125 | Panic 1126 | Paratroopers 1127 | Park 1128 | Party 1129 | Patrol 1130 | Phonics 1131 | Pimps 1132 | Pinball 1133 | Pioneer 1134 | Planet 1135 | Playhouse 1136 | Plus 1137 | Police 1138 | Polo 1139 | Posse 1140 | Power 1141 | Preacher 1142 | Princess 1143 | Pro 1144 | Project 1145 | Prophecy 1146 | Psychiatrist 1147 | Punch-Out!! 1148 | Punishment 1149 | Quest 1150 | Quiz 1151 | Racer 1152 | Rage 1153 | Raider 1154 | Rally 1155 | Rampage 1156 | Rangers 1157 | Ransom 1158 | Rave 1159 | Rebellion 1160 | Reloaded 1161 | Remix 1162 | Rescue 1163 | Restaurant 1164 | Returns 1165 | Revenge 1166 | Revisited 1167 | Revolution 1168 | Rider 1169 | Riders 1170 | Rocket 1171 | Romance 1172 | Romp 1173 | Roundup 1174 | Runner 1175 | Rush 1176 | Safari 1177 | Saga 1178 | Saloon 1179 | Scam 1180 | Scandal 1181 | School 1182 | Shack 1183 | Shoot 1184 | Shootout 1185 | Showdown 1186 | Siege 1187 | Simulator 1188 | Sisters 1189 | Slam 1190 | Slaughter 1191 | Slayer 1192 | Smackdown 1193 | Smash 1194 | Smuggler 1195 | Solid 1196 | Soldier 1197 | Special Edition 1198 | Spectacular 1199 | Spies 1200 | Spree 1201 | Squadron 1202 | Stadium 1203 | Starring Mickey Mouse 1204 | Stars 1205 | Story 1206 | Strike Force 1207 | Strikes Again 1208 | Strikes Back 1209 | Struggle 1210 | Studio 1211 | Summit 1212 | Summoner 1213 | Superstar 1214 | Symphony 1215 | Syndicate 1216 | Syndrome 1217 | Tactics 1218 | Takedown 1219 | Tale 1220 | Task Force 1221 | Temple 1222 | Terror 1223 | Thieves 1224 | - The Card Game 1225 | - The Dark Project 1226 | - The Gathering Storm 1227 | - The Lost Levels 1228 | - The Movie 1229 | - The Next Generation 1230 | - The Quickening 1231 | - The Resistance 1232 | - The Revenge 1233 | Through Time 1234 | Throwdown 1235 | - Total War 1236 | Tournament 1237 | Trader 1238 | Train 1239 | Trainer 1240 | Training 1241 | Tribe 1242 | Trilogy 1243 | Trivia 1244 | Troopers 1245 | Turbo 1246 | Tycoon 1247 | Ultra 1248 | Unit 1249 | Uncensored 1250 | Underground 1251 | Underworld 1252 | Universe 1253 | Unleashed 1254 | Uprising 1255 | Vengeance 1256 | Voyage 1257 | vs. Capcom 1258 | vs. Street Fighter 1259 | vs. The Space Mutants 1260 | Warfare 1261 | Warrior 1262 | Wars 1263 | Wasteland 1264 | with Friends 1265 | World 1266 | World Cup 1267 | World Tour 1268 | Wranglers 1269 | X 1270 | XP 1271 | XXX 1272 | X-treme 1273 | Yoga 1274 | Z 1275 | Zombies 1276 | Zone 1277 | -------------------------------------------------------------------------------- /tests/AllTest.php: -------------------------------------------------------------------------------- 1 | 10 | */ 11 | class AllTest extends TestCase 12 | { 13 | /** 14 | * Verify basic behavior of getName(). 15 | * 16 | * @test 17 | * @covers ::__construct 18 | * @covers ::create 19 | * @covers ::getName 20 | * @uses \Nubs\RandomNameGenerator\Alliteration 21 | * @uses \Nubs\RandomNameGenerator\Vgng 22 | * 23 | * @return void 24 | */ 25 | public function getNameBasic() 26 | { 27 | $generator = All::create(); 28 | $name = $generator->getName(); 29 | $this->assertRegexp('/.+/', $name); 30 | } 31 | 32 | /** 33 | * Verify basic behavior of getName() with a forced random generator. 34 | * 35 | * @test 36 | * @covers ::__construct 37 | * @covers ::create 38 | * @covers ::getName 39 | * @uses \Nubs\RandomNameGenerator\Alliteration 40 | * 41 | * @return void 42 | */ 43 | public function getNameForced() 44 | { 45 | $numberGenerator = $this->createMock('\Cinam\Randomizer\NumberGenerator'); 46 | $numberGenerator->expects($this->exactly(2))->method('getInt')->will($this->onConsecutiveCalls(20, 5)); 47 | $randomizer = new Randomizer($numberGenerator); 48 | 49 | $generator = new All([new Alliteration($randomizer)]); 50 | $this->assertSame('Black Bear', $generator->getName()); 51 | } 52 | 53 | /** 54 | * Verify basic behavior of __toString(). 55 | * 56 | * @test 57 | * @covers ::__construct 58 | * @covers ::create 59 | * @covers ::__toString 60 | * @covers ::getName 61 | * @uses \Nubs\RandomNameGenerator\Alliteration 62 | * @uses \Nubs\RandomNameGenerator\Vgng 63 | * 64 | * @return void 65 | */ 66 | public function toStringBasic() 67 | { 68 | $generator = All::create(); 69 | $name = (string)$generator; 70 | $this->assertRegexp('/.+/', $name); 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /tests/AlliterationTest.php: -------------------------------------------------------------------------------- 1 | 11 | */ 12 | class AlliterationTest extends TestCase 13 | { 14 | /** 15 | * Verify basic behavior of getName(). 16 | * 17 | * @test 18 | * @covers ::__construct 19 | * @covers ::getName 20 | * 21 | * @return void 22 | */ 23 | public function getNameBasic() 24 | { 25 | $generator = new Alliteration(); 26 | $parts = explode(' ', $generator->getName()); 27 | $this->assertCount(2, $parts); 28 | $this->assertSame($parts[0][0], $parts[1][0]); 29 | } 30 | 31 | /** 32 | * Verify basic behavior of getName() with a forced random generator. 33 | * 34 | * @test 35 | * @covers ::__construct 36 | * @covers ::getName 37 | * 38 | * @return void 39 | */ 40 | public function getNameForced() 41 | { 42 | $numberGenerator = $this->createMock(NumberGenerator::class); 43 | $numberGenerator->expects($this->exactly(2))->method('getInt')->will($this->onConsecutiveCalls(20, 5)); 44 | $randomizer = new Randomizer($numberGenerator); 45 | 46 | $generator = new Alliteration($randomizer); 47 | $this->assertSame('Black Bear', $generator->getName()); 48 | } 49 | 50 | /** 51 | * Verify basic behavior of __toString(). 52 | * 53 | * @test 54 | * @covers ::__construct 55 | * @covers ::__toString 56 | * @covers ::getName 57 | * 58 | * @return void 59 | */ 60 | public function toStringBasic() 61 | { 62 | $generator = new Alliteration(); 63 | $parts = explode(' ', (string)$generator); 64 | $this->assertCount(2, $parts); 65 | $this->assertSame($parts[0][0], $parts[1][0]); 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /tests/VgngTest.php: -------------------------------------------------------------------------------- 1 | 10 | */ 11 | class VgngTest extends TestCase 12 | { 13 | /** 14 | * Verify that getName returns the expected name. 15 | * 16 | * @test 17 | * @covers ::__construct 18 | * @covers ::getName 19 | */ 20 | public function getNameBasic() 21 | { 22 | $numberGenerator = $this->createMock('\Cinam\Randomizer\NumberGenerator'); 23 | $numberGenerator->expects($this->exactly(3))->method('getInt')->will($this->returnValue(1)); 24 | $randomizer = new Randomizer($numberGenerator); 25 | 26 | $vgng = new Vgng($randomizer); 27 | 28 | $this->assertSame('8-Bit Acid - 3rd Strike', $vgng->getName()); 29 | } 30 | 31 | /** 32 | * Verify that getName returns a name without similar strings. 33 | * 34 | * @test 35 | * @covers ::__construct 36 | * @covers ::getName 37 | */ 38 | public function getNameSimilarName() 39 | { 40 | $numberGenerator = $this->createMock('\Cinam\Randomizer\NumberGenerator'); 41 | $numberGenerator->expects($this->exactly(4))->method('getInt')->will($this->onConsecutiveCalls(0, 0, 2, 10)); 42 | $randomizer = new Randomizer($numberGenerator); 43 | 44 | $vgng = new Vgng($randomizer); 45 | 46 | $this->assertSame('3D Aerobics Academy', $vgng->getName()); 47 | } 48 | 49 | /** 50 | * Verify that toString returns the expected name. 51 | * 52 | * @test 53 | * @covers ::__construct 54 | * @covers ::__toString 55 | * @covers ::getName 56 | */ 57 | public function toStringBasic() 58 | { 59 | $numberGenerator = $this->createMock('\Cinam\Randomizer\NumberGenerator'); 60 | $numberGenerator->expects($this->exactly(3))->method('getInt')->will($this->returnValue(1)); 61 | $randomizer = new Randomizer($numberGenerator); 62 | 63 | $vgng = new Vgng($randomizer); 64 | 65 | $this->assertSame('8-Bit Acid - 3rd Strike', (string)$vgng); 66 | } 67 | } 68 | --------------------------------------------------------------------------------