├── .editorconfig ├── .github ├── FUNDING.yml └── stale.yml ├── .gitignore ├── .styleci.yml ├── .travis.yml ├── CHANGELOG.md ├── CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE.md ├── README.md ├── composer.json ├── composer.lock ├── config └── datadog-helper.php ├── datadog-screen.png └── src ├── Datadog.php ├── Datadog ├── BatchedDogStatsd.php ├── DogStatsd.php └── ExtensionTrait.php ├── LaravelDatadogHelperServiceProvider.php └── Middleware └── LaravelDatadogMiddleware.php /.editorconfig: -------------------------------------------------------------------------------- 1 | ; This file is for unifying the coding style for different editors and IDEs. 2 | ; More information at http://editorconfig.org 3 | 4 | root = true 5 | 6 | [*] 7 | charset = utf-8 8 | indent_size = 4 9 | indent_style = space 10 | end_of_line = lf 11 | insert_final_newline = true 12 | trim_trailing_whitespace = true 13 | 14 | [*.md] 15 | trim_trailing_whitespace = false 16 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [chaseconey] 4 | -------------------------------------------------------------------------------- /.github/stale.yml: -------------------------------------------------------------------------------- 1 | # Number of days of inactivity before an issue becomes stale 2 | daysUntilStale: 60 3 | # Number of days of inactivity before a stale issue is closed 4 | daysUntilClose: 7 5 | # Issues with these labels will never be considered stale 6 | exemptLabels: 7 | - pinned 8 | - security 9 | # Label to use when marking an issue as stale 10 | staleLabel: stale 11 | # Comment to post when marking an issue as stale. Set to `false` to disable 12 | markComment: > 13 | This issue has been automatically marked as stale because it has not had 14 | recent activity. It will be closed if no further activity occurs. Thank you 15 | for your contributions. 16 | # Comment to post when closing a stale issue. Set to `false` to disable 17 | closeComment: false 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | vendor 3 | -------------------------------------------------------------------------------- /.styleci.yml: -------------------------------------------------------------------------------- 1 | preset: psr2 2 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: php 2 | php: 3 | - '5.6' 4 | - '7.0' 5 | - '7.1' 6 | 7 | script: 8 | - echo "Working on it..." 9 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | ## [0.8.0](https://github.com/chaseconey/laravel-datadog-helper/tree/0.8.0) (2017-12-14) 4 | [Full Changelog](https://github.com/chaseconey/laravel-datadog-helper/compare/0.7.0...0.8.0) 5 | 6 | **Closed issues:** 7 | 8 | - Examples [\#4](https://github.com/chaseconey/laravel-datadog-helper/issues/4) 9 | 10 | **Merged pull requests:** 11 | 12 | - Cleanup a lot of code. Globally add prefix component. [\#7](https://github.com/chaseconey/laravel-datadog-helper/pull/7) ([chaseconey](https://github.com/chaseconey)) 13 | - Apply fixes from StyleCI [\#6](https://github.com/chaseconey/laravel-datadog-helper/pull/6) ([chaseconey](https://github.com/chaseconey)) 14 | - Apply fixes from StyleCI [\#3](https://github.com/chaseconey/laravel-datadog-helper/pull/3) ([chaseconey](https://github.com/chaseconey)) 15 | 16 | ## [0.7.0](https://github.com/chaseconey/laravel-datadog-helper/tree/0.7.0) (2017-09-15) 17 | [Full Changelog](https://github.com/chaseconey/laravel-datadog-helper/compare/0.6.0...0.7.0) 18 | 19 | **Merged pull requests:** 20 | 21 | - Allow UDP transport by configuration [\#1](https://github.com/chaseconey/laravel-datadog-helper/pull/1) ([jcalonso](https://github.com/jcalonso)) 22 | 23 | ## [0.6.0](https://github.com/chaseconey/laravel-datadog-helper/tree/0.6.0) (2017-01-13) 24 | [Full Changelog](https://github.com/chaseconey/laravel-datadog-helper/compare/0.5.0...0.6.0) 25 | 26 | ## [0.5.0](https://github.com/chaseconey/laravel-datadog-helper/tree/0.5.0) (2016-08-02) 27 | 28 | 29 | \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)* -------------------------------------------------------------------------------- /CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Code of Conduct 2 | 3 | As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities. 4 | 5 | We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, or nationality. 6 | 7 | Examples of unacceptable behavior by participants include: 8 | 9 | * The use of sexualized language or imagery 10 | * Personal attacks 11 | * Trolling or insulting/derogatory comments 12 | * Public or private harassment 13 | * Publishing other's private information, such as physical or electronic addresses, without explicit permission 14 | * Other unethical or unprofessional conduct. 15 | 16 | Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. By adopting this Code of Conduct, project maintainers commit themselves to fairly and consistently applying these principles to every aspect of managing this project. Project maintainers who do not follow or enforce the Code of Conduct may be permanently removed from the project team. 17 | 18 | This code of conduct applies both within project spaces and in public spaces when an individual is representing the project or its community in a direct capacity. Personal views, beliefs and values of individuals do not necessarily reflect those of the organisation or affiliated individuals and organisations. 19 | 20 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers. 21 | 22 | This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.2.0, available at [http://contributor-covenant.org/version/1/2/0/](http://contributor-covenant.org/version/1/2/0/) 23 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | Contributions are **welcome** and will be fully **credited**. 4 | 5 | We accept contributions via Pull Requests on [Github](https://github.com/:vendor/:package_name). 6 | 7 | 8 | ## Pull Requests 9 | 10 | - **[PSR-2 Coding Standard](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md)** - The easiest way to apply the conventions is to install [PHP Code Sniffer](http://pear.php.net/package/PHP_CodeSniffer). 11 | 12 | - **Add tests!** - Your patch won't be accepted if it doesn't have tests. 13 | 14 | - **Document any change in behaviour** - Make sure the `README.md` and any other relevant documentation are kept up-to-date. 15 | 16 | - **Consider our release cycle** - We try to follow [SemVer v2.0.0](http://semver.org/). Randomly breaking public APIs is not an option. 17 | 18 | - **Create feature branches** - Don't ask us to pull from your master branch. 19 | 20 | - **One pull request per feature** - If you want to do more than one thing, send multiple pull requests. 21 | 22 | - **Send coherent history** - Make sure each individual commit in your pull request is meaningful. If you had to make multiple intermediate commits while developing, please [squash them](http://www.git-scm.com/book/en/v2/Git-Tools-Rewriting-History#Changing-Multiple-Commit-Messages) before submitting. 23 | 24 | 25 | ## Running Tests 26 | 27 | ``` bash 28 | $ composer test 29 | ``` 30 | 31 | 32 | **Happy coding**! 33 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | # The MIT License (MIT) 2 | 3 | Copyright (c) 2016 :author_name <:author_email> 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 13 | > all 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 21 | > THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # laravel-datadog-helper 2 | 3 | [![Latest Version on Packagist][ico-version]][link-packagist] 4 | [![Software License][ico-license]](LICENSE.md) 5 | [![Build Status][ico-travis]][link-travis] 6 | [![Coverage Status][ico-scrutinizer]][link-scrutinizer] 7 | [![Quality Score][ico-code-quality]][link-code-quality] 8 | [![Total Downloads][ico-downloads]][link-downloads] 9 | [![StyleCI](https://styleci.io/repos/64763895/shield?branch=master)](https://styleci.io/repos/64763895) 10 | 11 | Laravel Datadog Helper helps you get your application metrics integrated into Laravel as fast as possible. 12 | 13 | ### Requirements 14 | 15 | * Laravel >= 5 16 | * Datadog API Key 17 | 18 | ### Features 19 | 20 | * Adds Datadog facade that wraps the official [DataDog/php-datadogstatsd](https://github.com/DataDog/php-datadogstatsd) library 21 | * Provides middleware for tracking response time metrics automatically 22 | * Allows prefixing all metrics that are sent for the whole application with common prefix 23 | 24 | ## Installation 25 | 26 | Require this package with composer. 27 | 28 | ```shell 29 | composer require chaseconey/laravel-datadog-helper 30 | ``` 31 | 32 | Laravel 5.5 uses Package Auto-Discovery, so doesn't require you to manually add the ServiceProvider. 33 | 34 | If you would like to install the request metric tracking middleware, add the Datadog middleware class like so: 35 | 36 | ``` php 37 | 38 | // app/Http/Kernel.php 39 | 40 | protected $middleware = [ 41 | ... 42 | 43 | \ChaseConey\LaravelDatadogHelper\Middleware\LaravelDatadogMiddleware::class 44 | ]; 45 | ``` 46 | 47 | ### Without Auto-Discovery (or Laravel < 5.5) 48 | 49 | If you don't use auto-discovery, or you are using an older version of Laravel, add the ServiceProvider to the providers array in `config/app.php` 50 | 51 | ``` php 52 | 53 | // config/app.php 54 | 55 | 'providers' => [ 56 | ... 57 | 58 | ChaseConey\LaravelDatadogHelper\LaravelDatadogHelperServiceProvider::class, 59 | ]; 60 | ``` 61 | 62 | If you want to use the facade, add this to your facades in `config/app.php`: 63 | 64 | ``` php 65 | 66 | // config/app.php 67 | 68 | 'aliases' => [ 69 | ... 70 | 71 | 'Datadog' => ChaseConey\LaravelDatadogHelper\Datadog::class 72 | ]; 73 | ``` 74 | 75 | For configuration options, copy the package config to your local config with the publish command: 76 | 77 | ```shell 78 | php artisan vendor:publish --provider="ChaseConey\LaravelDatadogHelper\LaravelDatadogHelperServiceProvider" 79 | ``` 80 | 81 | ## Middleware 82 | 83 | This package comes with a handy middleware that you can add to any Laravel project to get up and running in Datadog as fast as possible. 84 | 85 | - **Metric Name:** `request_time` 86 | - **Value:** The time it takes Laravel to respond to request 87 | - **Tags:**: 88 | - `status_code` 89 | - `url` (toggle via `datadog.middleware_disable_url_tag` config option) 90 | - *any custom tags you have added to `datadog.global_tags`* 91 | 92 | With just these metrics here are a couple of example graphs that you can make: 93 | 94 | ![](datadog-screen.png?raw=true) 95 | 96 |
Datadog Graph Config JSON 97 |

98 | 99 | #### Max Request Time by URL 100 | 101 | ```json 102 | { 103 | "viz": "heatmap", 104 | "requests": [ 105 | { 106 | "q": "max:app.example.request_time.max{*} by {url}", 107 | "type": null, 108 | "style": { 109 | "palette": "dog_classic", 110 | "type": "solid", 111 | "width": "normal" 112 | }, 113 | "aggregator": "avg", 114 | "conditional_formats": [] 115 | } 116 | ], 117 | "autoscale": true 118 | } 119 | ``` 120 | 121 | 122 | #### Top Pages Hit 123 | 124 | ```json 125 | { 126 | "viz": "toplist", 127 | "requests": [ 128 | { 129 | "q": "top(sum:app.example.request_time.count{*} by {url}.as_count(), 10, 'sum', 'desc')", 130 | "type": null, 131 | "style": { 132 | "palette": "warm", 133 | "type": "solid", 134 | "width": "normal" 135 | }, 136 | "conditional_formats": [] 137 | } 138 | ] 139 | } 140 | ``` 141 | 142 | #### Slowest Endpoints/Pages 143 | 144 | ```json 145 | { 146 | "viz": "toplist", 147 | "requests": [ 148 | { 149 | "q": "top(max:app.example.request_time.max{*} by {url}, 10, 'max', 'desc')", 150 | "type": null, 151 | "style": { 152 | "palette": "dog_classic", 153 | "type": "solid", 154 | "width": "normal" 155 | }, 156 | "conditional_formats": [ 157 | { 158 | "palette": "white_on_red", 159 | "value": 5, 160 | "comparator": ">" 161 | }, 162 | { 163 | "palette": "white_on_green", 164 | "value": 5, 165 | "comparator": "<=" 166 | } 167 | ] 168 | } 169 | ] 170 | } 171 | ``` 172 | 173 |

174 |
175 | 176 | 177 | ## Examples 178 | 179 | This library wraps the official [DataDog/php-datadogstatsd](https://github.com/DataDog/php-datadogstatsd) library. All functions are inherited from the core implementation provided by this library with the exception of replacing `Datadogstatsd` with `Datadog` (the facade). 180 | 181 | For example: 182 | 183 | Instead of doing `Datadogstatsd::increment('my.sweet.metrics')`, you would use `Datadog::increment('my.sweet.metrics')`. 184 | 185 | For a full set of usage examples, [check out the library's usage README](https://github.com/DataDog/php-datadogstatsd#usage). 186 | 187 | ## Change log 188 | 189 | Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently. 190 | 191 | ## Contributing 192 | 193 | Please see [CONTRIBUTING](CONTRIBUTING.md) and [CONDUCT](CONDUCT.md) for details. 194 | 195 | ## Credits 196 | 197 | - [Chase Coney][link-author] 198 | - [All Contributors][link-contributors] 199 | 200 | ## License 201 | 202 | The MIT License (MIT). Please see [License File](LICENSE.md) for more information. 203 | 204 | [ico-version]: https://img.shields.io/packagist/v/chaseconey/laravel-datadog-helper.svg?style=flat-square 205 | [ico-license]: https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square 206 | [ico-travis]: https://img.shields.io/travis/chaseconey/laravel-datadog-helper/master.svg?style=flat-square 207 | [ico-scrutinizer]: https://img.shields.io/scrutinizer/coverage/g/chaseconey/laravel-datadog-helper.svg?style=flat-square 208 | [ico-code-quality]: https://img.shields.io/scrutinizer/g/chaseconey/laravel-datadog-helper.svg?style=flat-square 209 | [ico-downloads]: https://img.shields.io/packagist/dt/chaseconey/laravel-datadog-helper.svg?style=flat-square 210 | 211 | [link-packagist]: https://packagist.org/packages/chaseconey/laravel-datadog-helper 212 | [link-travis]: https://travis-ci.org/chaseconey/laravel-datadog-helper 213 | [link-scrutinizer]: https://scrutinizer-ci.com/g/chaseconey/laravel-datadog-helper/code-structure 214 | [link-code-quality]: https://scrutinizer-ci.com/g/chaseconey/laravel-datadog-helper 215 | [link-downloads]: https://packagist.org/packages/chaseconey/laravel-datadog-helper 216 | [link-author]: https://github.com/chaseconey 217 | [link-contributors]: ../../contributors 218 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "chaseconey/laravel-datadog-helper", 3 | "type": "library", 4 | "description": "A Laravel Datadog helper package.", 5 | "keywords": [ 6 | "chaseconey", 7 | "laravel-datadog-helper" 8 | ], 9 | "homepage": "https://github.com/chaseconey/laravel-datadog-helper", 10 | "license": "MIT", 11 | "authors": [ 12 | { 13 | "name": "Chase Coney", 14 | "email": "chasiepoo@gmail.com", 15 | "homepage": "http://chaseconey.com", 16 | "role": "Developer" 17 | } 18 | ], 19 | "require": { 20 | "php": ">=5.4.0", 21 | "datadog/php-datadogstatsd": "^1.4.0", 22 | "illuminate/support": ">=5.1" 23 | }, 24 | "require-dev": { 25 | "phpunit/phpunit": "~4.0||~5.0", 26 | "scrutinizer/ocular": "~1.1", 27 | "squizlabs/php_codesniffer": "~2.3" 28 | }, 29 | "autoload": { 30 | "psr-4": { 31 | "ChaseConey\\LaravelDatadogHelper\\": "src" 32 | } 33 | }, 34 | "autoload-dev": { 35 | "psr-4": { 36 | "ChaseConey\\LaravelDatadogHelper\\": "tests" 37 | } 38 | }, 39 | "scripts": { 40 | "test": "phpunit", 41 | "format": "phpcbf --standard=psr2 src/" 42 | }, 43 | "config": { 44 | "sort-packages": true 45 | }, 46 | "extra": { 47 | "laravel": { 48 | "providers": [ 49 | "ChaseConey\\LaravelDatadogHelper\\LaravelDatadogHelperServiceProvider" 50 | ], 51 | "aliases": { 52 | "Datadog": "ChaseConey\\LaravelDatadogHelper\\Datadog" 53 | } 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /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": "b4e6df29cdf6a6466e70ee019cf6f076", 8 | "packages": [ 9 | { 10 | "name": "datadog/php-datadogstatsd", 11 | "version": "1.4.1", 12 | "source": { 13 | "type": "git", 14 | "url": "https://github.com/DataDog/php-datadogstatsd.git", 15 | "reference": "148ba02f8d2310778750b0c7f7a60458f3ccb215" 16 | }, 17 | "dist": { 18 | "type": "zip", 19 | "url": "https://api.github.com/repos/DataDog/php-datadogstatsd/zipball/148ba02f8d2310778750b0c7f7a60458f3ccb215", 20 | "reference": "148ba02f8d2310778750b0c7f7a60458f3ccb215", 21 | "shasum": "" 22 | }, 23 | "require": { 24 | "ext-curl": "*", 25 | "lib-curl": "*", 26 | "php": ">=5.3.0" 27 | }, 28 | "require-dev": { 29 | "phpunit/phpunit": "4.8.36" 30 | }, 31 | "type": "library", 32 | "autoload": { 33 | "psr-4": { 34 | "DataDog\\": "src/" 35 | } 36 | }, 37 | "notification-url": "https://packagist.org/downloads/", 38 | "license": [ 39 | "MIT" 40 | ], 41 | "authors": [ 42 | { 43 | "name": "Alex Corley", 44 | "email": "anthroprose@gmail.com", 45 | "role": "Developer" 46 | }, 47 | { 48 | "name": "Datadog", 49 | "email": "dev@datadoghq.com", 50 | "role": "Developer" 51 | } 52 | ], 53 | "description": "This is an extremely simple PHP datadogstatsd client", 54 | "homepage": "https://www.datadoghq.com/", 55 | "keywords": [ 56 | "DataDog", 57 | "php" 58 | ], 59 | "time": "2019-08-13T19:23:10+00:00" 60 | }, 61 | { 62 | "name": "doctrine/inflector", 63 | "version": "v1.3.0", 64 | "source": { 65 | "type": "git", 66 | "url": "https://github.com/doctrine/inflector.git", 67 | "reference": "5527a48b7313d15261292c149e55e26eae771b0a" 68 | }, 69 | "dist": { 70 | "type": "zip", 71 | "url": "https://api.github.com/repos/doctrine/inflector/zipball/5527a48b7313d15261292c149e55e26eae771b0a", 72 | "reference": "5527a48b7313d15261292c149e55e26eae771b0a", 73 | "shasum": "" 74 | }, 75 | "require": { 76 | "php": "^7.1" 77 | }, 78 | "require-dev": { 79 | "phpunit/phpunit": "^6.2" 80 | }, 81 | "type": "library", 82 | "extra": { 83 | "branch-alias": { 84 | "dev-master": "1.3.x-dev" 85 | } 86 | }, 87 | "autoload": { 88 | "psr-4": { 89 | "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector" 90 | } 91 | }, 92 | "notification-url": "https://packagist.org/downloads/", 93 | "license": [ 94 | "MIT" 95 | ], 96 | "authors": [ 97 | { 98 | "name": "Roman Borschel", 99 | "email": "roman@code-factory.org" 100 | }, 101 | { 102 | "name": "Benjamin Eberlei", 103 | "email": "kontakt@beberlei.de" 104 | }, 105 | { 106 | "name": "Guilherme Blanco", 107 | "email": "guilhermeblanco@gmail.com" 108 | }, 109 | { 110 | "name": "Jonathan Wage", 111 | "email": "jonwage@gmail.com" 112 | }, 113 | { 114 | "name": "Johannes Schmitt", 115 | "email": "schmittjoh@gmail.com" 116 | } 117 | ], 118 | "description": "Common String Manipulations with regard to casing and singular/plural rules.", 119 | "homepage": "http://www.doctrine-project.org", 120 | "keywords": [ 121 | "inflection", 122 | "pluralize", 123 | "singularize", 124 | "string" 125 | ], 126 | "time": "2018-01-09T20:05:19+00:00" 127 | }, 128 | { 129 | "name": "illuminate/contracts", 130 | "version": "v6.0.4", 131 | "source": { 132 | "type": "git", 133 | "url": "https://github.com/illuminate/contracts.git", 134 | "reference": "403b24e356346c1cd13ad794d87ec7c57a5363bb" 135 | }, 136 | "dist": { 137 | "type": "zip", 138 | "url": "https://api.github.com/repos/illuminate/contracts/zipball/403b24e356346c1cd13ad794d87ec7c57a5363bb", 139 | "reference": "403b24e356346c1cd13ad794d87ec7c57a5363bb", 140 | "shasum": "" 141 | }, 142 | "require": { 143 | "php": "^7.2", 144 | "psr/container": "^1.0", 145 | "psr/simple-cache": "^1.0" 146 | }, 147 | "type": "library", 148 | "extra": { 149 | "branch-alias": { 150 | "dev-master": "6.0-dev" 151 | } 152 | }, 153 | "autoload": { 154 | "psr-4": { 155 | "Illuminate\\Contracts\\": "" 156 | } 157 | }, 158 | "notification-url": "https://packagist.org/downloads/", 159 | "license": [ 160 | "MIT" 161 | ], 162 | "authors": [ 163 | { 164 | "name": "Taylor Otwell", 165 | "email": "taylor@laravel.com" 166 | } 167 | ], 168 | "description": "The Illuminate Contracts package.", 169 | "homepage": "https://laravel.com", 170 | "time": "2019-09-18T12:32:21+00:00" 171 | }, 172 | { 173 | "name": "illuminate/support", 174 | "version": "v6.0.4", 175 | "source": { 176 | "type": "git", 177 | "url": "https://github.com/illuminate/support.git", 178 | "reference": "b132b6cc61df520a4d8fc3ffec01e8b3ff4e8202" 179 | }, 180 | "dist": { 181 | "type": "zip", 182 | "url": "https://api.github.com/repos/illuminate/support/zipball/b132b6cc61df520a4d8fc3ffec01e8b3ff4e8202", 183 | "reference": "b132b6cc61df520a4d8fc3ffec01e8b3ff4e8202", 184 | "shasum": "" 185 | }, 186 | "require": { 187 | "doctrine/inflector": "^1.1", 188 | "ext-json": "*", 189 | "ext-mbstring": "*", 190 | "illuminate/contracts": "^6.0", 191 | "nesbot/carbon": "^2.0", 192 | "php": "^7.2" 193 | }, 194 | "conflict": { 195 | "tightenco/collect": "<5.5.33" 196 | }, 197 | "suggest": { 198 | "illuminate/filesystem": "Required to use the composer class (^6.0).", 199 | "moontoast/math": "Required to use ordered UUIDs (^1.1).", 200 | "ramsey/uuid": "Required to use Str::uuid() (^3.7).", 201 | "symfony/process": "Required to use the composer class (^4.3.4).", 202 | "symfony/var-dumper": "Required to use the dd function (^4.3.4).", 203 | "vlucas/phpdotenv": "Required to use the Env class and env helper (^3.3)." 204 | }, 205 | "type": "library", 206 | "extra": { 207 | "branch-alias": { 208 | "dev-master": "6.0-dev" 209 | } 210 | }, 211 | "autoload": { 212 | "psr-4": { 213 | "Illuminate\\Support\\": "" 214 | }, 215 | "files": [ 216 | "helpers.php" 217 | ] 218 | }, 219 | "notification-url": "https://packagist.org/downloads/", 220 | "license": [ 221 | "MIT" 222 | ], 223 | "authors": [ 224 | { 225 | "name": "Taylor Otwell", 226 | "email": "taylor@laravel.com" 227 | } 228 | ], 229 | "description": "The Illuminate Support package.", 230 | "homepage": "https://laravel.com", 231 | "time": "2019-09-18T12:32:21+00:00" 232 | }, 233 | { 234 | "name": "nesbot/carbon", 235 | "version": "2.24.0", 236 | "source": { 237 | "type": "git", 238 | "url": "https://github.com/briannesbitt/Carbon.git", 239 | "reference": "934459c5ac0658bc765ad1e53512c7c77adcac29" 240 | }, 241 | "dist": { 242 | "type": "zip", 243 | "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/934459c5ac0658bc765ad1e53512c7c77adcac29", 244 | "reference": "934459c5ac0658bc765ad1e53512c7c77adcac29", 245 | "shasum": "" 246 | }, 247 | "require": { 248 | "ext-json": "*", 249 | "php": "^7.1.8 || ^8.0", 250 | "symfony/translation": "^3.4 || ^4.0" 251 | }, 252 | "require-dev": { 253 | "friendsofphp/php-cs-fixer": "^2.14 || ^3.0", 254 | "kylekatarnls/multi-tester": "^1.1", 255 | "phpmd/phpmd": "dev-php-7.1-compatibility", 256 | "phpstan/phpstan": "^0.11", 257 | "phpunit/phpunit": "^7.5 || ^8.0", 258 | "squizlabs/php_codesniffer": "^3.4" 259 | }, 260 | "bin": [ 261 | "bin/carbon" 262 | ], 263 | "type": "library", 264 | "extra": { 265 | "laravel": { 266 | "providers": [ 267 | "Carbon\\Laravel\\ServiceProvider" 268 | ] 269 | } 270 | }, 271 | "autoload": { 272 | "psr-4": { 273 | "Carbon\\": "src/Carbon/" 274 | } 275 | }, 276 | "notification-url": "https://packagist.org/downloads/", 277 | "license": [ 278 | "MIT" 279 | ], 280 | "authors": [ 281 | { 282 | "name": "Brian Nesbitt", 283 | "email": "brian@nesbot.com", 284 | "homepage": "http://nesbot.com" 285 | }, 286 | { 287 | "name": "kylekatarnls", 288 | "homepage": "http://github.com/kylekatarnls" 289 | } 290 | ], 291 | "description": "A API extension for DateTime that supports 281 different languages.", 292 | "homepage": "http://carbon.nesbot.com", 293 | "keywords": [ 294 | "date", 295 | "datetime", 296 | "time" 297 | ], 298 | "time": "2019-08-31T16:37:55+00:00" 299 | }, 300 | { 301 | "name": "psr/container", 302 | "version": "1.0.0", 303 | "source": { 304 | "type": "git", 305 | "url": "https://github.com/php-fig/container.git", 306 | "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" 307 | }, 308 | "dist": { 309 | "type": "zip", 310 | "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", 311 | "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", 312 | "shasum": "" 313 | }, 314 | "require": { 315 | "php": ">=5.3.0" 316 | }, 317 | "type": "library", 318 | "extra": { 319 | "branch-alias": { 320 | "dev-master": "1.0.x-dev" 321 | } 322 | }, 323 | "autoload": { 324 | "psr-4": { 325 | "Psr\\Container\\": "src/" 326 | } 327 | }, 328 | "notification-url": "https://packagist.org/downloads/", 329 | "license": [ 330 | "MIT" 331 | ], 332 | "authors": [ 333 | { 334 | "name": "PHP-FIG", 335 | "homepage": "http://www.php-fig.org/" 336 | } 337 | ], 338 | "description": "Common Container Interface (PHP FIG PSR-11)", 339 | "homepage": "https://github.com/php-fig/container", 340 | "keywords": [ 341 | "PSR-11", 342 | "container", 343 | "container-interface", 344 | "container-interop", 345 | "psr" 346 | ], 347 | "time": "2017-02-14T16:28:37+00:00" 348 | }, 349 | { 350 | "name": "psr/simple-cache", 351 | "version": "1.0.1", 352 | "source": { 353 | "type": "git", 354 | "url": "https://github.com/php-fig/simple-cache.git", 355 | "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" 356 | }, 357 | "dist": { 358 | "type": "zip", 359 | "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", 360 | "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", 361 | "shasum": "" 362 | }, 363 | "require": { 364 | "php": ">=5.3.0" 365 | }, 366 | "type": "library", 367 | "extra": { 368 | "branch-alias": { 369 | "dev-master": "1.0.x-dev" 370 | } 371 | }, 372 | "autoload": { 373 | "psr-4": { 374 | "Psr\\SimpleCache\\": "src/" 375 | } 376 | }, 377 | "notification-url": "https://packagist.org/downloads/", 378 | "license": [ 379 | "MIT" 380 | ], 381 | "authors": [ 382 | { 383 | "name": "PHP-FIG", 384 | "homepage": "http://www.php-fig.org/" 385 | } 386 | ], 387 | "description": "Common interfaces for simple caching", 388 | "keywords": [ 389 | "cache", 390 | "caching", 391 | "psr", 392 | "psr-16", 393 | "simple-cache" 394 | ], 395 | "time": "2017-10-23T01:57:42+00:00" 396 | }, 397 | { 398 | "name": "symfony/polyfill-mbstring", 399 | "version": "v1.12.0", 400 | "source": { 401 | "type": "git", 402 | "url": "https://github.com/symfony/polyfill-mbstring.git", 403 | "reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17" 404 | }, 405 | "dist": { 406 | "type": "zip", 407 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/b42a2f66e8f1b15ccf25652c3424265923eb4f17", 408 | "reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17", 409 | "shasum": "" 410 | }, 411 | "require": { 412 | "php": ">=5.3.3" 413 | }, 414 | "suggest": { 415 | "ext-mbstring": "For best performance" 416 | }, 417 | "type": "library", 418 | "extra": { 419 | "branch-alias": { 420 | "dev-master": "1.12-dev" 421 | } 422 | }, 423 | "autoload": { 424 | "psr-4": { 425 | "Symfony\\Polyfill\\Mbstring\\": "" 426 | }, 427 | "files": [ 428 | "bootstrap.php" 429 | ] 430 | }, 431 | "notification-url": "https://packagist.org/downloads/", 432 | "license": [ 433 | "MIT" 434 | ], 435 | "authors": [ 436 | { 437 | "name": "Nicolas Grekas", 438 | "email": "p@tchwork.com" 439 | }, 440 | { 441 | "name": "Symfony Community", 442 | "homepage": "https://symfony.com/contributors" 443 | } 444 | ], 445 | "description": "Symfony polyfill for the Mbstring extension", 446 | "homepage": "https://symfony.com", 447 | "keywords": [ 448 | "compatibility", 449 | "mbstring", 450 | "polyfill", 451 | "portable", 452 | "shim" 453 | ], 454 | "time": "2019-08-06T08:03:45+00:00" 455 | }, 456 | { 457 | "name": "symfony/translation", 458 | "version": "v4.3.4", 459 | "source": { 460 | "type": "git", 461 | "url": "https://github.com/symfony/translation.git", 462 | "reference": "28498169dd334095fa981827992f3a24d50fed0f" 463 | }, 464 | "dist": { 465 | "type": "zip", 466 | "url": "https://api.github.com/repos/symfony/translation/zipball/28498169dd334095fa981827992f3a24d50fed0f", 467 | "reference": "28498169dd334095fa981827992f3a24d50fed0f", 468 | "shasum": "" 469 | }, 470 | "require": { 471 | "php": "^7.1.3", 472 | "symfony/polyfill-mbstring": "~1.0", 473 | "symfony/translation-contracts": "^1.1.6" 474 | }, 475 | "conflict": { 476 | "symfony/config": "<3.4", 477 | "symfony/dependency-injection": "<3.4", 478 | "symfony/yaml": "<3.4" 479 | }, 480 | "provide": { 481 | "symfony/translation-implementation": "1.0" 482 | }, 483 | "require-dev": { 484 | "psr/log": "~1.0", 485 | "symfony/config": "~3.4|~4.0", 486 | "symfony/console": "~3.4|~4.0", 487 | "symfony/dependency-injection": "~3.4|~4.0", 488 | "symfony/finder": "~2.8|~3.0|~4.0", 489 | "symfony/http-kernel": "~3.4|~4.0", 490 | "symfony/intl": "~3.4|~4.0", 491 | "symfony/service-contracts": "^1.1.2", 492 | "symfony/var-dumper": "~3.4|~4.0", 493 | "symfony/yaml": "~3.4|~4.0" 494 | }, 495 | "suggest": { 496 | "psr/log-implementation": "To use logging capability in translator", 497 | "symfony/config": "", 498 | "symfony/yaml": "" 499 | }, 500 | "type": "library", 501 | "extra": { 502 | "branch-alias": { 503 | "dev-master": "4.3-dev" 504 | } 505 | }, 506 | "autoload": { 507 | "psr-4": { 508 | "Symfony\\Component\\Translation\\": "" 509 | }, 510 | "exclude-from-classmap": [ 511 | "/Tests/" 512 | ] 513 | }, 514 | "notification-url": "https://packagist.org/downloads/", 515 | "license": [ 516 | "MIT" 517 | ], 518 | "authors": [ 519 | { 520 | "name": "Fabien Potencier", 521 | "email": "fabien@symfony.com" 522 | }, 523 | { 524 | "name": "Symfony Community", 525 | "homepage": "https://symfony.com/contributors" 526 | } 527 | ], 528 | "description": "Symfony Translation Component", 529 | "homepage": "https://symfony.com", 530 | "time": "2019-08-26T08:55:16+00:00" 531 | }, 532 | { 533 | "name": "symfony/translation-contracts", 534 | "version": "v1.1.6", 535 | "source": { 536 | "type": "git", 537 | "url": "https://github.com/symfony/translation-contracts.git", 538 | "reference": "325b17c24f3ee23cbecfa63ba809c6d89b5fa04a" 539 | }, 540 | "dist": { 541 | "type": "zip", 542 | "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/325b17c24f3ee23cbecfa63ba809c6d89b5fa04a", 543 | "reference": "325b17c24f3ee23cbecfa63ba809c6d89b5fa04a", 544 | "shasum": "" 545 | }, 546 | "require": { 547 | "php": "^7.1.3" 548 | }, 549 | "suggest": { 550 | "symfony/translation-implementation": "" 551 | }, 552 | "type": "library", 553 | "extra": { 554 | "branch-alias": { 555 | "dev-master": "1.1-dev" 556 | } 557 | }, 558 | "autoload": { 559 | "psr-4": { 560 | "Symfony\\Contracts\\Translation\\": "" 561 | } 562 | }, 563 | "notification-url": "https://packagist.org/downloads/", 564 | "license": [ 565 | "MIT" 566 | ], 567 | "authors": [ 568 | { 569 | "name": "Nicolas Grekas", 570 | "email": "p@tchwork.com" 571 | }, 572 | { 573 | "name": "Symfony Community", 574 | "homepage": "https://symfony.com/contributors" 575 | } 576 | ], 577 | "description": "Generic abstractions related to translation", 578 | "homepage": "https://symfony.com", 579 | "keywords": [ 580 | "abstractions", 581 | "contracts", 582 | "decoupling", 583 | "interfaces", 584 | "interoperability", 585 | "standards" 586 | ], 587 | "time": "2019-08-02T12:15:04+00:00" 588 | } 589 | ], 590 | "packages-dev": [ 591 | { 592 | "name": "doctrine/annotations", 593 | "version": "v1.7.0", 594 | "source": { 595 | "type": "git", 596 | "url": "https://github.com/doctrine/annotations.git", 597 | "reference": "fa4c4e861e809d6a1103bd620cce63ed91aedfeb" 598 | }, 599 | "dist": { 600 | "type": "zip", 601 | "url": "https://api.github.com/repos/doctrine/annotations/zipball/fa4c4e861e809d6a1103bd620cce63ed91aedfeb", 602 | "reference": "fa4c4e861e809d6a1103bd620cce63ed91aedfeb", 603 | "shasum": "" 604 | }, 605 | "require": { 606 | "doctrine/lexer": "1.*", 607 | "php": "^7.1" 608 | }, 609 | "require-dev": { 610 | "doctrine/cache": "1.*", 611 | "phpunit/phpunit": "^7.5@dev" 612 | }, 613 | "type": "library", 614 | "extra": { 615 | "branch-alias": { 616 | "dev-master": "1.7.x-dev" 617 | } 618 | }, 619 | "autoload": { 620 | "psr-4": { 621 | "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" 622 | } 623 | }, 624 | "notification-url": "https://packagist.org/downloads/", 625 | "license": [ 626 | "MIT" 627 | ], 628 | "authors": [ 629 | { 630 | "name": "Guilherme Blanco", 631 | "email": "guilhermeblanco@gmail.com" 632 | }, 633 | { 634 | "name": "Roman Borschel", 635 | "email": "roman@code-factory.org" 636 | }, 637 | { 638 | "name": "Benjamin Eberlei", 639 | "email": "kontakt@beberlei.de" 640 | }, 641 | { 642 | "name": "Jonathan Wage", 643 | "email": "jonwage@gmail.com" 644 | }, 645 | { 646 | "name": "Johannes Schmitt", 647 | "email": "schmittjoh@gmail.com" 648 | } 649 | ], 650 | "description": "Docblock Annotations Parser", 651 | "homepage": "http://www.doctrine-project.org", 652 | "keywords": [ 653 | "annotations", 654 | "docblock", 655 | "parser" 656 | ], 657 | "time": "2019-08-08T18:11:40+00:00" 658 | }, 659 | { 660 | "name": "doctrine/instantiator", 661 | "version": "1.2.0", 662 | "source": { 663 | "type": "git", 664 | "url": "https://github.com/doctrine/instantiator.git", 665 | "reference": "a2c590166b2133a4633738648b6b064edae0814a" 666 | }, 667 | "dist": { 668 | "type": "zip", 669 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/a2c590166b2133a4633738648b6b064edae0814a", 670 | "reference": "a2c590166b2133a4633738648b6b064edae0814a", 671 | "shasum": "" 672 | }, 673 | "require": { 674 | "php": "^7.1" 675 | }, 676 | "require-dev": { 677 | "doctrine/coding-standard": "^6.0", 678 | "ext-pdo": "*", 679 | "ext-phar": "*", 680 | "phpbench/phpbench": "^0.13", 681 | "phpstan/phpstan-phpunit": "^0.11", 682 | "phpstan/phpstan-shim": "^0.11", 683 | "phpunit/phpunit": "^7.0" 684 | }, 685 | "type": "library", 686 | "extra": { 687 | "branch-alias": { 688 | "dev-master": "1.2.x-dev" 689 | } 690 | }, 691 | "autoload": { 692 | "psr-4": { 693 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" 694 | } 695 | }, 696 | "notification-url": "https://packagist.org/downloads/", 697 | "license": [ 698 | "MIT" 699 | ], 700 | "authors": [ 701 | { 702 | "name": "Marco Pivetta", 703 | "email": "ocramius@gmail.com", 704 | "homepage": "http://ocramius.github.com/" 705 | } 706 | ], 707 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", 708 | "homepage": "https://www.doctrine-project.org/projects/instantiator.html", 709 | "keywords": [ 710 | "constructor", 711 | "instantiate" 712 | ], 713 | "time": "2019-03-17T17:37:11+00:00" 714 | }, 715 | { 716 | "name": "doctrine/lexer", 717 | "version": "1.1.0", 718 | "source": { 719 | "type": "git", 720 | "url": "https://github.com/doctrine/lexer.git", 721 | "reference": "e17f069ede36f7534b95adec71910ed1b49c74ea" 722 | }, 723 | "dist": { 724 | "type": "zip", 725 | "url": "https://api.github.com/repos/doctrine/lexer/zipball/e17f069ede36f7534b95adec71910ed1b49c74ea", 726 | "reference": "e17f069ede36f7534b95adec71910ed1b49c74ea", 727 | "shasum": "" 728 | }, 729 | "require": { 730 | "php": "^7.2" 731 | }, 732 | "require-dev": { 733 | "doctrine/coding-standard": "^6.0", 734 | "phpstan/phpstan": "^0.11.8", 735 | "phpunit/phpunit": "^8.2" 736 | }, 737 | "type": "library", 738 | "extra": { 739 | "branch-alias": { 740 | "dev-master": "1.1.x-dev" 741 | } 742 | }, 743 | "autoload": { 744 | "psr-4": { 745 | "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" 746 | } 747 | }, 748 | "notification-url": "https://packagist.org/downloads/", 749 | "license": [ 750 | "MIT" 751 | ], 752 | "authors": [ 753 | { 754 | "name": "Guilherme Blanco", 755 | "email": "guilhermeblanco@gmail.com" 756 | }, 757 | { 758 | "name": "Roman Borschel", 759 | "email": "roman@code-factory.org" 760 | }, 761 | { 762 | "name": "Johannes Schmitt", 763 | "email": "schmittjoh@gmail.com" 764 | } 765 | ], 766 | "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", 767 | "homepage": "https://www.doctrine-project.org/projects/lexer.html", 768 | "keywords": [ 769 | "annotations", 770 | "docblock", 771 | "lexer", 772 | "parser", 773 | "php" 774 | ], 775 | "time": "2019-07-30T19:33:28+00:00" 776 | }, 777 | { 778 | "name": "guzzlehttp/guzzle", 779 | "version": "6.3.3", 780 | "source": { 781 | "type": "git", 782 | "url": "https://github.com/guzzle/guzzle.git", 783 | "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba" 784 | }, 785 | "dist": { 786 | "type": "zip", 787 | "url": "https://api.github.com/repos/guzzle/guzzle/zipball/407b0cb880ace85c9b63c5f9551db498cb2d50ba", 788 | "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba", 789 | "shasum": "" 790 | }, 791 | "require": { 792 | "guzzlehttp/promises": "^1.0", 793 | "guzzlehttp/psr7": "^1.4", 794 | "php": ">=5.5" 795 | }, 796 | "require-dev": { 797 | "ext-curl": "*", 798 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", 799 | "psr/log": "^1.0" 800 | }, 801 | "suggest": { 802 | "psr/log": "Required for using the Log middleware" 803 | }, 804 | "type": "library", 805 | "extra": { 806 | "branch-alias": { 807 | "dev-master": "6.3-dev" 808 | } 809 | }, 810 | "autoload": { 811 | "files": [ 812 | "src/functions_include.php" 813 | ], 814 | "psr-4": { 815 | "GuzzleHttp\\": "src/" 816 | } 817 | }, 818 | "notification-url": "https://packagist.org/downloads/", 819 | "license": [ 820 | "MIT" 821 | ], 822 | "authors": [ 823 | { 824 | "name": "Michael Dowling", 825 | "email": "mtdowling@gmail.com", 826 | "homepage": "https://github.com/mtdowling" 827 | } 828 | ], 829 | "description": "Guzzle is a PHP HTTP client library", 830 | "homepage": "http://guzzlephp.org/", 831 | "keywords": [ 832 | "client", 833 | "curl", 834 | "framework", 835 | "http", 836 | "http client", 837 | "rest", 838 | "web service" 839 | ], 840 | "time": "2018-04-22T15:46:56+00:00" 841 | }, 842 | { 843 | "name": "guzzlehttp/promises", 844 | "version": "v1.3.1", 845 | "source": { 846 | "type": "git", 847 | "url": "https://github.com/guzzle/promises.git", 848 | "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646" 849 | }, 850 | "dist": { 851 | "type": "zip", 852 | "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646", 853 | "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646", 854 | "shasum": "" 855 | }, 856 | "require": { 857 | "php": ">=5.5.0" 858 | }, 859 | "require-dev": { 860 | "phpunit/phpunit": "^4.0" 861 | }, 862 | "type": "library", 863 | "extra": { 864 | "branch-alias": { 865 | "dev-master": "1.4-dev" 866 | } 867 | }, 868 | "autoload": { 869 | "psr-4": { 870 | "GuzzleHttp\\Promise\\": "src/" 871 | }, 872 | "files": [ 873 | "src/functions_include.php" 874 | ] 875 | }, 876 | "notification-url": "https://packagist.org/downloads/", 877 | "license": [ 878 | "MIT" 879 | ], 880 | "authors": [ 881 | { 882 | "name": "Michael Dowling", 883 | "email": "mtdowling@gmail.com", 884 | "homepage": "https://github.com/mtdowling" 885 | } 886 | ], 887 | "description": "Guzzle promises library", 888 | "keywords": [ 889 | "promise" 890 | ], 891 | "time": "2016-12-20T10:07:11+00:00" 892 | }, 893 | { 894 | "name": "guzzlehttp/psr7", 895 | "version": "1.6.1", 896 | "source": { 897 | "type": "git", 898 | "url": "https://github.com/guzzle/psr7.git", 899 | "reference": "239400de7a173fe9901b9ac7c06497751f00727a" 900 | }, 901 | "dist": { 902 | "type": "zip", 903 | "url": "https://api.github.com/repos/guzzle/psr7/zipball/239400de7a173fe9901b9ac7c06497751f00727a", 904 | "reference": "239400de7a173fe9901b9ac7c06497751f00727a", 905 | "shasum": "" 906 | }, 907 | "require": { 908 | "php": ">=5.4.0", 909 | "psr/http-message": "~1.0", 910 | "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" 911 | }, 912 | "provide": { 913 | "psr/http-message-implementation": "1.0" 914 | }, 915 | "require-dev": { 916 | "ext-zlib": "*", 917 | "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8" 918 | }, 919 | "suggest": { 920 | "zendframework/zend-httphandlerrunner": "Emit PSR-7 responses" 921 | }, 922 | "type": "library", 923 | "extra": { 924 | "branch-alias": { 925 | "dev-master": "1.6-dev" 926 | } 927 | }, 928 | "autoload": { 929 | "psr-4": { 930 | "GuzzleHttp\\Psr7\\": "src/" 931 | }, 932 | "files": [ 933 | "src/functions_include.php" 934 | ] 935 | }, 936 | "notification-url": "https://packagist.org/downloads/", 937 | "license": [ 938 | "MIT" 939 | ], 940 | "authors": [ 941 | { 942 | "name": "Michael Dowling", 943 | "email": "mtdowling@gmail.com", 944 | "homepage": "https://github.com/mtdowling" 945 | }, 946 | { 947 | "name": "Tobias Schultze", 948 | "homepage": "https://github.com/Tobion" 949 | } 950 | ], 951 | "description": "PSR-7 message implementation that also provides common utility methods", 952 | "keywords": [ 953 | "http", 954 | "message", 955 | "psr-7", 956 | "request", 957 | "response", 958 | "stream", 959 | "uri", 960 | "url" 961 | ], 962 | "time": "2019-07-01T23:21:34+00:00" 963 | }, 964 | { 965 | "name": "jms/metadata", 966 | "version": "1.7.0", 967 | "source": { 968 | "type": "git", 969 | "url": "https://github.com/schmittjoh/metadata.git", 970 | "reference": "e5854ab1aa643623dc64adde718a8eec32b957a8" 971 | }, 972 | "dist": { 973 | "type": "zip", 974 | "url": "https://api.github.com/repos/schmittjoh/metadata/zipball/e5854ab1aa643623dc64adde718a8eec32b957a8", 975 | "reference": "e5854ab1aa643623dc64adde718a8eec32b957a8", 976 | "shasum": "" 977 | }, 978 | "require": { 979 | "php": ">=5.3.0" 980 | }, 981 | "require-dev": { 982 | "doctrine/cache": "~1.0", 983 | "symfony/cache": "~3.1" 984 | }, 985 | "type": "library", 986 | "extra": { 987 | "branch-alias": { 988 | "dev-master": "1.5.x-dev" 989 | } 990 | }, 991 | "autoload": { 992 | "psr-0": { 993 | "Metadata\\": "src/" 994 | } 995 | }, 996 | "notification-url": "https://packagist.org/downloads/", 997 | "license": [ 998 | "MIT" 999 | ], 1000 | "authors": [ 1001 | { 1002 | "name": "Asmir Mustafic", 1003 | "email": "goetas@gmail.com" 1004 | }, 1005 | { 1006 | "name": "Johannes M. Schmitt", 1007 | "email": "schmittjoh@gmail.com" 1008 | } 1009 | ], 1010 | "description": "Class/method/property metadata management in PHP", 1011 | "keywords": [ 1012 | "annotations", 1013 | "metadata", 1014 | "xml", 1015 | "yaml" 1016 | ], 1017 | "time": "2018-10-26T12:40:10+00:00" 1018 | }, 1019 | { 1020 | "name": "jms/parser-lib", 1021 | "version": "1.0.0", 1022 | "source": { 1023 | "type": "git", 1024 | "url": "https://github.com/schmittjoh/parser-lib.git", 1025 | "reference": "c509473bc1b4866415627af0e1c6cc8ac97fa51d" 1026 | }, 1027 | "dist": { 1028 | "type": "zip", 1029 | "url": "https://api.github.com/repos/schmittjoh/parser-lib/zipball/c509473bc1b4866415627af0e1c6cc8ac97fa51d", 1030 | "reference": "c509473bc1b4866415627af0e1c6cc8ac97fa51d", 1031 | "shasum": "" 1032 | }, 1033 | "require": { 1034 | "phpoption/phpoption": ">=0.9,<2.0-dev" 1035 | }, 1036 | "type": "library", 1037 | "extra": { 1038 | "branch-alias": { 1039 | "dev-master": "1.0-dev" 1040 | } 1041 | }, 1042 | "autoload": { 1043 | "psr-0": { 1044 | "JMS\\": "src/" 1045 | } 1046 | }, 1047 | "notification-url": "https://packagist.org/downloads/", 1048 | "license": [ 1049 | "Apache2" 1050 | ], 1051 | "description": "A library for easily creating recursive-descent parsers.", 1052 | "time": "2012-11-18T18:08:43+00:00" 1053 | }, 1054 | { 1055 | "name": "jms/serializer", 1056 | "version": "1.14.0", 1057 | "source": { 1058 | "type": "git", 1059 | "url": "https://github.com/schmittjoh/serializer.git", 1060 | "reference": "ee96d57024af9a7716d56fcbe3aa94b3d030f3ca" 1061 | }, 1062 | "dist": { 1063 | "type": "zip", 1064 | "url": "https://api.github.com/repos/schmittjoh/serializer/zipball/ee96d57024af9a7716d56fcbe3aa94b3d030f3ca", 1065 | "reference": "ee96d57024af9a7716d56fcbe3aa94b3d030f3ca", 1066 | "shasum": "" 1067 | }, 1068 | "require": { 1069 | "doctrine/annotations": "^1.0", 1070 | "doctrine/instantiator": "^1.0.3", 1071 | "jms/metadata": "^1.3", 1072 | "jms/parser-lib": "1.*", 1073 | "php": "^5.5|^7.0", 1074 | "phpcollection/phpcollection": "~0.1", 1075 | "phpoption/phpoption": "^1.1" 1076 | }, 1077 | "conflict": { 1078 | "twig/twig": "<1.12" 1079 | }, 1080 | "require-dev": { 1081 | "doctrine/orm": "~2.1", 1082 | "doctrine/phpcr-odm": "^1.3|^2.0", 1083 | "ext-pdo_sqlite": "*", 1084 | "jackalope/jackalope-doctrine-dbal": "^1.1.5", 1085 | "phpunit/phpunit": "^4.8|^5.0", 1086 | "propel/propel1": "~1.7", 1087 | "psr/container": "^1.0", 1088 | "symfony/dependency-injection": "^2.7|^3.3|^4.0", 1089 | "symfony/expression-language": "^2.6|^3.0", 1090 | "symfony/filesystem": "^2.1", 1091 | "symfony/form": "~2.1|^3.0", 1092 | "symfony/translation": "^2.1|^3.0", 1093 | "symfony/validator": "^2.2|^3.0", 1094 | "symfony/yaml": "^2.1|^3.0", 1095 | "twig/twig": "~1.12|~2.0" 1096 | }, 1097 | "suggest": { 1098 | "doctrine/cache": "Required if you like to use cache functionality.", 1099 | "doctrine/collections": "Required if you like to use doctrine collection types as ArrayCollection.", 1100 | "symfony/yaml": "Required if you'd like to serialize data to YAML format." 1101 | }, 1102 | "type": "library", 1103 | "extra": { 1104 | "branch-alias": { 1105 | "dev-1.x": "1.14-dev" 1106 | } 1107 | }, 1108 | "autoload": { 1109 | "psr-0": { 1110 | "JMS\\Serializer": "src/" 1111 | } 1112 | }, 1113 | "notification-url": "https://packagist.org/downloads/", 1114 | "license": [ 1115 | "MIT" 1116 | ], 1117 | "authors": [ 1118 | { 1119 | "name": "Asmir Mustafic", 1120 | "email": "goetas@gmail.com" 1121 | }, 1122 | { 1123 | "name": "Johannes M. Schmitt", 1124 | "email": "schmittjoh@gmail.com" 1125 | } 1126 | ], 1127 | "description": "Library for (de-)serializing data of any complexity; supports XML, JSON, and YAML.", 1128 | "homepage": "http://jmsyst.com/libs/serializer", 1129 | "keywords": [ 1130 | "deserialization", 1131 | "jaxb", 1132 | "json", 1133 | "serialization", 1134 | "xml" 1135 | ], 1136 | "time": "2019-04-17T08:12:16+00:00" 1137 | }, 1138 | { 1139 | "name": "myclabs/deep-copy", 1140 | "version": "1.9.3", 1141 | "source": { 1142 | "type": "git", 1143 | "url": "https://github.com/myclabs/DeepCopy.git", 1144 | "reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea" 1145 | }, 1146 | "dist": { 1147 | "type": "zip", 1148 | "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/007c053ae6f31bba39dfa19a7726f56e9763bbea", 1149 | "reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea", 1150 | "shasum": "" 1151 | }, 1152 | "require": { 1153 | "php": "^7.1" 1154 | }, 1155 | "replace": { 1156 | "myclabs/deep-copy": "self.version" 1157 | }, 1158 | "require-dev": { 1159 | "doctrine/collections": "^1.0", 1160 | "doctrine/common": "^2.6", 1161 | "phpunit/phpunit": "^7.1" 1162 | }, 1163 | "type": "library", 1164 | "autoload": { 1165 | "psr-4": { 1166 | "DeepCopy\\": "src/DeepCopy/" 1167 | }, 1168 | "files": [ 1169 | "src/DeepCopy/deep_copy.php" 1170 | ] 1171 | }, 1172 | "notification-url": "https://packagist.org/downloads/", 1173 | "license": [ 1174 | "MIT" 1175 | ], 1176 | "description": "Create deep copies (clones) of your objects", 1177 | "keywords": [ 1178 | "clone", 1179 | "copy", 1180 | "duplicate", 1181 | "object", 1182 | "object graph" 1183 | ], 1184 | "time": "2019-08-09T12:45:53+00:00" 1185 | }, 1186 | { 1187 | "name": "phpcollection/phpcollection", 1188 | "version": "0.5.0", 1189 | "source": { 1190 | "type": "git", 1191 | "url": "https://github.com/schmittjoh/php-collection.git", 1192 | "reference": "f2bcff45c0da7c27991bbc1f90f47c4b7fb434a6" 1193 | }, 1194 | "dist": { 1195 | "type": "zip", 1196 | "url": "https://api.github.com/repos/schmittjoh/php-collection/zipball/f2bcff45c0da7c27991bbc1f90f47c4b7fb434a6", 1197 | "reference": "f2bcff45c0da7c27991bbc1f90f47c4b7fb434a6", 1198 | "shasum": "" 1199 | }, 1200 | "require": { 1201 | "phpoption/phpoption": "1.*" 1202 | }, 1203 | "type": "library", 1204 | "extra": { 1205 | "branch-alias": { 1206 | "dev-master": "0.4-dev" 1207 | } 1208 | }, 1209 | "autoload": { 1210 | "psr-0": { 1211 | "PhpCollection": "src/" 1212 | } 1213 | }, 1214 | "notification-url": "https://packagist.org/downloads/", 1215 | "license": [ 1216 | "Apache2" 1217 | ], 1218 | "authors": [ 1219 | { 1220 | "name": "Johannes M. Schmitt", 1221 | "email": "schmittjoh@gmail.com" 1222 | } 1223 | ], 1224 | "description": "General-Purpose Collection Library for PHP", 1225 | "keywords": [ 1226 | "collection", 1227 | "list", 1228 | "map", 1229 | "sequence", 1230 | "set" 1231 | ], 1232 | "time": "2015-05-17T12:39:23+00:00" 1233 | }, 1234 | { 1235 | "name": "phpdocumentor/reflection-common", 1236 | "version": "2.0.0", 1237 | "source": { 1238 | "type": "git", 1239 | "url": "https://github.com/phpDocumentor/ReflectionCommon.git", 1240 | "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a" 1241 | }, 1242 | "dist": { 1243 | "type": "zip", 1244 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/63a995caa1ca9e5590304cd845c15ad6d482a62a", 1245 | "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a", 1246 | "shasum": "" 1247 | }, 1248 | "require": { 1249 | "php": ">=7.1" 1250 | }, 1251 | "require-dev": { 1252 | "phpunit/phpunit": "~6" 1253 | }, 1254 | "type": "library", 1255 | "extra": { 1256 | "branch-alias": { 1257 | "dev-master": "2.x-dev" 1258 | } 1259 | }, 1260 | "autoload": { 1261 | "psr-4": { 1262 | "phpDocumentor\\Reflection\\": "src/" 1263 | } 1264 | }, 1265 | "notification-url": "https://packagist.org/downloads/", 1266 | "license": [ 1267 | "MIT" 1268 | ], 1269 | "authors": [ 1270 | { 1271 | "name": "Jaap van Otterdijk", 1272 | "email": "opensource@ijaap.nl" 1273 | } 1274 | ], 1275 | "description": "Common reflection classes used by phpdocumentor to reflect the code structure", 1276 | "homepage": "http://www.phpdoc.org", 1277 | "keywords": [ 1278 | "FQSEN", 1279 | "phpDocumentor", 1280 | "phpdoc", 1281 | "reflection", 1282 | "static analysis" 1283 | ], 1284 | "time": "2018-08-07T13:53:10+00:00" 1285 | }, 1286 | { 1287 | "name": "phpdocumentor/reflection-docblock", 1288 | "version": "4.3.2", 1289 | "source": { 1290 | "type": "git", 1291 | "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", 1292 | "reference": "b83ff7cfcfee7827e1e78b637a5904fe6a96698e" 1293 | }, 1294 | "dist": { 1295 | "type": "zip", 1296 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/b83ff7cfcfee7827e1e78b637a5904fe6a96698e", 1297 | "reference": "b83ff7cfcfee7827e1e78b637a5904fe6a96698e", 1298 | "shasum": "" 1299 | }, 1300 | "require": { 1301 | "php": "^7.0", 1302 | "phpdocumentor/reflection-common": "^1.0.0 || ^2.0.0", 1303 | "phpdocumentor/type-resolver": "~0.4 || ^1.0.0", 1304 | "webmozart/assert": "^1.0" 1305 | }, 1306 | "require-dev": { 1307 | "doctrine/instantiator": "^1.0.5", 1308 | "mockery/mockery": "^1.0", 1309 | "phpunit/phpunit": "^6.4" 1310 | }, 1311 | "type": "library", 1312 | "extra": { 1313 | "branch-alias": { 1314 | "dev-master": "4.x-dev" 1315 | } 1316 | }, 1317 | "autoload": { 1318 | "psr-4": { 1319 | "phpDocumentor\\Reflection\\": [ 1320 | "src/" 1321 | ] 1322 | } 1323 | }, 1324 | "notification-url": "https://packagist.org/downloads/", 1325 | "license": [ 1326 | "MIT" 1327 | ], 1328 | "authors": [ 1329 | { 1330 | "name": "Mike van Riel", 1331 | "email": "me@mikevanriel.com" 1332 | } 1333 | ], 1334 | "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", 1335 | "time": "2019-09-12T14:27:41+00:00" 1336 | }, 1337 | { 1338 | "name": "phpdocumentor/type-resolver", 1339 | "version": "1.0.1", 1340 | "source": { 1341 | "type": "git", 1342 | "url": "https://github.com/phpDocumentor/TypeResolver.git", 1343 | "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9" 1344 | }, 1345 | "dist": { 1346 | "type": "zip", 1347 | "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", 1348 | "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", 1349 | "shasum": "" 1350 | }, 1351 | "require": { 1352 | "php": "^7.1", 1353 | "phpdocumentor/reflection-common": "^2.0" 1354 | }, 1355 | "require-dev": { 1356 | "ext-tokenizer": "^7.1", 1357 | "mockery/mockery": "~1", 1358 | "phpunit/phpunit": "^7.0" 1359 | }, 1360 | "type": "library", 1361 | "extra": { 1362 | "branch-alias": { 1363 | "dev-master": "1.x-dev" 1364 | } 1365 | }, 1366 | "autoload": { 1367 | "psr-4": { 1368 | "phpDocumentor\\Reflection\\": "src" 1369 | } 1370 | }, 1371 | "notification-url": "https://packagist.org/downloads/", 1372 | "license": [ 1373 | "MIT" 1374 | ], 1375 | "authors": [ 1376 | { 1377 | "name": "Mike van Riel", 1378 | "email": "me@mikevanriel.com" 1379 | } 1380 | ], 1381 | "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", 1382 | "time": "2019-08-22T18:11:29+00:00" 1383 | }, 1384 | { 1385 | "name": "phpoption/phpoption", 1386 | "version": "1.5.0", 1387 | "source": { 1388 | "type": "git", 1389 | "url": "https://github.com/schmittjoh/php-option.git", 1390 | "reference": "94e644f7d2051a5f0fcf77d81605f152eecff0ed" 1391 | }, 1392 | "dist": { 1393 | "type": "zip", 1394 | "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/94e644f7d2051a5f0fcf77d81605f152eecff0ed", 1395 | "reference": "94e644f7d2051a5f0fcf77d81605f152eecff0ed", 1396 | "shasum": "" 1397 | }, 1398 | "require": { 1399 | "php": ">=5.3.0" 1400 | }, 1401 | "require-dev": { 1402 | "phpunit/phpunit": "4.7.*" 1403 | }, 1404 | "type": "library", 1405 | "extra": { 1406 | "branch-alias": { 1407 | "dev-master": "1.3-dev" 1408 | } 1409 | }, 1410 | "autoload": { 1411 | "psr-0": { 1412 | "PhpOption\\": "src/" 1413 | } 1414 | }, 1415 | "notification-url": "https://packagist.org/downloads/", 1416 | "license": [ 1417 | "Apache2" 1418 | ], 1419 | "authors": [ 1420 | { 1421 | "name": "Johannes M. Schmitt", 1422 | "email": "schmittjoh@gmail.com" 1423 | } 1424 | ], 1425 | "description": "Option Type for PHP", 1426 | "keywords": [ 1427 | "language", 1428 | "option", 1429 | "php", 1430 | "type" 1431 | ], 1432 | "time": "2015-07-25T16:39:46+00:00" 1433 | }, 1434 | { 1435 | "name": "phpspec/prophecy", 1436 | "version": "1.8.1", 1437 | "source": { 1438 | "type": "git", 1439 | "url": "https://github.com/phpspec/prophecy.git", 1440 | "reference": "1927e75f4ed19131ec9bcc3b002e07fb1173ee76" 1441 | }, 1442 | "dist": { 1443 | "type": "zip", 1444 | "url": "https://api.github.com/repos/phpspec/prophecy/zipball/1927e75f4ed19131ec9bcc3b002e07fb1173ee76", 1445 | "reference": "1927e75f4ed19131ec9bcc3b002e07fb1173ee76", 1446 | "shasum": "" 1447 | }, 1448 | "require": { 1449 | "doctrine/instantiator": "^1.0.2", 1450 | "php": "^5.3|^7.0", 1451 | "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", 1452 | "sebastian/comparator": "^1.1|^2.0|^3.0", 1453 | "sebastian/recursion-context": "^1.0|^2.0|^3.0" 1454 | }, 1455 | "require-dev": { 1456 | "phpspec/phpspec": "^2.5|^3.2", 1457 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" 1458 | }, 1459 | "type": "library", 1460 | "extra": { 1461 | "branch-alias": { 1462 | "dev-master": "1.8.x-dev" 1463 | } 1464 | }, 1465 | "autoload": { 1466 | "psr-4": { 1467 | "Prophecy\\": "src/Prophecy" 1468 | } 1469 | }, 1470 | "notification-url": "https://packagist.org/downloads/", 1471 | "license": [ 1472 | "MIT" 1473 | ], 1474 | "authors": [ 1475 | { 1476 | "name": "Konstantin Kudryashov", 1477 | "email": "ever.zet@gmail.com", 1478 | "homepage": "http://everzet.com" 1479 | }, 1480 | { 1481 | "name": "Marcello Duarte", 1482 | "email": "marcello.duarte@gmail.com" 1483 | } 1484 | ], 1485 | "description": "Highly opinionated mocking framework for PHP 5.3+", 1486 | "homepage": "https://github.com/phpspec/prophecy", 1487 | "keywords": [ 1488 | "Double", 1489 | "Dummy", 1490 | "fake", 1491 | "mock", 1492 | "spy", 1493 | "stub" 1494 | ], 1495 | "time": "2019-06-13T12:50:23+00:00" 1496 | }, 1497 | { 1498 | "name": "phpunit/php-code-coverage", 1499 | "version": "4.0.8", 1500 | "source": { 1501 | "type": "git", 1502 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git", 1503 | "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d" 1504 | }, 1505 | "dist": { 1506 | "type": "zip", 1507 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ef7b2f56815df854e66ceaee8ebe9393ae36a40d", 1508 | "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d", 1509 | "shasum": "" 1510 | }, 1511 | "require": { 1512 | "ext-dom": "*", 1513 | "ext-xmlwriter": "*", 1514 | "php": "^5.6 || ^7.0", 1515 | "phpunit/php-file-iterator": "^1.3", 1516 | "phpunit/php-text-template": "^1.2", 1517 | "phpunit/php-token-stream": "^1.4.2 || ^2.0", 1518 | "sebastian/code-unit-reverse-lookup": "^1.0", 1519 | "sebastian/environment": "^1.3.2 || ^2.0", 1520 | "sebastian/version": "^1.0 || ^2.0" 1521 | }, 1522 | "require-dev": { 1523 | "ext-xdebug": "^2.1.4", 1524 | "phpunit/phpunit": "^5.7" 1525 | }, 1526 | "suggest": { 1527 | "ext-xdebug": "^2.5.1" 1528 | }, 1529 | "type": "library", 1530 | "extra": { 1531 | "branch-alias": { 1532 | "dev-master": "4.0.x-dev" 1533 | } 1534 | }, 1535 | "autoload": { 1536 | "classmap": [ 1537 | "src/" 1538 | ] 1539 | }, 1540 | "notification-url": "https://packagist.org/downloads/", 1541 | "license": [ 1542 | "BSD-3-Clause" 1543 | ], 1544 | "authors": [ 1545 | { 1546 | "name": "Sebastian Bergmann", 1547 | "email": "sb@sebastian-bergmann.de", 1548 | "role": "lead" 1549 | } 1550 | ], 1551 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", 1552 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage", 1553 | "keywords": [ 1554 | "coverage", 1555 | "testing", 1556 | "xunit" 1557 | ], 1558 | "time": "2017-04-02T07:44:40+00:00" 1559 | }, 1560 | { 1561 | "name": "phpunit/php-file-iterator", 1562 | "version": "1.4.5", 1563 | "source": { 1564 | "type": "git", 1565 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git", 1566 | "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" 1567 | }, 1568 | "dist": { 1569 | "type": "zip", 1570 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", 1571 | "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", 1572 | "shasum": "" 1573 | }, 1574 | "require": { 1575 | "php": ">=5.3.3" 1576 | }, 1577 | "type": "library", 1578 | "extra": { 1579 | "branch-alias": { 1580 | "dev-master": "1.4.x-dev" 1581 | } 1582 | }, 1583 | "autoload": { 1584 | "classmap": [ 1585 | "src/" 1586 | ] 1587 | }, 1588 | "notification-url": "https://packagist.org/downloads/", 1589 | "license": [ 1590 | "BSD-3-Clause" 1591 | ], 1592 | "authors": [ 1593 | { 1594 | "name": "Sebastian Bergmann", 1595 | "email": "sb@sebastian-bergmann.de", 1596 | "role": "lead" 1597 | } 1598 | ], 1599 | "description": "FilterIterator implementation that filters files based on a list of suffixes.", 1600 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", 1601 | "keywords": [ 1602 | "filesystem", 1603 | "iterator" 1604 | ], 1605 | "time": "2017-11-27T13:52:08+00:00" 1606 | }, 1607 | { 1608 | "name": "phpunit/php-text-template", 1609 | "version": "1.2.1", 1610 | "source": { 1611 | "type": "git", 1612 | "url": "https://github.com/sebastianbergmann/php-text-template.git", 1613 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" 1614 | }, 1615 | "dist": { 1616 | "type": "zip", 1617 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 1618 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 1619 | "shasum": "" 1620 | }, 1621 | "require": { 1622 | "php": ">=5.3.3" 1623 | }, 1624 | "type": "library", 1625 | "autoload": { 1626 | "classmap": [ 1627 | "src/" 1628 | ] 1629 | }, 1630 | "notification-url": "https://packagist.org/downloads/", 1631 | "license": [ 1632 | "BSD-3-Clause" 1633 | ], 1634 | "authors": [ 1635 | { 1636 | "name": "Sebastian Bergmann", 1637 | "email": "sebastian@phpunit.de", 1638 | "role": "lead" 1639 | } 1640 | ], 1641 | "description": "Simple template engine.", 1642 | "homepage": "https://github.com/sebastianbergmann/php-text-template/", 1643 | "keywords": [ 1644 | "template" 1645 | ], 1646 | "time": "2015-06-21T13:50:34+00:00" 1647 | }, 1648 | { 1649 | "name": "phpunit/php-timer", 1650 | "version": "1.0.9", 1651 | "source": { 1652 | "type": "git", 1653 | "url": "https://github.com/sebastianbergmann/php-timer.git", 1654 | "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" 1655 | }, 1656 | "dist": { 1657 | "type": "zip", 1658 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", 1659 | "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", 1660 | "shasum": "" 1661 | }, 1662 | "require": { 1663 | "php": "^5.3.3 || ^7.0" 1664 | }, 1665 | "require-dev": { 1666 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" 1667 | }, 1668 | "type": "library", 1669 | "extra": { 1670 | "branch-alias": { 1671 | "dev-master": "1.0-dev" 1672 | } 1673 | }, 1674 | "autoload": { 1675 | "classmap": [ 1676 | "src/" 1677 | ] 1678 | }, 1679 | "notification-url": "https://packagist.org/downloads/", 1680 | "license": [ 1681 | "BSD-3-Clause" 1682 | ], 1683 | "authors": [ 1684 | { 1685 | "name": "Sebastian Bergmann", 1686 | "email": "sb@sebastian-bergmann.de", 1687 | "role": "lead" 1688 | } 1689 | ], 1690 | "description": "Utility class for timing", 1691 | "homepage": "https://github.com/sebastianbergmann/php-timer/", 1692 | "keywords": [ 1693 | "timer" 1694 | ], 1695 | "time": "2017-02-26T11:10:40+00:00" 1696 | }, 1697 | { 1698 | "name": "phpunit/php-token-stream", 1699 | "version": "2.0.2", 1700 | "source": { 1701 | "type": "git", 1702 | "url": "https://github.com/sebastianbergmann/php-token-stream.git", 1703 | "reference": "791198a2c6254db10131eecfe8c06670700904db" 1704 | }, 1705 | "dist": { 1706 | "type": "zip", 1707 | "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/791198a2c6254db10131eecfe8c06670700904db", 1708 | "reference": "791198a2c6254db10131eecfe8c06670700904db", 1709 | "shasum": "" 1710 | }, 1711 | "require": { 1712 | "ext-tokenizer": "*", 1713 | "php": "^7.0" 1714 | }, 1715 | "require-dev": { 1716 | "phpunit/phpunit": "^6.2.4" 1717 | }, 1718 | "type": "library", 1719 | "extra": { 1720 | "branch-alias": { 1721 | "dev-master": "2.0-dev" 1722 | } 1723 | }, 1724 | "autoload": { 1725 | "classmap": [ 1726 | "src/" 1727 | ] 1728 | }, 1729 | "notification-url": "https://packagist.org/downloads/", 1730 | "license": [ 1731 | "BSD-3-Clause" 1732 | ], 1733 | "authors": [ 1734 | { 1735 | "name": "Sebastian Bergmann", 1736 | "email": "sebastian@phpunit.de" 1737 | } 1738 | ], 1739 | "description": "Wrapper around PHP's tokenizer extension.", 1740 | "homepage": "https://github.com/sebastianbergmann/php-token-stream/", 1741 | "keywords": [ 1742 | "tokenizer" 1743 | ], 1744 | "time": "2017-11-27T05:48:46+00:00" 1745 | }, 1746 | { 1747 | "name": "phpunit/phpunit", 1748 | "version": "5.7.27", 1749 | "source": { 1750 | "type": "git", 1751 | "url": "https://github.com/sebastianbergmann/phpunit.git", 1752 | "reference": "b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c" 1753 | }, 1754 | "dist": { 1755 | "type": "zip", 1756 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c", 1757 | "reference": "b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c", 1758 | "shasum": "" 1759 | }, 1760 | "require": { 1761 | "ext-dom": "*", 1762 | "ext-json": "*", 1763 | "ext-libxml": "*", 1764 | "ext-mbstring": "*", 1765 | "ext-xml": "*", 1766 | "myclabs/deep-copy": "~1.3", 1767 | "php": "^5.6 || ^7.0", 1768 | "phpspec/prophecy": "^1.6.2", 1769 | "phpunit/php-code-coverage": "^4.0.4", 1770 | "phpunit/php-file-iterator": "~1.4", 1771 | "phpunit/php-text-template": "~1.2", 1772 | "phpunit/php-timer": "^1.0.6", 1773 | "phpunit/phpunit-mock-objects": "^3.2", 1774 | "sebastian/comparator": "^1.2.4", 1775 | "sebastian/diff": "^1.4.3", 1776 | "sebastian/environment": "^1.3.4 || ^2.0", 1777 | "sebastian/exporter": "~2.0", 1778 | "sebastian/global-state": "^1.1", 1779 | "sebastian/object-enumerator": "~2.0", 1780 | "sebastian/resource-operations": "~1.0", 1781 | "sebastian/version": "^1.0.6|^2.0.1", 1782 | "symfony/yaml": "~2.1|~3.0|~4.0" 1783 | }, 1784 | "conflict": { 1785 | "phpdocumentor/reflection-docblock": "3.0.2" 1786 | }, 1787 | "require-dev": { 1788 | "ext-pdo": "*" 1789 | }, 1790 | "suggest": { 1791 | "ext-xdebug": "*", 1792 | "phpunit/php-invoker": "~1.1" 1793 | }, 1794 | "bin": [ 1795 | "phpunit" 1796 | ], 1797 | "type": "library", 1798 | "extra": { 1799 | "branch-alias": { 1800 | "dev-master": "5.7.x-dev" 1801 | } 1802 | }, 1803 | "autoload": { 1804 | "classmap": [ 1805 | "src/" 1806 | ] 1807 | }, 1808 | "notification-url": "https://packagist.org/downloads/", 1809 | "license": [ 1810 | "BSD-3-Clause" 1811 | ], 1812 | "authors": [ 1813 | { 1814 | "name": "Sebastian Bergmann", 1815 | "email": "sebastian@phpunit.de", 1816 | "role": "lead" 1817 | } 1818 | ], 1819 | "description": "The PHP Unit Testing framework.", 1820 | "homepage": "https://phpunit.de/", 1821 | "keywords": [ 1822 | "phpunit", 1823 | "testing", 1824 | "xunit" 1825 | ], 1826 | "time": "2018-02-01T05:50:59+00:00" 1827 | }, 1828 | { 1829 | "name": "phpunit/phpunit-mock-objects", 1830 | "version": "3.4.4", 1831 | "source": { 1832 | "type": "git", 1833 | "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", 1834 | "reference": "a23b761686d50a560cc56233b9ecf49597cc9118" 1835 | }, 1836 | "dist": { 1837 | "type": "zip", 1838 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/a23b761686d50a560cc56233b9ecf49597cc9118", 1839 | "reference": "a23b761686d50a560cc56233b9ecf49597cc9118", 1840 | "shasum": "" 1841 | }, 1842 | "require": { 1843 | "doctrine/instantiator": "^1.0.2", 1844 | "php": "^5.6 || ^7.0", 1845 | "phpunit/php-text-template": "^1.2", 1846 | "sebastian/exporter": "^1.2 || ^2.0" 1847 | }, 1848 | "conflict": { 1849 | "phpunit/phpunit": "<5.4.0" 1850 | }, 1851 | "require-dev": { 1852 | "phpunit/phpunit": "^5.4" 1853 | }, 1854 | "suggest": { 1855 | "ext-soap": "*" 1856 | }, 1857 | "type": "library", 1858 | "extra": { 1859 | "branch-alias": { 1860 | "dev-master": "3.2.x-dev" 1861 | } 1862 | }, 1863 | "autoload": { 1864 | "classmap": [ 1865 | "src/" 1866 | ] 1867 | }, 1868 | "notification-url": "https://packagist.org/downloads/", 1869 | "license": [ 1870 | "BSD-3-Clause" 1871 | ], 1872 | "authors": [ 1873 | { 1874 | "name": "Sebastian Bergmann", 1875 | "email": "sb@sebastian-bergmann.de", 1876 | "role": "lead" 1877 | } 1878 | ], 1879 | "description": "Mock Object library for PHPUnit", 1880 | "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", 1881 | "keywords": [ 1882 | "mock", 1883 | "xunit" 1884 | ], 1885 | "abandoned": true, 1886 | "time": "2017-06-30T09:13:00+00:00" 1887 | }, 1888 | { 1889 | "name": "psr/http-message", 1890 | "version": "1.0.1", 1891 | "source": { 1892 | "type": "git", 1893 | "url": "https://github.com/php-fig/http-message.git", 1894 | "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" 1895 | }, 1896 | "dist": { 1897 | "type": "zip", 1898 | "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", 1899 | "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", 1900 | "shasum": "" 1901 | }, 1902 | "require": { 1903 | "php": ">=5.3.0" 1904 | }, 1905 | "type": "library", 1906 | "extra": { 1907 | "branch-alias": { 1908 | "dev-master": "1.0.x-dev" 1909 | } 1910 | }, 1911 | "autoload": { 1912 | "psr-4": { 1913 | "Psr\\Http\\Message\\": "src/" 1914 | } 1915 | }, 1916 | "notification-url": "https://packagist.org/downloads/", 1917 | "license": [ 1918 | "MIT" 1919 | ], 1920 | "authors": [ 1921 | { 1922 | "name": "PHP-FIG", 1923 | "homepage": "http://www.php-fig.org/" 1924 | } 1925 | ], 1926 | "description": "Common interface for HTTP messages", 1927 | "homepage": "https://github.com/php-fig/http-message", 1928 | "keywords": [ 1929 | "http", 1930 | "http-message", 1931 | "psr", 1932 | "psr-7", 1933 | "request", 1934 | "response" 1935 | ], 1936 | "time": "2016-08-06T14:39:51+00:00" 1937 | }, 1938 | { 1939 | "name": "ralouphie/getallheaders", 1940 | "version": "3.0.3", 1941 | "source": { 1942 | "type": "git", 1943 | "url": "https://github.com/ralouphie/getallheaders.git", 1944 | "reference": "120b605dfeb996808c31b6477290a714d356e822" 1945 | }, 1946 | "dist": { 1947 | "type": "zip", 1948 | "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", 1949 | "reference": "120b605dfeb996808c31b6477290a714d356e822", 1950 | "shasum": "" 1951 | }, 1952 | "require": { 1953 | "php": ">=5.6" 1954 | }, 1955 | "require-dev": { 1956 | "php-coveralls/php-coveralls": "^2.1", 1957 | "phpunit/phpunit": "^5 || ^6.5" 1958 | }, 1959 | "type": "library", 1960 | "autoload": { 1961 | "files": [ 1962 | "src/getallheaders.php" 1963 | ] 1964 | }, 1965 | "notification-url": "https://packagist.org/downloads/", 1966 | "license": [ 1967 | "MIT" 1968 | ], 1969 | "authors": [ 1970 | { 1971 | "name": "Ralph Khattar", 1972 | "email": "ralph.khattar@gmail.com" 1973 | } 1974 | ], 1975 | "description": "A polyfill for getallheaders.", 1976 | "time": "2019-03-08T08:55:37+00:00" 1977 | }, 1978 | { 1979 | "name": "scrutinizer/ocular", 1980 | "version": "1.6.0", 1981 | "source": { 1982 | "type": "git", 1983 | "url": "https://github.com/scrutinizer-ci/ocular.git", 1984 | "reference": "3f0bb363ce09a8116d48a25f2a2f5a5fdb5db3aa" 1985 | }, 1986 | "dist": { 1987 | "type": "zip", 1988 | "url": "https://api.github.com/repos/scrutinizer-ci/ocular/zipball/3f0bb363ce09a8116d48a25f2a2f5a5fdb5db3aa", 1989 | "reference": "3f0bb363ce09a8116d48a25f2a2f5a5fdb5db3aa", 1990 | "shasum": "" 1991 | }, 1992 | "require": { 1993 | "guzzlehttp/guzzle": "~6.3", 1994 | "jms/serializer": "^1.0.0", 1995 | "phpoption/phpoption": "~1.0", 1996 | "symfony/console": "^2.1.0|~3.0|~4.0", 1997 | "symfony/process": "~2.3|~3.0|~4.0" 1998 | }, 1999 | "require-dev": { 2000 | "bamarni/composer-bin-plugin": "^1.2", 2001 | "phpunit/phpunit": "^4.8.0", 2002 | "symfony/filesystem": "~2.0|~3.0|~4.0" 2003 | }, 2004 | "bin": [ 2005 | "bin/ocular" 2006 | ], 2007 | "type": "library", 2008 | "autoload": { 2009 | "psr-4": { 2010 | "Scrutinizer\\Ocular\\": "src/Scrutinizer/Ocular" 2011 | } 2012 | }, 2013 | "notification-url": "https://packagist.org/downloads/", 2014 | "license": [ 2015 | "Apache-2.0" 2016 | ], 2017 | "time": "2019-06-15T16:36:51+00:00" 2018 | }, 2019 | { 2020 | "name": "sebastian/code-unit-reverse-lookup", 2021 | "version": "1.0.1", 2022 | "source": { 2023 | "type": "git", 2024 | "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", 2025 | "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" 2026 | }, 2027 | "dist": { 2028 | "type": "zip", 2029 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", 2030 | "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", 2031 | "shasum": "" 2032 | }, 2033 | "require": { 2034 | "php": "^5.6 || ^7.0" 2035 | }, 2036 | "require-dev": { 2037 | "phpunit/phpunit": "^5.7 || ^6.0" 2038 | }, 2039 | "type": "library", 2040 | "extra": { 2041 | "branch-alias": { 2042 | "dev-master": "1.0.x-dev" 2043 | } 2044 | }, 2045 | "autoload": { 2046 | "classmap": [ 2047 | "src/" 2048 | ] 2049 | }, 2050 | "notification-url": "https://packagist.org/downloads/", 2051 | "license": [ 2052 | "BSD-3-Clause" 2053 | ], 2054 | "authors": [ 2055 | { 2056 | "name": "Sebastian Bergmann", 2057 | "email": "sebastian@phpunit.de" 2058 | } 2059 | ], 2060 | "description": "Looks up which function or method a line of code belongs to", 2061 | "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", 2062 | "time": "2017-03-04T06:30:41+00:00" 2063 | }, 2064 | { 2065 | "name": "sebastian/comparator", 2066 | "version": "1.2.4", 2067 | "source": { 2068 | "type": "git", 2069 | "url": "https://github.com/sebastianbergmann/comparator.git", 2070 | "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be" 2071 | }, 2072 | "dist": { 2073 | "type": "zip", 2074 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", 2075 | "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", 2076 | "shasum": "" 2077 | }, 2078 | "require": { 2079 | "php": ">=5.3.3", 2080 | "sebastian/diff": "~1.2", 2081 | "sebastian/exporter": "~1.2 || ~2.0" 2082 | }, 2083 | "require-dev": { 2084 | "phpunit/phpunit": "~4.4" 2085 | }, 2086 | "type": "library", 2087 | "extra": { 2088 | "branch-alias": { 2089 | "dev-master": "1.2.x-dev" 2090 | } 2091 | }, 2092 | "autoload": { 2093 | "classmap": [ 2094 | "src/" 2095 | ] 2096 | }, 2097 | "notification-url": "https://packagist.org/downloads/", 2098 | "license": [ 2099 | "BSD-3-Clause" 2100 | ], 2101 | "authors": [ 2102 | { 2103 | "name": "Jeff Welch", 2104 | "email": "whatthejeff@gmail.com" 2105 | }, 2106 | { 2107 | "name": "Volker Dusch", 2108 | "email": "github@wallbash.com" 2109 | }, 2110 | { 2111 | "name": "Bernhard Schussek", 2112 | "email": "bschussek@2bepublished.at" 2113 | }, 2114 | { 2115 | "name": "Sebastian Bergmann", 2116 | "email": "sebastian@phpunit.de" 2117 | } 2118 | ], 2119 | "description": "Provides the functionality to compare PHP values for equality", 2120 | "homepage": "http://www.github.com/sebastianbergmann/comparator", 2121 | "keywords": [ 2122 | "comparator", 2123 | "compare", 2124 | "equality" 2125 | ], 2126 | "time": "2017-01-29T09:50:25+00:00" 2127 | }, 2128 | { 2129 | "name": "sebastian/diff", 2130 | "version": "1.4.3", 2131 | "source": { 2132 | "type": "git", 2133 | "url": "https://github.com/sebastianbergmann/diff.git", 2134 | "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4" 2135 | }, 2136 | "dist": { 2137 | "type": "zip", 2138 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4", 2139 | "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4", 2140 | "shasum": "" 2141 | }, 2142 | "require": { 2143 | "php": "^5.3.3 || ^7.0" 2144 | }, 2145 | "require-dev": { 2146 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" 2147 | }, 2148 | "type": "library", 2149 | "extra": { 2150 | "branch-alias": { 2151 | "dev-master": "1.4-dev" 2152 | } 2153 | }, 2154 | "autoload": { 2155 | "classmap": [ 2156 | "src/" 2157 | ] 2158 | }, 2159 | "notification-url": "https://packagist.org/downloads/", 2160 | "license": [ 2161 | "BSD-3-Clause" 2162 | ], 2163 | "authors": [ 2164 | { 2165 | "name": "Kore Nordmann", 2166 | "email": "mail@kore-nordmann.de" 2167 | }, 2168 | { 2169 | "name": "Sebastian Bergmann", 2170 | "email": "sebastian@phpunit.de" 2171 | } 2172 | ], 2173 | "description": "Diff implementation", 2174 | "homepage": "https://github.com/sebastianbergmann/diff", 2175 | "keywords": [ 2176 | "diff" 2177 | ], 2178 | "time": "2017-05-22T07:24:03+00:00" 2179 | }, 2180 | { 2181 | "name": "sebastian/environment", 2182 | "version": "2.0.0", 2183 | "source": { 2184 | "type": "git", 2185 | "url": "https://github.com/sebastianbergmann/environment.git", 2186 | "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac" 2187 | }, 2188 | "dist": { 2189 | "type": "zip", 2190 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5795ffe5dc5b02460c3e34222fee8cbe245d8fac", 2191 | "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac", 2192 | "shasum": "" 2193 | }, 2194 | "require": { 2195 | "php": "^5.6 || ^7.0" 2196 | }, 2197 | "require-dev": { 2198 | "phpunit/phpunit": "^5.0" 2199 | }, 2200 | "type": "library", 2201 | "extra": { 2202 | "branch-alias": { 2203 | "dev-master": "2.0.x-dev" 2204 | } 2205 | }, 2206 | "autoload": { 2207 | "classmap": [ 2208 | "src/" 2209 | ] 2210 | }, 2211 | "notification-url": "https://packagist.org/downloads/", 2212 | "license": [ 2213 | "BSD-3-Clause" 2214 | ], 2215 | "authors": [ 2216 | { 2217 | "name": "Sebastian Bergmann", 2218 | "email": "sebastian@phpunit.de" 2219 | } 2220 | ], 2221 | "description": "Provides functionality to handle HHVM/PHP environments", 2222 | "homepage": "http://www.github.com/sebastianbergmann/environment", 2223 | "keywords": [ 2224 | "Xdebug", 2225 | "environment", 2226 | "hhvm" 2227 | ], 2228 | "time": "2016-11-26T07:53:53+00:00" 2229 | }, 2230 | { 2231 | "name": "sebastian/exporter", 2232 | "version": "2.0.0", 2233 | "source": { 2234 | "type": "git", 2235 | "url": "https://github.com/sebastianbergmann/exporter.git", 2236 | "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4" 2237 | }, 2238 | "dist": { 2239 | "type": "zip", 2240 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4", 2241 | "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4", 2242 | "shasum": "" 2243 | }, 2244 | "require": { 2245 | "php": ">=5.3.3", 2246 | "sebastian/recursion-context": "~2.0" 2247 | }, 2248 | "require-dev": { 2249 | "ext-mbstring": "*", 2250 | "phpunit/phpunit": "~4.4" 2251 | }, 2252 | "type": "library", 2253 | "extra": { 2254 | "branch-alias": { 2255 | "dev-master": "2.0.x-dev" 2256 | } 2257 | }, 2258 | "autoload": { 2259 | "classmap": [ 2260 | "src/" 2261 | ] 2262 | }, 2263 | "notification-url": "https://packagist.org/downloads/", 2264 | "license": [ 2265 | "BSD-3-Clause" 2266 | ], 2267 | "authors": [ 2268 | { 2269 | "name": "Jeff Welch", 2270 | "email": "whatthejeff@gmail.com" 2271 | }, 2272 | { 2273 | "name": "Volker Dusch", 2274 | "email": "github@wallbash.com" 2275 | }, 2276 | { 2277 | "name": "Bernhard Schussek", 2278 | "email": "bschussek@2bepublished.at" 2279 | }, 2280 | { 2281 | "name": "Sebastian Bergmann", 2282 | "email": "sebastian@phpunit.de" 2283 | }, 2284 | { 2285 | "name": "Adam Harvey", 2286 | "email": "aharvey@php.net" 2287 | } 2288 | ], 2289 | "description": "Provides the functionality to export PHP variables for visualization", 2290 | "homepage": "http://www.github.com/sebastianbergmann/exporter", 2291 | "keywords": [ 2292 | "export", 2293 | "exporter" 2294 | ], 2295 | "time": "2016-11-19T08:54:04+00:00" 2296 | }, 2297 | { 2298 | "name": "sebastian/global-state", 2299 | "version": "1.1.1", 2300 | "source": { 2301 | "type": "git", 2302 | "url": "https://github.com/sebastianbergmann/global-state.git", 2303 | "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4" 2304 | }, 2305 | "dist": { 2306 | "type": "zip", 2307 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4", 2308 | "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4", 2309 | "shasum": "" 2310 | }, 2311 | "require": { 2312 | "php": ">=5.3.3" 2313 | }, 2314 | "require-dev": { 2315 | "phpunit/phpunit": "~4.2" 2316 | }, 2317 | "suggest": { 2318 | "ext-uopz": "*" 2319 | }, 2320 | "type": "library", 2321 | "extra": { 2322 | "branch-alias": { 2323 | "dev-master": "1.0-dev" 2324 | } 2325 | }, 2326 | "autoload": { 2327 | "classmap": [ 2328 | "src/" 2329 | ] 2330 | }, 2331 | "notification-url": "https://packagist.org/downloads/", 2332 | "license": [ 2333 | "BSD-3-Clause" 2334 | ], 2335 | "authors": [ 2336 | { 2337 | "name": "Sebastian Bergmann", 2338 | "email": "sebastian@phpunit.de" 2339 | } 2340 | ], 2341 | "description": "Snapshotting of global state", 2342 | "homepage": "http://www.github.com/sebastianbergmann/global-state", 2343 | "keywords": [ 2344 | "global state" 2345 | ], 2346 | "time": "2015-10-12T03:26:01+00:00" 2347 | }, 2348 | { 2349 | "name": "sebastian/object-enumerator", 2350 | "version": "2.0.1", 2351 | "source": { 2352 | "type": "git", 2353 | "url": "https://github.com/sebastianbergmann/object-enumerator.git", 2354 | "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7" 2355 | }, 2356 | "dist": { 2357 | "type": "zip", 2358 | "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1311872ac850040a79c3c058bea3e22d0f09cbb7", 2359 | "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7", 2360 | "shasum": "" 2361 | }, 2362 | "require": { 2363 | "php": ">=5.6", 2364 | "sebastian/recursion-context": "~2.0" 2365 | }, 2366 | "require-dev": { 2367 | "phpunit/phpunit": "~5" 2368 | }, 2369 | "type": "library", 2370 | "extra": { 2371 | "branch-alias": { 2372 | "dev-master": "2.0.x-dev" 2373 | } 2374 | }, 2375 | "autoload": { 2376 | "classmap": [ 2377 | "src/" 2378 | ] 2379 | }, 2380 | "notification-url": "https://packagist.org/downloads/", 2381 | "license": [ 2382 | "BSD-3-Clause" 2383 | ], 2384 | "authors": [ 2385 | { 2386 | "name": "Sebastian Bergmann", 2387 | "email": "sebastian@phpunit.de" 2388 | } 2389 | ], 2390 | "description": "Traverses array structures and object graphs to enumerate all referenced objects", 2391 | "homepage": "https://github.com/sebastianbergmann/object-enumerator/", 2392 | "time": "2017-02-18T15:18:39+00:00" 2393 | }, 2394 | { 2395 | "name": "sebastian/recursion-context", 2396 | "version": "2.0.0", 2397 | "source": { 2398 | "type": "git", 2399 | "url": "https://github.com/sebastianbergmann/recursion-context.git", 2400 | "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a" 2401 | }, 2402 | "dist": { 2403 | "type": "zip", 2404 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/2c3ba150cbec723aa057506e73a8d33bdb286c9a", 2405 | "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a", 2406 | "shasum": "" 2407 | }, 2408 | "require": { 2409 | "php": ">=5.3.3" 2410 | }, 2411 | "require-dev": { 2412 | "phpunit/phpunit": "~4.4" 2413 | }, 2414 | "type": "library", 2415 | "extra": { 2416 | "branch-alias": { 2417 | "dev-master": "2.0.x-dev" 2418 | } 2419 | }, 2420 | "autoload": { 2421 | "classmap": [ 2422 | "src/" 2423 | ] 2424 | }, 2425 | "notification-url": "https://packagist.org/downloads/", 2426 | "license": [ 2427 | "BSD-3-Clause" 2428 | ], 2429 | "authors": [ 2430 | { 2431 | "name": "Jeff Welch", 2432 | "email": "whatthejeff@gmail.com" 2433 | }, 2434 | { 2435 | "name": "Sebastian Bergmann", 2436 | "email": "sebastian@phpunit.de" 2437 | }, 2438 | { 2439 | "name": "Adam Harvey", 2440 | "email": "aharvey@php.net" 2441 | } 2442 | ], 2443 | "description": "Provides functionality to recursively process PHP variables", 2444 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context", 2445 | "time": "2016-11-19T07:33:16+00:00" 2446 | }, 2447 | { 2448 | "name": "sebastian/resource-operations", 2449 | "version": "1.0.0", 2450 | "source": { 2451 | "type": "git", 2452 | "url": "https://github.com/sebastianbergmann/resource-operations.git", 2453 | "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" 2454 | }, 2455 | "dist": { 2456 | "type": "zip", 2457 | "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", 2458 | "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", 2459 | "shasum": "" 2460 | }, 2461 | "require": { 2462 | "php": ">=5.6.0" 2463 | }, 2464 | "type": "library", 2465 | "extra": { 2466 | "branch-alias": { 2467 | "dev-master": "1.0.x-dev" 2468 | } 2469 | }, 2470 | "autoload": { 2471 | "classmap": [ 2472 | "src/" 2473 | ] 2474 | }, 2475 | "notification-url": "https://packagist.org/downloads/", 2476 | "license": [ 2477 | "BSD-3-Clause" 2478 | ], 2479 | "authors": [ 2480 | { 2481 | "name": "Sebastian Bergmann", 2482 | "email": "sebastian@phpunit.de" 2483 | } 2484 | ], 2485 | "description": "Provides a list of PHP built-in functions that operate on resources", 2486 | "homepage": "https://www.github.com/sebastianbergmann/resource-operations", 2487 | "time": "2015-07-28T20:34:47+00:00" 2488 | }, 2489 | { 2490 | "name": "sebastian/version", 2491 | "version": "2.0.1", 2492 | "source": { 2493 | "type": "git", 2494 | "url": "https://github.com/sebastianbergmann/version.git", 2495 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" 2496 | }, 2497 | "dist": { 2498 | "type": "zip", 2499 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", 2500 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", 2501 | "shasum": "" 2502 | }, 2503 | "require": { 2504 | "php": ">=5.6" 2505 | }, 2506 | "type": "library", 2507 | "extra": { 2508 | "branch-alias": { 2509 | "dev-master": "2.0.x-dev" 2510 | } 2511 | }, 2512 | "autoload": { 2513 | "classmap": [ 2514 | "src/" 2515 | ] 2516 | }, 2517 | "notification-url": "https://packagist.org/downloads/", 2518 | "license": [ 2519 | "BSD-3-Clause" 2520 | ], 2521 | "authors": [ 2522 | { 2523 | "name": "Sebastian Bergmann", 2524 | "email": "sebastian@phpunit.de", 2525 | "role": "lead" 2526 | } 2527 | ], 2528 | "description": "Library that helps with managing the version number of Git-hosted PHP projects", 2529 | "homepage": "https://github.com/sebastianbergmann/version", 2530 | "time": "2016-10-03T07:35:21+00:00" 2531 | }, 2532 | { 2533 | "name": "squizlabs/php_codesniffer", 2534 | "version": "2.9.2", 2535 | "source": { 2536 | "type": "git", 2537 | "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", 2538 | "reference": "2acf168de78487db620ab4bc524135a13cfe6745" 2539 | }, 2540 | "dist": { 2541 | "type": "zip", 2542 | "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/2acf168de78487db620ab4bc524135a13cfe6745", 2543 | "reference": "2acf168de78487db620ab4bc524135a13cfe6745", 2544 | "shasum": "" 2545 | }, 2546 | "require": { 2547 | "ext-simplexml": "*", 2548 | "ext-tokenizer": "*", 2549 | "ext-xmlwriter": "*", 2550 | "php": ">=5.1.2" 2551 | }, 2552 | "require-dev": { 2553 | "phpunit/phpunit": "~4.0" 2554 | }, 2555 | "bin": [ 2556 | "scripts/phpcs", 2557 | "scripts/phpcbf" 2558 | ], 2559 | "type": "library", 2560 | "extra": { 2561 | "branch-alias": { 2562 | "dev-master": "2.x-dev" 2563 | } 2564 | }, 2565 | "autoload": { 2566 | "classmap": [ 2567 | "CodeSniffer.php", 2568 | "CodeSniffer/CLI.php", 2569 | "CodeSniffer/Exception.php", 2570 | "CodeSniffer/File.php", 2571 | "CodeSniffer/Fixer.php", 2572 | "CodeSniffer/Report.php", 2573 | "CodeSniffer/Reporting.php", 2574 | "CodeSniffer/Sniff.php", 2575 | "CodeSniffer/Tokens.php", 2576 | "CodeSniffer/Reports/", 2577 | "CodeSniffer/Tokenizers/", 2578 | "CodeSniffer/DocGenerators/", 2579 | "CodeSniffer/Standards/AbstractPatternSniff.php", 2580 | "CodeSniffer/Standards/AbstractScopeSniff.php", 2581 | "CodeSniffer/Standards/AbstractVariableSniff.php", 2582 | "CodeSniffer/Standards/IncorrectPatternException.php", 2583 | "CodeSniffer/Standards/Generic/Sniffs/", 2584 | "CodeSniffer/Standards/MySource/Sniffs/", 2585 | "CodeSniffer/Standards/PEAR/Sniffs/", 2586 | "CodeSniffer/Standards/PSR1/Sniffs/", 2587 | "CodeSniffer/Standards/PSR2/Sniffs/", 2588 | "CodeSniffer/Standards/Squiz/Sniffs/", 2589 | "CodeSniffer/Standards/Zend/Sniffs/" 2590 | ] 2591 | }, 2592 | "notification-url": "https://packagist.org/downloads/", 2593 | "license": [ 2594 | "BSD-3-Clause" 2595 | ], 2596 | "authors": [ 2597 | { 2598 | "name": "Greg Sherwood", 2599 | "role": "lead" 2600 | } 2601 | ], 2602 | "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", 2603 | "homepage": "http://www.squizlabs.com/php-codesniffer", 2604 | "keywords": [ 2605 | "phpcs", 2606 | "standards" 2607 | ], 2608 | "time": "2018-11-07T22:31:41+00:00" 2609 | }, 2610 | { 2611 | "name": "symfony/console", 2612 | "version": "v4.3.4", 2613 | "source": { 2614 | "type": "git", 2615 | "url": "https://github.com/symfony/console.git", 2616 | "reference": "de63799239b3881b8a08f8481b22348f77ed7b36" 2617 | }, 2618 | "dist": { 2619 | "type": "zip", 2620 | "url": "https://api.github.com/repos/symfony/console/zipball/de63799239b3881b8a08f8481b22348f77ed7b36", 2621 | "reference": "de63799239b3881b8a08f8481b22348f77ed7b36", 2622 | "shasum": "" 2623 | }, 2624 | "require": { 2625 | "php": "^7.1.3", 2626 | "symfony/polyfill-mbstring": "~1.0", 2627 | "symfony/polyfill-php73": "^1.8", 2628 | "symfony/service-contracts": "^1.1" 2629 | }, 2630 | "conflict": { 2631 | "symfony/dependency-injection": "<3.4", 2632 | "symfony/event-dispatcher": "<4.3", 2633 | "symfony/process": "<3.3" 2634 | }, 2635 | "provide": { 2636 | "psr/log-implementation": "1.0" 2637 | }, 2638 | "require-dev": { 2639 | "psr/log": "~1.0", 2640 | "symfony/config": "~3.4|~4.0", 2641 | "symfony/dependency-injection": "~3.4|~4.0", 2642 | "symfony/event-dispatcher": "^4.3", 2643 | "symfony/lock": "~3.4|~4.0", 2644 | "symfony/process": "~3.4|~4.0", 2645 | "symfony/var-dumper": "^4.3" 2646 | }, 2647 | "suggest": { 2648 | "psr/log": "For using the console logger", 2649 | "symfony/event-dispatcher": "", 2650 | "symfony/lock": "", 2651 | "symfony/process": "" 2652 | }, 2653 | "type": "library", 2654 | "extra": { 2655 | "branch-alias": { 2656 | "dev-master": "4.3-dev" 2657 | } 2658 | }, 2659 | "autoload": { 2660 | "psr-4": { 2661 | "Symfony\\Component\\Console\\": "" 2662 | }, 2663 | "exclude-from-classmap": [ 2664 | "/Tests/" 2665 | ] 2666 | }, 2667 | "notification-url": "https://packagist.org/downloads/", 2668 | "license": [ 2669 | "MIT" 2670 | ], 2671 | "authors": [ 2672 | { 2673 | "name": "Fabien Potencier", 2674 | "email": "fabien@symfony.com" 2675 | }, 2676 | { 2677 | "name": "Symfony Community", 2678 | "homepage": "https://symfony.com/contributors" 2679 | } 2680 | ], 2681 | "description": "Symfony Console Component", 2682 | "homepage": "https://symfony.com", 2683 | "time": "2019-08-26T08:26:39+00:00" 2684 | }, 2685 | { 2686 | "name": "symfony/polyfill-ctype", 2687 | "version": "v1.12.0", 2688 | "source": { 2689 | "type": "git", 2690 | "url": "https://github.com/symfony/polyfill-ctype.git", 2691 | "reference": "550ebaac289296ce228a706d0867afc34687e3f4" 2692 | }, 2693 | "dist": { 2694 | "type": "zip", 2695 | "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/550ebaac289296ce228a706d0867afc34687e3f4", 2696 | "reference": "550ebaac289296ce228a706d0867afc34687e3f4", 2697 | "shasum": "" 2698 | }, 2699 | "require": { 2700 | "php": ">=5.3.3" 2701 | }, 2702 | "suggest": { 2703 | "ext-ctype": "For best performance" 2704 | }, 2705 | "type": "library", 2706 | "extra": { 2707 | "branch-alias": { 2708 | "dev-master": "1.12-dev" 2709 | } 2710 | }, 2711 | "autoload": { 2712 | "psr-4": { 2713 | "Symfony\\Polyfill\\Ctype\\": "" 2714 | }, 2715 | "files": [ 2716 | "bootstrap.php" 2717 | ] 2718 | }, 2719 | "notification-url": "https://packagist.org/downloads/", 2720 | "license": [ 2721 | "MIT" 2722 | ], 2723 | "authors": [ 2724 | { 2725 | "name": "Gert de Pagter", 2726 | "email": "BackEndTea@gmail.com" 2727 | }, 2728 | { 2729 | "name": "Symfony Community", 2730 | "homepage": "https://symfony.com/contributors" 2731 | } 2732 | ], 2733 | "description": "Symfony polyfill for ctype functions", 2734 | "homepage": "https://symfony.com", 2735 | "keywords": [ 2736 | "compatibility", 2737 | "ctype", 2738 | "polyfill", 2739 | "portable" 2740 | ], 2741 | "time": "2019-08-06T08:03:45+00:00" 2742 | }, 2743 | { 2744 | "name": "symfony/polyfill-php73", 2745 | "version": "v1.12.0", 2746 | "source": { 2747 | "type": "git", 2748 | "url": "https://github.com/symfony/polyfill-php73.git", 2749 | "reference": "2ceb49eaccb9352bff54d22570276bb75ba4a188" 2750 | }, 2751 | "dist": { 2752 | "type": "zip", 2753 | "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/2ceb49eaccb9352bff54d22570276bb75ba4a188", 2754 | "reference": "2ceb49eaccb9352bff54d22570276bb75ba4a188", 2755 | "shasum": "" 2756 | }, 2757 | "require": { 2758 | "php": ">=5.3.3" 2759 | }, 2760 | "type": "library", 2761 | "extra": { 2762 | "branch-alias": { 2763 | "dev-master": "1.12-dev" 2764 | } 2765 | }, 2766 | "autoload": { 2767 | "psr-4": { 2768 | "Symfony\\Polyfill\\Php73\\": "" 2769 | }, 2770 | "files": [ 2771 | "bootstrap.php" 2772 | ], 2773 | "classmap": [ 2774 | "Resources/stubs" 2775 | ] 2776 | }, 2777 | "notification-url": "https://packagist.org/downloads/", 2778 | "license": [ 2779 | "MIT" 2780 | ], 2781 | "authors": [ 2782 | { 2783 | "name": "Nicolas Grekas", 2784 | "email": "p@tchwork.com" 2785 | }, 2786 | { 2787 | "name": "Symfony Community", 2788 | "homepage": "https://symfony.com/contributors" 2789 | } 2790 | ], 2791 | "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", 2792 | "homepage": "https://symfony.com", 2793 | "keywords": [ 2794 | "compatibility", 2795 | "polyfill", 2796 | "portable", 2797 | "shim" 2798 | ], 2799 | "time": "2019-08-06T08:03:45+00:00" 2800 | }, 2801 | { 2802 | "name": "symfony/process", 2803 | "version": "v4.3.4", 2804 | "source": { 2805 | "type": "git", 2806 | "url": "https://github.com/symfony/process.git", 2807 | "reference": "e89969c00d762349f078db1128506f7f3dcc0d4a" 2808 | }, 2809 | "dist": { 2810 | "type": "zip", 2811 | "url": "https://api.github.com/repos/symfony/process/zipball/e89969c00d762349f078db1128506f7f3dcc0d4a", 2812 | "reference": "e89969c00d762349f078db1128506f7f3dcc0d4a", 2813 | "shasum": "" 2814 | }, 2815 | "require": { 2816 | "php": "^7.1.3" 2817 | }, 2818 | "type": "library", 2819 | "extra": { 2820 | "branch-alias": { 2821 | "dev-master": "4.3-dev" 2822 | } 2823 | }, 2824 | "autoload": { 2825 | "psr-4": { 2826 | "Symfony\\Component\\Process\\": "" 2827 | }, 2828 | "exclude-from-classmap": [ 2829 | "/Tests/" 2830 | ] 2831 | }, 2832 | "notification-url": "https://packagist.org/downloads/", 2833 | "license": [ 2834 | "MIT" 2835 | ], 2836 | "authors": [ 2837 | { 2838 | "name": "Fabien Potencier", 2839 | "email": "fabien@symfony.com" 2840 | }, 2841 | { 2842 | "name": "Symfony Community", 2843 | "homepage": "https://symfony.com/contributors" 2844 | } 2845 | ], 2846 | "description": "Symfony Process Component", 2847 | "homepage": "https://symfony.com", 2848 | "time": "2019-08-26T08:26:39+00:00" 2849 | }, 2850 | { 2851 | "name": "symfony/service-contracts", 2852 | "version": "v1.1.6", 2853 | "source": { 2854 | "type": "git", 2855 | "url": "https://github.com/symfony/service-contracts.git", 2856 | "reference": "ea7263d6b6d5f798b56a45a5b8d686725f2719a3" 2857 | }, 2858 | "dist": { 2859 | "type": "zip", 2860 | "url": "https://api.github.com/repos/symfony/service-contracts/zipball/ea7263d6b6d5f798b56a45a5b8d686725f2719a3", 2861 | "reference": "ea7263d6b6d5f798b56a45a5b8d686725f2719a3", 2862 | "shasum": "" 2863 | }, 2864 | "require": { 2865 | "php": "^7.1.3", 2866 | "psr/container": "^1.0" 2867 | }, 2868 | "suggest": { 2869 | "symfony/service-implementation": "" 2870 | }, 2871 | "type": "library", 2872 | "extra": { 2873 | "branch-alias": { 2874 | "dev-master": "1.1-dev" 2875 | } 2876 | }, 2877 | "autoload": { 2878 | "psr-4": { 2879 | "Symfony\\Contracts\\Service\\": "" 2880 | } 2881 | }, 2882 | "notification-url": "https://packagist.org/downloads/", 2883 | "license": [ 2884 | "MIT" 2885 | ], 2886 | "authors": [ 2887 | { 2888 | "name": "Nicolas Grekas", 2889 | "email": "p@tchwork.com" 2890 | }, 2891 | { 2892 | "name": "Symfony Community", 2893 | "homepage": "https://symfony.com/contributors" 2894 | } 2895 | ], 2896 | "description": "Generic abstractions related to writing services", 2897 | "homepage": "https://symfony.com", 2898 | "keywords": [ 2899 | "abstractions", 2900 | "contracts", 2901 | "decoupling", 2902 | "interfaces", 2903 | "interoperability", 2904 | "standards" 2905 | ], 2906 | "time": "2019-08-20T14:44:19+00:00" 2907 | }, 2908 | { 2909 | "name": "symfony/yaml", 2910 | "version": "v4.3.4", 2911 | "source": { 2912 | "type": "git", 2913 | "url": "https://github.com/symfony/yaml.git", 2914 | "reference": "5a0b7c32dc3ec56fd4abae8a4a71b0cf05013686" 2915 | }, 2916 | "dist": { 2917 | "type": "zip", 2918 | "url": "https://api.github.com/repos/symfony/yaml/zipball/5a0b7c32dc3ec56fd4abae8a4a71b0cf05013686", 2919 | "reference": "5a0b7c32dc3ec56fd4abae8a4a71b0cf05013686", 2920 | "shasum": "" 2921 | }, 2922 | "require": { 2923 | "php": "^7.1.3", 2924 | "symfony/polyfill-ctype": "~1.8" 2925 | }, 2926 | "conflict": { 2927 | "symfony/console": "<3.4" 2928 | }, 2929 | "require-dev": { 2930 | "symfony/console": "~3.4|~4.0" 2931 | }, 2932 | "suggest": { 2933 | "symfony/console": "For validating YAML files using the lint command" 2934 | }, 2935 | "type": "library", 2936 | "extra": { 2937 | "branch-alias": { 2938 | "dev-master": "4.3-dev" 2939 | } 2940 | }, 2941 | "autoload": { 2942 | "psr-4": { 2943 | "Symfony\\Component\\Yaml\\": "" 2944 | }, 2945 | "exclude-from-classmap": [ 2946 | "/Tests/" 2947 | ] 2948 | }, 2949 | "notification-url": "https://packagist.org/downloads/", 2950 | "license": [ 2951 | "MIT" 2952 | ], 2953 | "authors": [ 2954 | { 2955 | "name": "Fabien Potencier", 2956 | "email": "fabien@symfony.com" 2957 | }, 2958 | { 2959 | "name": "Symfony Community", 2960 | "homepage": "https://symfony.com/contributors" 2961 | } 2962 | ], 2963 | "description": "Symfony Yaml Component", 2964 | "homepage": "https://symfony.com", 2965 | "time": "2019-08-20T14:27:59+00:00" 2966 | }, 2967 | { 2968 | "name": "webmozart/assert", 2969 | "version": "1.5.0", 2970 | "source": { 2971 | "type": "git", 2972 | "url": "https://github.com/webmozart/assert.git", 2973 | "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4" 2974 | }, 2975 | "dist": { 2976 | "type": "zip", 2977 | "url": "https://api.github.com/repos/webmozart/assert/zipball/88e6d84706d09a236046d686bbea96f07b3a34f4", 2978 | "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4", 2979 | "shasum": "" 2980 | }, 2981 | "require": { 2982 | "php": "^5.3.3 || ^7.0", 2983 | "symfony/polyfill-ctype": "^1.8" 2984 | }, 2985 | "require-dev": { 2986 | "phpunit/phpunit": "^4.8.36 || ^7.5.13" 2987 | }, 2988 | "type": "library", 2989 | "extra": { 2990 | "branch-alias": { 2991 | "dev-master": "1.3-dev" 2992 | } 2993 | }, 2994 | "autoload": { 2995 | "psr-4": { 2996 | "Webmozart\\Assert\\": "src/" 2997 | } 2998 | }, 2999 | "notification-url": "https://packagist.org/downloads/", 3000 | "license": [ 3001 | "MIT" 3002 | ], 3003 | "authors": [ 3004 | { 3005 | "name": "Bernhard Schussek", 3006 | "email": "bschussek@gmail.com" 3007 | } 3008 | ], 3009 | "description": "Assertions to validate method input/output with nice error messages.", 3010 | "keywords": [ 3011 | "assert", 3012 | "check", 3013 | "validate" 3014 | ], 3015 | "time": "2019-08-24T08:43:50+00:00" 3016 | } 3017 | ], 3018 | "aliases": [], 3019 | "minimum-stability": "stable", 3020 | "stability-flags": [], 3021 | "prefer-stable": false, 3022 | "prefer-lowest": false, 3023 | "platform": { 3024 | "php": ">=5.4.0" 3025 | }, 3026 | "platform-dev": [] 3027 | } 3028 | -------------------------------------------------------------------------------- /config/datadog-helper.php: -------------------------------------------------------------------------------- 1 | true, 14 | 15 | /* 16 | |-------------------------------------------------------------------------- 17 | | Datadog Tracking Prefix 18 | |-------------------------------------------------------------------------- 19 | | 20 | | This is the prefix that will be placed in front of all of your metric entries. If you have multiple 21 | | applications being tracked in Datadog, it is recommended putting the application name somewhere 22 | | inside of your prefix. A common naming scheme is something like app.. 23 | | 24 | */ 25 | 'prefix' => null, // metrics prefix 26 | 27 | 'api_key' => null, 28 | 29 | 'application_key' => null, 30 | 31 | 'datadog_host' => 'https://app.datadoghq.com', 32 | 33 | 'statsd_server' => 'localhost', 34 | 35 | 'statsd_port' => 8125, 36 | 37 | 'statsd_socket_path' => null, 38 | 39 | 'global_tags' => [], 40 | 41 | 'max_buffer_length' => 1, 42 | 43 | /* 44 | |-------------------------------------------------------------------------- 45 | | Disable tagging request durations with url 46 | |-------------------------------------------------------------------------- 47 | | 48 | | Sites with large numbers of unique URIs can cause excessive unique tags for a metric which results 49 | | in Datadog being unhappy (to the point of being unresponsive). 50 | | 51 | */ 52 | 'middleware_disable_url_tag' => false, 53 | ]; 54 | -------------------------------------------------------------------------------- /datadog-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chaseconey/laravel-datadog-helper/882ef0af6b714591b7c11dda471f79dc46ac7c6d/datadog-screen.png -------------------------------------------------------------------------------- /src/Datadog.php: -------------------------------------------------------------------------------- 1 | wrapSendDataWithMetricPrefix($data), $sampleRate, $tags); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/Datadog/DogStatsd.php: -------------------------------------------------------------------------------- 1 | wrapSendDataWithMetricPrefix($data), $sampleRate, $tags); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/Datadog/ExtensionTrait.php: -------------------------------------------------------------------------------- 1 | metricsPrefix = $metricsPrefix; 10 | } 11 | 12 | protected function wrapSendDataWithMetricPrefix($data) 13 | { 14 | if (!$this->metricsPrefix) { 15 | return $data; 16 | } 17 | 18 | $wrapped = []; 19 | foreach ($data as $metric => $stat) { 20 | $wrapped[$this->metricsPrefix . '.'. $metric] = $stat; 21 | } 22 | return $wrapped; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/LaravelDatadogHelperServiceProvider.php: -------------------------------------------------------------------------------- 1 | publishes( 21 | [ 22 | __DIR__ . '/../config/datadog-helper.php' => config_path('datadog-helper.php'), 23 | ] 24 | ); 25 | } 26 | 27 | /** 28 | * Register any package services. 29 | * 30 | * @return void 31 | */ 32 | public function register() 33 | { 34 | $this->app->singleton('datadog', function () { 35 | return $this->initDatadog(); 36 | }); 37 | } 38 | 39 | protected function initDatadog() 40 | { 41 | $this->mergeConfigFrom( 42 | __DIR__ . '/../config/datadog-helper.php', 43 | 'datadog-helper' 44 | ); 45 | 46 | /** @noinspection PhpUndefinedFunctionInspection */ 47 | $laravelConfig = config('datadog-helper'); 48 | 49 | $ddConfig = [ 50 | 'host' => $laravelConfig['statsd_server'], 51 | 'port' => $laravelConfig['statsd_port'], 52 | 'socket_path' => $laravelConfig['statsd_socket_path'], 53 | 'datadog_host' => $laravelConfig['datadog_host'], 54 | 'api_key' => $laravelConfig['api_key'], 55 | 'app_key' => $laravelConfig['application_key'], 56 | 'global_tags' => $laravelConfig['global_tags'], 57 | ]; 58 | 59 | $maxBuffer = $laravelConfig['max_buffer_length']; 60 | if ($maxBuffer > 1) { 61 | $datadog = new BatchedDogStatsd($ddConfig); 62 | $datadog::$maxBufferLength = $maxBuffer; 63 | } else { 64 | $datadog = new DogStatsd($ddConfig); 65 | } 66 | 67 | $datadog->setMetricsPrefix($laravelConfig['prefix']); 68 | 69 | return $datadog; 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /src/Middleware/LaravelDatadogMiddleware.php: -------------------------------------------------------------------------------- 1 | $response->getStatusCode() 44 | ]; 45 | 46 | if (!config('datadog-helper.middleware_disable_url_tag', false)) { 47 | $tags["url"] = $request->getSchemeAndHttpHost() . $request->getRequestUri(); 48 | } 49 | 50 | Datadog::microtiming('request_time', $duration, 1, $tags); 51 | } 52 | } 53 | --------------------------------------------------------------------------------