├── .editorconfig ├── .gitignore ├── LICENSE ├── README.md ├── composer.json ├── composer.lock ├── phpcs.xml ├── plugin.php └── src └── class-wp-glide.php /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.php] 12 | indent_style = tab 13 | indent_size = 4 14 | 15 | [*.md] 16 | trim_trailing_whitespace = false 17 | 18 | [Makefile] 19 | indent_style = tab 20 | indent_size = 8 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | vendor 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Fredrik Forsmo 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # WP Glide 2 | 3 | [![No Maintenance Intended](http://unmaintained.tech/badge.svg)](http://unmaintained.tech/) 4 | 5 | Simple integration of [Glide](http://glide.thephpleague.com/) with WordPress. 6 | 7 | ## Installation 8 | 9 | ``` 10 | composer require frozzare/wp-glide 11 | ``` 12 | 13 | ## Documentation 14 | 15 | Default url path is `/img/`. So just change `/wp-content/uploads/` to `/img/` to use Glide. 16 | 17 | For example: 18 | 19 | ``` 20 | Before: http://local.wordpress.dev/wp-content/uploads/2015/11/stf01381_1600x800.jpg 21 | After: http://local.wordpress.dev/img/2015/11/stf01381_1600x800.jpg 22 | ``` 23 | 24 | You can change the upload url path with `pre_option_upload_url_path` filter. 25 | 26 | ```php 27 | add_filter( 'pre_option_upload_url_path', function () { 28 | return site_url( '/img' ); 29 | } ); 30 | ``` 31 | 32 | The base path can be changed with `glide/base_url` filter. To change any options for Glide you can do it with `glide/options` filter. The default options in WP Glide is: 33 | 34 | ```php 35 | 'source' => WP_CONTENT_DIR . '/uploads', 36 | 'cache' => WP_CONTENT_DIR . '/cache/glide', 37 | 'base_url' => '/img/' 38 | ``` 39 | 40 | For more options see [Glide setup](http://glide.thephpleague.com/1.0/config/setup/). 41 | 42 | ## Coding style 43 | 44 | You can check if your contribution passes the styleguide by installing [PHP CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) and running the following in your WP Glide directory: 45 | 46 | ``` 47 | vendor/bin/phpcs -s --extensions=php --standard=phpcs.xml src/ 48 | ``` 49 | 50 | ## License 51 | 52 | MIT © [Fredrik Forsmo](https://github.com/frozzare) 53 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "frozzare/wp-glide", 3 | "type": "wordpress-plugin", 4 | "license": "MIT", 5 | "description": "Simple integration of Glide with WordPress", 6 | "homepage": "https://github.com/frozzare/wp-glide", 7 | "authors": [{ 8 | "name": "Fredrik Forsmo", 9 | "email": "fredrik.forsmo@gmail.com", 10 | "homepage": "https://github.com/frozzare" 11 | }], 12 | "keywords": [ 13 | "wordpress", 14 | "glide", 15 | "images" 16 | ], 17 | "require": { 18 | "php": "^5.5.9 || ^7.0", 19 | "league/glide": "^1.0" 20 | }, 21 | "scripts": { 22 | "post-install-cmd": "if [ -f vendor/bin/phpcs ]; then \"vendor/bin/phpcs\" --config-set installed_paths vendor/wp-coding-standards/wpcs; fi", 23 | "post-update-cmd": "if [ -f vendor/bin/phpcs ]; then \"vendor/bin/phpcs\" --config-set installed_paths vendor/wp-coding-standards/wpcs; fi" 24 | }, 25 | "minimum-stability": "dev", 26 | "prefer-stable": true 27 | } 28 | -------------------------------------------------------------------------------- /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#composer-lock-the-lock-file", 5 | "This file is @generated automatically" 6 | ], 7 | "hash": "b7687cc428d448714ebfb64e0f6a66da", 8 | "content-hash": "531871f277e01a29b6581b78aa60175d", 9 | "packages": [ 10 | { 11 | "name": "guzzlehttp/psr7", 12 | "version": "1.2.3", 13 | "source": { 14 | "type": "git", 15 | "url": "https://github.com/guzzle/psr7.git", 16 | "reference": "2e89629ff057ebb49492ba08e6995d3a6a80021b" 17 | }, 18 | "dist": { 19 | "type": "zip", 20 | "url": "https://api.github.com/repos/guzzle/psr7/zipball/2e89629ff057ebb49492ba08e6995d3a6a80021b", 21 | "reference": "2e89629ff057ebb49492ba08e6995d3a6a80021b", 22 | "shasum": "" 23 | }, 24 | "require": { 25 | "php": ">=5.4.0", 26 | "psr/http-message": "~1.0" 27 | }, 28 | "provide": { 29 | "psr/http-message-implementation": "1.0" 30 | }, 31 | "require-dev": { 32 | "phpunit/phpunit": "~4.0" 33 | }, 34 | "type": "library", 35 | "extra": { 36 | "branch-alias": { 37 | "dev-master": "1.0-dev" 38 | } 39 | }, 40 | "autoload": { 41 | "psr-4": { 42 | "GuzzleHttp\\Psr7\\": "src/" 43 | }, 44 | "files": [ 45 | "src/functions_include.php" 46 | ] 47 | }, 48 | "notification-url": "https://packagist.org/downloads/", 49 | "license": [ 50 | "MIT" 51 | ], 52 | "authors": [ 53 | { 54 | "name": "Michael Dowling", 55 | "email": "mtdowling@gmail.com", 56 | "homepage": "https://github.com/mtdowling" 57 | } 58 | ], 59 | "description": "PSR-7 message implementation", 60 | "keywords": [ 61 | "http", 62 | "message", 63 | "stream", 64 | "uri" 65 | ], 66 | "time": "2016-02-18 21:54:00" 67 | }, 68 | { 69 | "name": "intervention/image", 70 | "version": "2.3.6", 71 | "source": { 72 | "type": "git", 73 | "url": "https://github.com/Intervention/image.git", 74 | "reference": "e368d262887dbb2fdfaf710880571ede51e9c0e6" 75 | }, 76 | "dist": { 77 | "type": "zip", 78 | "url": "https://api.github.com/repos/Intervention/image/zipball/e368d262887dbb2fdfaf710880571ede51e9c0e6", 79 | "reference": "e368d262887dbb2fdfaf710880571ede51e9c0e6", 80 | "shasum": "" 81 | }, 82 | "require": { 83 | "ext-fileinfo": "*", 84 | "guzzlehttp/psr7": "~1.1", 85 | "php": ">=5.4.0" 86 | }, 87 | "require-dev": { 88 | "mockery/mockery": "~0.9.2", 89 | "phpunit/phpunit": "3.*" 90 | }, 91 | "suggest": { 92 | "ext-gd": "to use GD library based image processing.", 93 | "ext-imagick": "to use Imagick based image processing.", 94 | "intervention/imagecache": "Caching extension for the Intervention Image library" 95 | }, 96 | "type": "library", 97 | "extra": { 98 | "branch-alias": { 99 | "dev-master": "2.3-dev" 100 | } 101 | }, 102 | "autoload": { 103 | "psr-4": { 104 | "Intervention\\Image\\": "src/Intervention/Image" 105 | } 106 | }, 107 | "notification-url": "https://packagist.org/downloads/", 108 | "license": [ 109 | "MIT" 110 | ], 111 | "authors": [ 112 | { 113 | "name": "Oliver Vogel", 114 | "email": "oliver@olivervogel.net", 115 | "homepage": "http://olivervogel.net/" 116 | } 117 | ], 118 | "description": "Image handling and manipulation library with support for Laravel integration", 119 | "homepage": "http://image.intervention.io/", 120 | "keywords": [ 121 | "gd", 122 | "image", 123 | "imagick", 124 | "laravel", 125 | "thumbnail", 126 | "watermark" 127 | ], 128 | "time": "2016-02-26 18:18:19" 129 | }, 130 | { 131 | "name": "league/flysystem", 132 | "version": "1.0.18", 133 | "source": { 134 | "type": "git", 135 | "url": "https://github.com/thephpleague/flysystem.git", 136 | "reference": "b334d6c5f95364948e06d2f620ab93d084074c6e" 137 | }, 138 | "dist": { 139 | "type": "zip", 140 | "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/b334d6c5f95364948e06d2f620ab93d084074c6e", 141 | "reference": "b334d6c5f95364948e06d2f620ab93d084074c6e", 142 | "shasum": "" 143 | }, 144 | "require": { 145 | "php": ">=5.4.0" 146 | }, 147 | "conflict": { 148 | "league/flysystem-sftp": "<1.0.6" 149 | }, 150 | "require-dev": { 151 | "ext-fileinfo": "*", 152 | "mockery/mockery": "~0.9", 153 | "phpspec/phpspec": "^2.2", 154 | "phpunit/phpunit": "~4.8 || ~5.0" 155 | }, 156 | "suggest": { 157 | "ext-fileinfo": "Required for MimeType", 158 | "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2", 159 | "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3", 160 | "league/flysystem-azure": "Allows you to use Windows Azure Blob storage", 161 | "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching", 162 | "league/flysystem-copy": "Allows you to use Copy.com storage", 163 | "league/flysystem-dropbox": "Allows you to use Dropbox storage", 164 | "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem", 165 | "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files", 166 | "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib", 167 | "league/flysystem-webdav": "Allows you to use WebDAV storage", 168 | "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter" 169 | }, 170 | "type": "library", 171 | "extra": { 172 | "branch-alias": { 173 | "dev-master": "1.1-dev" 174 | } 175 | }, 176 | "autoload": { 177 | "psr-4": { 178 | "League\\Flysystem\\": "src/" 179 | } 180 | }, 181 | "notification-url": "https://packagist.org/downloads/", 182 | "license": [ 183 | "MIT" 184 | ], 185 | "authors": [ 186 | { 187 | "name": "Frank de Jonge", 188 | "email": "info@frenky.net" 189 | } 190 | ], 191 | "description": "Filesystem abstraction: Many filesystems, one API.", 192 | "keywords": [ 193 | "Cloud Files", 194 | "WebDAV", 195 | "abstraction", 196 | "aws", 197 | "cloud", 198 | "copy.com", 199 | "dropbox", 200 | "file systems", 201 | "files", 202 | "filesystem", 203 | "filesystems", 204 | "ftp", 205 | "rackspace", 206 | "remote", 207 | "s3", 208 | "sftp", 209 | "storage" 210 | ], 211 | "time": "2016-03-07 21:01:43" 212 | }, 213 | { 214 | "name": "league/glide", 215 | "version": "1.0.0", 216 | "source": { 217 | "type": "git", 218 | "url": "https://github.com/thephpleague/glide.git", 219 | "reference": "0dd3e4ec976ab7a38fc42196d03014f9fb82cc94" 220 | }, 221 | "dist": { 222 | "type": "zip", 223 | "url": "https://api.github.com/repos/thephpleague/glide/zipball/0dd3e4ec976ab7a38fc42196d03014f9fb82cc94", 224 | "reference": "0dd3e4ec976ab7a38fc42196d03014f9fb82cc94", 225 | "shasum": "" 226 | }, 227 | "require": { 228 | "intervention/image": "^2.1", 229 | "league/flysystem": "^1.0", 230 | "php": "^5.4 | ^7.0", 231 | "psr/http-message": "^1.0" 232 | }, 233 | "require-dev": { 234 | "mockery/mockery": "~0.9", 235 | "phpunit/php-token-stream": "^1.4", 236 | "phpunit/phpunit": "~4.4" 237 | }, 238 | "type": "library", 239 | "extra": { 240 | "branch-alias": { 241 | "dev-master": "1.0-dev" 242 | } 243 | }, 244 | "autoload": { 245 | "psr-4": { 246 | "League\\Glide\\": "src/" 247 | } 248 | }, 249 | "notification-url": "https://packagist.org/downloads/", 250 | "license": [ 251 | "MIT" 252 | ], 253 | "authors": [ 254 | { 255 | "name": "Jonathan Reinink", 256 | "email": "jonathan@reinink.ca", 257 | "homepage": "http://reinink.ca" 258 | } 259 | ], 260 | "description": "Wonderfully easy on-demand image manipulation library with an HTTP based API.", 261 | "homepage": "http://glide.thephpleague.com", 262 | "keywords": [ 263 | "ImageMagick", 264 | "editing", 265 | "gd", 266 | "image", 267 | "imagick", 268 | "league", 269 | "manipulation", 270 | "processing" 271 | ], 272 | "time": "2015-12-26 15:20:39" 273 | }, 274 | { 275 | "name": "psr/http-message", 276 | "version": "1.0", 277 | "source": { 278 | "type": "git", 279 | "url": "https://github.com/php-fig/http-message.git", 280 | "reference": "85d63699f0dbedb190bbd4b0d2b9dc707ea4c298" 281 | }, 282 | "dist": { 283 | "type": "zip", 284 | "url": "https://api.github.com/repos/php-fig/http-message/zipball/85d63699f0dbedb190bbd4b0d2b9dc707ea4c298", 285 | "reference": "85d63699f0dbedb190bbd4b0d2b9dc707ea4c298", 286 | "shasum": "" 287 | }, 288 | "require": { 289 | "php": ">=5.3.0" 290 | }, 291 | "type": "library", 292 | "extra": { 293 | "branch-alias": { 294 | "dev-master": "1.0.x-dev" 295 | } 296 | }, 297 | "autoload": { 298 | "psr-4": { 299 | "Psr\\Http\\Message\\": "src/" 300 | } 301 | }, 302 | "notification-url": "https://packagist.org/downloads/", 303 | "license": [ 304 | "MIT" 305 | ], 306 | "authors": [ 307 | { 308 | "name": "PHP-FIG", 309 | "homepage": "http://www.php-fig.org/" 310 | } 311 | ], 312 | "description": "Common interface for HTTP messages", 313 | "keywords": [ 314 | "http", 315 | "http-message", 316 | "psr", 317 | "psr-7", 318 | "request", 319 | "response" 320 | ], 321 | "time": "2015-05-04 20:22:00" 322 | } 323 | ], 324 | "packages-dev": [ 325 | { 326 | "name": "behat/behat", 327 | "version": "v2.5.5", 328 | "source": { 329 | "type": "git", 330 | "url": "https://github.com/Behat/Behat.git", 331 | "reference": "c1e48826b84669c97a1efa78459aedfdcdcf2120" 332 | }, 333 | "dist": { 334 | "type": "zip", 335 | "url": "https://api.github.com/repos/Behat/Behat/zipball/c1e48826b84669c97a1efa78459aedfdcdcf2120", 336 | "reference": "c1e48826b84669c97a1efa78459aedfdcdcf2120", 337 | "shasum": "" 338 | }, 339 | "require": { 340 | "behat/gherkin": "~2.3.0", 341 | "php": ">=5.3.1", 342 | "symfony/config": "~2.3", 343 | "symfony/console": "~2.0", 344 | "symfony/dependency-injection": "~2.0", 345 | "symfony/event-dispatcher": "~2.0", 346 | "symfony/finder": "~2.0", 347 | "symfony/translation": "~2.3", 348 | "symfony/yaml": "~2.0" 349 | }, 350 | "require-dev": { 351 | "phpunit/phpunit": "~3.7.19" 352 | }, 353 | "suggest": { 354 | "behat/mink-extension": "for integration with Mink testing framework", 355 | "behat/symfony2-extension": "for integration with Symfony2 web framework", 356 | "behat/yii-extension": "for integration with Yii web framework" 357 | }, 358 | "bin": [ 359 | "bin/behat" 360 | ], 361 | "type": "library", 362 | "autoload": { 363 | "psr-0": { 364 | "Behat\\Behat": "src/" 365 | } 366 | }, 367 | "notification-url": "https://packagist.org/downloads/", 368 | "license": [ 369 | "MIT" 370 | ], 371 | "authors": [ 372 | { 373 | "name": "Konstantin Kudryashov", 374 | "email": "ever.zet@gmail.com", 375 | "homepage": "http://everzet.com" 376 | } 377 | ], 378 | "description": "Scenario-oriented BDD framework for PHP 5.3", 379 | "homepage": "http://behat.org/", 380 | "keywords": [ 381 | "BDD", 382 | "Behat", 383 | "Symfony2" 384 | ], 385 | "time": "2015-06-01 09:37:55" 386 | }, 387 | { 388 | "name": "behat/gherkin", 389 | "version": "v2.3.5", 390 | "source": { 391 | "type": "git", 392 | "url": "https://github.com/Behat/Gherkin.git", 393 | "reference": "2b33963da5525400573560c173ab5c9c057e1852" 394 | }, 395 | "dist": { 396 | "type": "zip", 397 | "url": "https://api.github.com/repos/Behat/Gherkin/zipball/2b33963da5525400573560c173ab5c9c057e1852", 398 | "reference": "2b33963da5525400573560c173ab5c9c057e1852", 399 | "shasum": "" 400 | }, 401 | "require": { 402 | "php": ">=5.3.1", 403 | "symfony/finder": "~2.0" 404 | }, 405 | "require-dev": { 406 | "symfony/config": "~2.0", 407 | "symfony/translation": "~2.0", 408 | "symfony/yaml": "~2.0" 409 | }, 410 | "suggest": { 411 | "symfony/config": "If you want to use Config component to manage resources", 412 | "symfony/translation": "If you want to use Symfony2 translations adapter", 413 | "symfony/yaml": "If you want to parse features, represented in YAML files" 414 | }, 415 | "type": "library", 416 | "extra": { 417 | "branch-alias": { 418 | "dev-develop": "2.2-dev" 419 | } 420 | }, 421 | "autoload": { 422 | "psr-0": { 423 | "Behat\\Gherkin": "src/" 424 | } 425 | }, 426 | "notification-url": "https://packagist.org/downloads/", 427 | "license": [ 428 | "MIT" 429 | ], 430 | "authors": [ 431 | { 432 | "name": "Konstantin Kudryashov", 433 | "email": "ever.zet@gmail.com", 434 | "homepage": "http://everzet.com" 435 | } 436 | ], 437 | "description": "Gherkin DSL parser for PHP 5.3", 438 | "homepage": "http://behat.org/", 439 | "keywords": [ 440 | "BDD", 441 | "Behat", 442 | "DSL", 443 | "Symfony2", 444 | "parser" 445 | ], 446 | "time": "2013-10-15 11:22:17" 447 | }, 448 | { 449 | "name": "doctrine/instantiator", 450 | "version": "1.0.5", 451 | "source": { 452 | "type": "git", 453 | "url": "https://github.com/doctrine/instantiator.git", 454 | "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" 455 | }, 456 | "dist": { 457 | "type": "zip", 458 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", 459 | "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", 460 | "shasum": "" 461 | }, 462 | "require": { 463 | "php": ">=5.3,<8.0-DEV" 464 | }, 465 | "require-dev": { 466 | "athletic/athletic": "~0.1.8", 467 | "ext-pdo": "*", 468 | "ext-phar": "*", 469 | "phpunit/phpunit": "~4.0", 470 | "squizlabs/php_codesniffer": "~2.0" 471 | }, 472 | "type": "library", 473 | "extra": { 474 | "branch-alias": { 475 | "dev-master": "1.0.x-dev" 476 | } 477 | }, 478 | "autoload": { 479 | "psr-4": { 480 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" 481 | } 482 | }, 483 | "notification-url": "https://packagist.org/downloads/", 484 | "license": [ 485 | "MIT" 486 | ], 487 | "authors": [ 488 | { 489 | "name": "Marco Pivetta", 490 | "email": "ocramius@gmail.com", 491 | "homepage": "http://ocramius.github.com/" 492 | } 493 | ], 494 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", 495 | "homepage": "https://github.com/doctrine/instantiator", 496 | "keywords": [ 497 | "constructor", 498 | "instantiate" 499 | ], 500 | "time": "2015-06-14 21:17:01" 501 | }, 502 | { 503 | "name": "frozzare/wp-test-suite", 504 | "version": "v1.0.19", 505 | "source": { 506 | "type": "git", 507 | "url": "https://github.com/frozzare/wp-test-suite.git", 508 | "reference": "5fca6837f8f54861e1cee6bc8ad10596db3c5826" 509 | }, 510 | "dist": { 511 | "type": "zip", 512 | "url": "https://api.github.com/repos/frozzare/wp-test-suite/zipball/5fca6837f8f54861e1cee6bc8ad10596db3c5826", 513 | "reference": "5fca6837f8f54861e1cee6bc8ad10596db3c5826", 514 | "shasum": "" 515 | }, 516 | "require": { 517 | "php": ">=5.3", 518 | "phpunit/phpunit": "~4.0" 519 | }, 520 | "type": "library", 521 | "autoload": { 522 | "files": [ 523 | "src/class-wp-test-suite.php" 524 | ] 525 | }, 526 | "notification-url": "https://packagist.org/downloads/", 527 | "license": [ 528 | "MIT" 529 | ], 530 | "authors": [ 531 | { 532 | "name": "Fredrik Forsmo", 533 | "email": "fredrik.forsmo@gmail.com" 534 | } 535 | ], 536 | "description": "Run WordPress test easy", 537 | "keywords": [ 538 | "easy", 539 | "suite", 540 | "test", 541 | "wordpress" 542 | ], 543 | "time": "2016-02-08 14:28:58" 544 | }, 545 | { 546 | "name": "phpdocumentor/reflection-docblock", 547 | "version": "2.0.4", 548 | "source": { 549 | "type": "git", 550 | "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", 551 | "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8" 552 | }, 553 | "dist": { 554 | "type": "zip", 555 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/d68dbdc53dc358a816f00b300704702b2eaff7b8", 556 | "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8", 557 | "shasum": "" 558 | }, 559 | "require": { 560 | "php": ">=5.3.3" 561 | }, 562 | "require-dev": { 563 | "phpunit/phpunit": "~4.0" 564 | }, 565 | "suggest": { 566 | "dflydev/markdown": "~1.0", 567 | "erusev/parsedown": "~1.0" 568 | }, 569 | "type": "library", 570 | "extra": { 571 | "branch-alias": { 572 | "dev-master": "2.0.x-dev" 573 | } 574 | }, 575 | "autoload": { 576 | "psr-0": { 577 | "phpDocumentor": [ 578 | "src/" 579 | ] 580 | } 581 | }, 582 | "notification-url": "https://packagist.org/downloads/", 583 | "license": [ 584 | "MIT" 585 | ], 586 | "authors": [ 587 | { 588 | "name": "Mike van Riel", 589 | "email": "mike.vanriel@naenius.com" 590 | } 591 | ], 592 | "time": "2015-02-03 12:10:50" 593 | }, 594 | { 595 | "name": "phpspec/prophecy", 596 | "version": "v1.6.0", 597 | "source": { 598 | "type": "git", 599 | "url": "https://github.com/phpspec/prophecy.git", 600 | "reference": "3c91bdf81797d725b14cb62906f9a4ce44235972" 601 | }, 602 | "dist": { 603 | "type": "zip", 604 | "url": "https://api.github.com/repos/phpspec/prophecy/zipball/3c91bdf81797d725b14cb62906f9a4ce44235972", 605 | "reference": "3c91bdf81797d725b14cb62906f9a4ce44235972", 606 | "shasum": "" 607 | }, 608 | "require": { 609 | "doctrine/instantiator": "^1.0.2", 610 | "php": "^5.3|^7.0", 611 | "phpdocumentor/reflection-docblock": "~2.0", 612 | "sebastian/comparator": "~1.1", 613 | "sebastian/recursion-context": "~1.0" 614 | }, 615 | "require-dev": { 616 | "phpspec/phpspec": "~2.0" 617 | }, 618 | "type": "library", 619 | "extra": { 620 | "branch-alias": { 621 | "dev-master": "1.5.x-dev" 622 | } 623 | }, 624 | "autoload": { 625 | "psr-0": { 626 | "Prophecy\\": "src/" 627 | } 628 | }, 629 | "notification-url": "https://packagist.org/downloads/", 630 | "license": [ 631 | "MIT" 632 | ], 633 | "authors": [ 634 | { 635 | "name": "Konstantin Kudryashov", 636 | "email": "ever.zet@gmail.com", 637 | "homepage": "http://everzet.com" 638 | }, 639 | { 640 | "name": "Marcello Duarte", 641 | "email": "marcello.duarte@gmail.com" 642 | } 643 | ], 644 | "description": "Highly opinionated mocking framework for PHP 5.3+", 645 | "homepage": "https://github.com/phpspec/prophecy", 646 | "keywords": [ 647 | "Double", 648 | "Dummy", 649 | "fake", 650 | "mock", 651 | "spy", 652 | "stub" 653 | ], 654 | "time": "2016-02-15 07:46:21" 655 | }, 656 | { 657 | "name": "phpunit/php-code-coverage", 658 | "version": "2.2.4", 659 | "source": { 660 | "type": "git", 661 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git", 662 | "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979" 663 | }, 664 | "dist": { 665 | "type": "zip", 666 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979", 667 | "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979", 668 | "shasum": "" 669 | }, 670 | "require": { 671 | "php": ">=5.3.3", 672 | "phpunit/php-file-iterator": "~1.3", 673 | "phpunit/php-text-template": "~1.2", 674 | "phpunit/php-token-stream": "~1.3", 675 | "sebastian/environment": "^1.3.2", 676 | "sebastian/version": "~1.0" 677 | }, 678 | "require-dev": { 679 | "ext-xdebug": ">=2.1.4", 680 | "phpunit/phpunit": "~4" 681 | }, 682 | "suggest": { 683 | "ext-dom": "*", 684 | "ext-xdebug": ">=2.2.1", 685 | "ext-xmlwriter": "*" 686 | }, 687 | "type": "library", 688 | "extra": { 689 | "branch-alias": { 690 | "dev-master": "2.2.x-dev" 691 | } 692 | }, 693 | "autoload": { 694 | "classmap": [ 695 | "src/" 696 | ] 697 | }, 698 | "notification-url": "https://packagist.org/downloads/", 699 | "license": [ 700 | "BSD-3-Clause" 701 | ], 702 | "authors": [ 703 | { 704 | "name": "Sebastian Bergmann", 705 | "email": "sb@sebastian-bergmann.de", 706 | "role": "lead" 707 | } 708 | ], 709 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", 710 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage", 711 | "keywords": [ 712 | "coverage", 713 | "testing", 714 | "xunit" 715 | ], 716 | "time": "2015-10-06 15:47:00" 717 | }, 718 | { 719 | "name": "phpunit/php-file-iterator", 720 | "version": "1.4.1", 721 | "source": { 722 | "type": "git", 723 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git", 724 | "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0" 725 | }, 726 | "dist": { 727 | "type": "zip", 728 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/6150bf2c35d3fc379e50c7602b75caceaa39dbf0", 729 | "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0", 730 | "shasum": "" 731 | }, 732 | "require": { 733 | "php": ">=5.3.3" 734 | }, 735 | "type": "library", 736 | "extra": { 737 | "branch-alias": { 738 | "dev-master": "1.4.x-dev" 739 | } 740 | }, 741 | "autoload": { 742 | "classmap": [ 743 | "src/" 744 | ] 745 | }, 746 | "notification-url": "https://packagist.org/downloads/", 747 | "license": [ 748 | "BSD-3-Clause" 749 | ], 750 | "authors": [ 751 | { 752 | "name": "Sebastian Bergmann", 753 | "email": "sb@sebastian-bergmann.de", 754 | "role": "lead" 755 | } 756 | ], 757 | "description": "FilterIterator implementation that filters files based on a list of suffixes.", 758 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", 759 | "keywords": [ 760 | "filesystem", 761 | "iterator" 762 | ], 763 | "time": "2015-06-21 13:08:43" 764 | }, 765 | { 766 | "name": "phpunit/php-text-template", 767 | "version": "1.2.1", 768 | "source": { 769 | "type": "git", 770 | "url": "https://github.com/sebastianbergmann/php-text-template.git", 771 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" 772 | }, 773 | "dist": { 774 | "type": "zip", 775 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 776 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 777 | "shasum": "" 778 | }, 779 | "require": { 780 | "php": ">=5.3.3" 781 | }, 782 | "type": "library", 783 | "autoload": { 784 | "classmap": [ 785 | "src/" 786 | ] 787 | }, 788 | "notification-url": "https://packagist.org/downloads/", 789 | "license": [ 790 | "BSD-3-Clause" 791 | ], 792 | "authors": [ 793 | { 794 | "name": "Sebastian Bergmann", 795 | "email": "sebastian@phpunit.de", 796 | "role": "lead" 797 | } 798 | ], 799 | "description": "Simple template engine.", 800 | "homepage": "https://github.com/sebastianbergmann/php-text-template/", 801 | "keywords": [ 802 | "template" 803 | ], 804 | "time": "2015-06-21 13:50:34" 805 | }, 806 | { 807 | "name": "phpunit/php-timer", 808 | "version": "1.0.7", 809 | "source": { 810 | "type": "git", 811 | "url": "https://github.com/sebastianbergmann/php-timer.git", 812 | "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b" 813 | }, 814 | "dist": { 815 | "type": "zip", 816 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3e82f4e9fc92665fafd9157568e4dcb01d014e5b", 817 | "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b", 818 | "shasum": "" 819 | }, 820 | "require": { 821 | "php": ">=5.3.3" 822 | }, 823 | "type": "library", 824 | "autoload": { 825 | "classmap": [ 826 | "src/" 827 | ] 828 | }, 829 | "notification-url": "https://packagist.org/downloads/", 830 | "license": [ 831 | "BSD-3-Clause" 832 | ], 833 | "authors": [ 834 | { 835 | "name": "Sebastian Bergmann", 836 | "email": "sb@sebastian-bergmann.de", 837 | "role": "lead" 838 | } 839 | ], 840 | "description": "Utility class for timing", 841 | "homepage": "https://github.com/sebastianbergmann/php-timer/", 842 | "keywords": [ 843 | "timer" 844 | ], 845 | "time": "2015-06-21 08:01:12" 846 | }, 847 | { 848 | "name": "phpunit/php-token-stream", 849 | "version": "1.4.8", 850 | "source": { 851 | "type": "git", 852 | "url": "https://github.com/sebastianbergmann/php-token-stream.git", 853 | "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da" 854 | }, 855 | "dist": { 856 | "type": "zip", 857 | "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da", 858 | "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da", 859 | "shasum": "" 860 | }, 861 | "require": { 862 | "ext-tokenizer": "*", 863 | "php": ">=5.3.3" 864 | }, 865 | "require-dev": { 866 | "phpunit/phpunit": "~4.2" 867 | }, 868 | "type": "library", 869 | "extra": { 870 | "branch-alias": { 871 | "dev-master": "1.4-dev" 872 | } 873 | }, 874 | "autoload": { 875 | "classmap": [ 876 | "src/" 877 | ] 878 | }, 879 | "notification-url": "https://packagist.org/downloads/", 880 | "license": [ 881 | "BSD-3-Clause" 882 | ], 883 | "authors": [ 884 | { 885 | "name": "Sebastian Bergmann", 886 | "email": "sebastian@phpunit.de" 887 | } 888 | ], 889 | "description": "Wrapper around PHP's tokenizer extension.", 890 | "homepage": "https://github.com/sebastianbergmann/php-token-stream/", 891 | "keywords": [ 892 | "tokenizer" 893 | ], 894 | "time": "2015-09-15 10:49:45" 895 | }, 896 | { 897 | "name": "phpunit/phpunit", 898 | "version": "4.8.23", 899 | "source": { 900 | "type": "git", 901 | "url": "https://github.com/sebastianbergmann/phpunit.git", 902 | "reference": "6e351261f9cd33daf205a131a1ba61c6d33bd483" 903 | }, 904 | "dist": { 905 | "type": "zip", 906 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/6e351261f9cd33daf205a131a1ba61c6d33bd483", 907 | "reference": "6e351261f9cd33daf205a131a1ba61c6d33bd483", 908 | "shasum": "" 909 | }, 910 | "require": { 911 | "ext-dom": "*", 912 | "ext-json": "*", 913 | "ext-pcre": "*", 914 | "ext-reflection": "*", 915 | "ext-spl": "*", 916 | "php": ">=5.3.3", 917 | "phpspec/prophecy": "^1.3.1", 918 | "phpunit/php-code-coverage": "~2.1", 919 | "phpunit/php-file-iterator": "~1.4", 920 | "phpunit/php-text-template": "~1.2", 921 | "phpunit/php-timer": ">=1.0.6", 922 | "phpunit/phpunit-mock-objects": "~2.3", 923 | "sebastian/comparator": "~1.1", 924 | "sebastian/diff": "~1.2", 925 | "sebastian/environment": "~1.3", 926 | "sebastian/exporter": "~1.2", 927 | "sebastian/global-state": "~1.0", 928 | "sebastian/version": "~1.0", 929 | "symfony/yaml": "~2.1|~3.0" 930 | }, 931 | "suggest": { 932 | "phpunit/php-invoker": "~1.1" 933 | }, 934 | "bin": [ 935 | "phpunit" 936 | ], 937 | "type": "library", 938 | "extra": { 939 | "branch-alias": { 940 | "dev-master": "4.8.x-dev" 941 | } 942 | }, 943 | "autoload": { 944 | "classmap": [ 945 | "src/" 946 | ] 947 | }, 948 | "notification-url": "https://packagist.org/downloads/", 949 | "license": [ 950 | "BSD-3-Clause" 951 | ], 952 | "authors": [ 953 | { 954 | "name": "Sebastian Bergmann", 955 | "email": "sebastian@phpunit.de", 956 | "role": "lead" 957 | } 958 | ], 959 | "description": "The PHP Unit Testing framework.", 960 | "homepage": "https://phpunit.de/", 961 | "keywords": [ 962 | "phpunit", 963 | "testing", 964 | "xunit" 965 | ], 966 | "time": "2016-02-11 14:56:33" 967 | }, 968 | { 969 | "name": "phpunit/phpunit-mock-objects", 970 | "version": "2.3.8", 971 | "source": { 972 | "type": "git", 973 | "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", 974 | "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983" 975 | }, 976 | "dist": { 977 | "type": "zip", 978 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983", 979 | "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983", 980 | "shasum": "" 981 | }, 982 | "require": { 983 | "doctrine/instantiator": "^1.0.2", 984 | "php": ">=5.3.3", 985 | "phpunit/php-text-template": "~1.2", 986 | "sebastian/exporter": "~1.2" 987 | }, 988 | "require-dev": { 989 | "phpunit/phpunit": "~4.4" 990 | }, 991 | "suggest": { 992 | "ext-soap": "*" 993 | }, 994 | "type": "library", 995 | "extra": { 996 | "branch-alias": { 997 | "dev-master": "2.3.x-dev" 998 | } 999 | }, 1000 | "autoload": { 1001 | "classmap": [ 1002 | "src/" 1003 | ] 1004 | }, 1005 | "notification-url": "https://packagist.org/downloads/", 1006 | "license": [ 1007 | "BSD-3-Clause" 1008 | ], 1009 | "authors": [ 1010 | { 1011 | "name": "Sebastian Bergmann", 1012 | "email": "sb@sebastian-bergmann.de", 1013 | "role": "lead" 1014 | } 1015 | ], 1016 | "description": "Mock Object library for PHPUnit", 1017 | "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", 1018 | "keywords": [ 1019 | "mock", 1020 | "xunit" 1021 | ], 1022 | "time": "2015-10-02 06:51:40" 1023 | }, 1024 | { 1025 | "name": "sebastian/comparator", 1026 | "version": "1.2.0", 1027 | "source": { 1028 | "type": "git", 1029 | "url": "https://github.com/sebastianbergmann/comparator.git", 1030 | "reference": "937efb279bd37a375bcadf584dec0726f84dbf22" 1031 | }, 1032 | "dist": { 1033 | "type": "zip", 1034 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/937efb279bd37a375bcadf584dec0726f84dbf22", 1035 | "reference": "937efb279bd37a375bcadf584dec0726f84dbf22", 1036 | "shasum": "" 1037 | }, 1038 | "require": { 1039 | "php": ">=5.3.3", 1040 | "sebastian/diff": "~1.2", 1041 | "sebastian/exporter": "~1.2" 1042 | }, 1043 | "require-dev": { 1044 | "phpunit/phpunit": "~4.4" 1045 | }, 1046 | "type": "library", 1047 | "extra": { 1048 | "branch-alias": { 1049 | "dev-master": "1.2.x-dev" 1050 | } 1051 | }, 1052 | "autoload": { 1053 | "classmap": [ 1054 | "src/" 1055 | ] 1056 | }, 1057 | "notification-url": "https://packagist.org/downloads/", 1058 | "license": [ 1059 | "BSD-3-Clause" 1060 | ], 1061 | "authors": [ 1062 | { 1063 | "name": "Jeff Welch", 1064 | "email": "whatthejeff@gmail.com" 1065 | }, 1066 | { 1067 | "name": "Volker Dusch", 1068 | "email": "github@wallbash.com" 1069 | }, 1070 | { 1071 | "name": "Bernhard Schussek", 1072 | "email": "bschussek@2bepublished.at" 1073 | }, 1074 | { 1075 | "name": "Sebastian Bergmann", 1076 | "email": "sebastian@phpunit.de" 1077 | } 1078 | ], 1079 | "description": "Provides the functionality to compare PHP values for equality", 1080 | "homepage": "http://www.github.com/sebastianbergmann/comparator", 1081 | "keywords": [ 1082 | "comparator", 1083 | "compare", 1084 | "equality" 1085 | ], 1086 | "time": "2015-07-26 15:48:44" 1087 | }, 1088 | { 1089 | "name": "sebastian/diff", 1090 | "version": "1.4.1", 1091 | "source": { 1092 | "type": "git", 1093 | "url": "https://github.com/sebastianbergmann/diff.git", 1094 | "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e" 1095 | }, 1096 | "dist": { 1097 | "type": "zip", 1098 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e", 1099 | "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e", 1100 | "shasum": "" 1101 | }, 1102 | "require": { 1103 | "php": ">=5.3.3" 1104 | }, 1105 | "require-dev": { 1106 | "phpunit/phpunit": "~4.8" 1107 | }, 1108 | "type": "library", 1109 | "extra": { 1110 | "branch-alias": { 1111 | "dev-master": "1.4-dev" 1112 | } 1113 | }, 1114 | "autoload": { 1115 | "classmap": [ 1116 | "src/" 1117 | ] 1118 | }, 1119 | "notification-url": "https://packagist.org/downloads/", 1120 | "license": [ 1121 | "BSD-3-Clause" 1122 | ], 1123 | "authors": [ 1124 | { 1125 | "name": "Kore Nordmann", 1126 | "email": "mail@kore-nordmann.de" 1127 | }, 1128 | { 1129 | "name": "Sebastian Bergmann", 1130 | "email": "sebastian@phpunit.de" 1131 | } 1132 | ], 1133 | "description": "Diff implementation", 1134 | "homepage": "https://github.com/sebastianbergmann/diff", 1135 | "keywords": [ 1136 | "diff" 1137 | ], 1138 | "time": "2015-12-08 07:14:41" 1139 | }, 1140 | { 1141 | "name": "sebastian/environment", 1142 | "version": "1.3.5", 1143 | "source": { 1144 | "type": "git", 1145 | "url": "https://github.com/sebastianbergmann/environment.git", 1146 | "reference": "dc7a29032cf72b54f36dac15a1ca5b3a1b6029bf" 1147 | }, 1148 | "dist": { 1149 | "type": "zip", 1150 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/dc7a29032cf72b54f36dac15a1ca5b3a1b6029bf", 1151 | "reference": "dc7a29032cf72b54f36dac15a1ca5b3a1b6029bf", 1152 | "shasum": "" 1153 | }, 1154 | "require": { 1155 | "php": ">=5.3.3" 1156 | }, 1157 | "require-dev": { 1158 | "phpunit/phpunit": "~4.4" 1159 | }, 1160 | "type": "library", 1161 | "extra": { 1162 | "branch-alias": { 1163 | "dev-master": "1.3.x-dev" 1164 | } 1165 | }, 1166 | "autoload": { 1167 | "classmap": [ 1168 | "src/" 1169 | ] 1170 | }, 1171 | "notification-url": "https://packagist.org/downloads/", 1172 | "license": [ 1173 | "BSD-3-Clause" 1174 | ], 1175 | "authors": [ 1176 | { 1177 | "name": "Sebastian Bergmann", 1178 | "email": "sebastian@phpunit.de" 1179 | } 1180 | ], 1181 | "description": "Provides functionality to handle HHVM/PHP environments", 1182 | "homepage": "http://www.github.com/sebastianbergmann/environment", 1183 | "keywords": [ 1184 | "Xdebug", 1185 | "environment", 1186 | "hhvm" 1187 | ], 1188 | "time": "2016-02-26 18:40:46" 1189 | }, 1190 | { 1191 | "name": "sebastian/exporter", 1192 | "version": "1.2.1", 1193 | "source": { 1194 | "type": "git", 1195 | "url": "https://github.com/sebastianbergmann/exporter.git", 1196 | "reference": "7ae5513327cb536431847bcc0c10edba2701064e" 1197 | }, 1198 | "dist": { 1199 | "type": "zip", 1200 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/7ae5513327cb536431847bcc0c10edba2701064e", 1201 | "reference": "7ae5513327cb536431847bcc0c10edba2701064e", 1202 | "shasum": "" 1203 | }, 1204 | "require": { 1205 | "php": ">=5.3.3", 1206 | "sebastian/recursion-context": "~1.0" 1207 | }, 1208 | "require-dev": { 1209 | "phpunit/phpunit": "~4.4" 1210 | }, 1211 | "type": "library", 1212 | "extra": { 1213 | "branch-alias": { 1214 | "dev-master": "1.2.x-dev" 1215 | } 1216 | }, 1217 | "autoload": { 1218 | "classmap": [ 1219 | "src/" 1220 | ] 1221 | }, 1222 | "notification-url": "https://packagist.org/downloads/", 1223 | "license": [ 1224 | "BSD-3-Clause" 1225 | ], 1226 | "authors": [ 1227 | { 1228 | "name": "Jeff Welch", 1229 | "email": "whatthejeff@gmail.com" 1230 | }, 1231 | { 1232 | "name": "Volker Dusch", 1233 | "email": "github@wallbash.com" 1234 | }, 1235 | { 1236 | "name": "Bernhard Schussek", 1237 | "email": "bschussek@2bepublished.at" 1238 | }, 1239 | { 1240 | "name": "Sebastian Bergmann", 1241 | "email": "sebastian@phpunit.de" 1242 | }, 1243 | { 1244 | "name": "Adam Harvey", 1245 | "email": "aharvey@php.net" 1246 | } 1247 | ], 1248 | "description": "Provides the functionality to export PHP variables for visualization", 1249 | "homepage": "http://www.github.com/sebastianbergmann/exporter", 1250 | "keywords": [ 1251 | "export", 1252 | "exporter" 1253 | ], 1254 | "time": "2015-06-21 07:55:53" 1255 | }, 1256 | { 1257 | "name": "sebastian/global-state", 1258 | "version": "1.1.1", 1259 | "source": { 1260 | "type": "git", 1261 | "url": "https://github.com/sebastianbergmann/global-state.git", 1262 | "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4" 1263 | }, 1264 | "dist": { 1265 | "type": "zip", 1266 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4", 1267 | "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4", 1268 | "shasum": "" 1269 | }, 1270 | "require": { 1271 | "php": ">=5.3.3" 1272 | }, 1273 | "require-dev": { 1274 | "phpunit/phpunit": "~4.2" 1275 | }, 1276 | "suggest": { 1277 | "ext-uopz": "*" 1278 | }, 1279 | "type": "library", 1280 | "extra": { 1281 | "branch-alias": { 1282 | "dev-master": "1.0-dev" 1283 | } 1284 | }, 1285 | "autoload": { 1286 | "classmap": [ 1287 | "src/" 1288 | ] 1289 | }, 1290 | "notification-url": "https://packagist.org/downloads/", 1291 | "license": [ 1292 | "BSD-3-Clause" 1293 | ], 1294 | "authors": [ 1295 | { 1296 | "name": "Sebastian Bergmann", 1297 | "email": "sebastian@phpunit.de" 1298 | } 1299 | ], 1300 | "description": "Snapshotting of global state", 1301 | "homepage": "http://www.github.com/sebastianbergmann/global-state", 1302 | "keywords": [ 1303 | "global state" 1304 | ], 1305 | "time": "2015-10-12 03:26:01" 1306 | }, 1307 | { 1308 | "name": "sebastian/recursion-context", 1309 | "version": "1.0.2", 1310 | "source": { 1311 | "type": "git", 1312 | "url": "https://github.com/sebastianbergmann/recursion-context.git", 1313 | "reference": "913401df809e99e4f47b27cdd781f4a258d58791" 1314 | }, 1315 | "dist": { 1316 | "type": "zip", 1317 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/913401df809e99e4f47b27cdd781f4a258d58791", 1318 | "reference": "913401df809e99e4f47b27cdd781f4a258d58791", 1319 | "shasum": "" 1320 | }, 1321 | "require": { 1322 | "php": ">=5.3.3" 1323 | }, 1324 | "require-dev": { 1325 | "phpunit/phpunit": "~4.4" 1326 | }, 1327 | "type": "library", 1328 | "extra": { 1329 | "branch-alias": { 1330 | "dev-master": "1.0.x-dev" 1331 | } 1332 | }, 1333 | "autoload": { 1334 | "classmap": [ 1335 | "src/" 1336 | ] 1337 | }, 1338 | "notification-url": "https://packagist.org/downloads/", 1339 | "license": [ 1340 | "BSD-3-Clause" 1341 | ], 1342 | "authors": [ 1343 | { 1344 | "name": "Jeff Welch", 1345 | "email": "whatthejeff@gmail.com" 1346 | }, 1347 | { 1348 | "name": "Sebastian Bergmann", 1349 | "email": "sebastian@phpunit.de" 1350 | }, 1351 | { 1352 | "name": "Adam Harvey", 1353 | "email": "aharvey@php.net" 1354 | } 1355 | ], 1356 | "description": "Provides functionality to recursively process PHP variables", 1357 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context", 1358 | "time": "2015-11-11 19:50:13" 1359 | }, 1360 | { 1361 | "name": "sebastian/version", 1362 | "version": "1.0.6", 1363 | "source": { 1364 | "type": "git", 1365 | "url": "https://github.com/sebastianbergmann/version.git", 1366 | "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6" 1367 | }, 1368 | "dist": { 1369 | "type": "zip", 1370 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", 1371 | "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", 1372 | "shasum": "" 1373 | }, 1374 | "type": "library", 1375 | "autoload": { 1376 | "classmap": [ 1377 | "src/" 1378 | ] 1379 | }, 1380 | "notification-url": "https://packagist.org/downloads/", 1381 | "license": [ 1382 | "BSD-3-Clause" 1383 | ], 1384 | "authors": [ 1385 | { 1386 | "name": "Sebastian Bergmann", 1387 | "email": "sebastian@phpunit.de", 1388 | "role": "lead" 1389 | } 1390 | ], 1391 | "description": "Library that helps with managing the version number of Git-hosted PHP projects", 1392 | "homepage": "https://github.com/sebastianbergmann/version", 1393 | "time": "2015-06-21 13:59:46" 1394 | }, 1395 | { 1396 | "name": "squizlabs/php_codesniffer", 1397 | "version": "2.5.1", 1398 | "source": { 1399 | "type": "git", 1400 | "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", 1401 | "reference": "6731851d6aaf1d0d6c58feff1065227b7fda3ba8" 1402 | }, 1403 | "dist": { 1404 | "type": "zip", 1405 | "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/6731851d6aaf1d0d6c58feff1065227b7fda3ba8", 1406 | "reference": "6731851d6aaf1d0d6c58feff1065227b7fda3ba8", 1407 | "shasum": "" 1408 | }, 1409 | "require": { 1410 | "ext-tokenizer": "*", 1411 | "ext-xmlwriter": "*", 1412 | "php": ">=5.1.2" 1413 | }, 1414 | "require-dev": { 1415 | "phpunit/phpunit": "~4.0" 1416 | }, 1417 | "bin": [ 1418 | "scripts/phpcs", 1419 | "scripts/phpcbf" 1420 | ], 1421 | "type": "library", 1422 | "extra": { 1423 | "branch-alias": { 1424 | "dev-master": "2.x-dev" 1425 | } 1426 | }, 1427 | "autoload": { 1428 | "classmap": [ 1429 | "CodeSniffer.php", 1430 | "CodeSniffer/CLI.php", 1431 | "CodeSniffer/Exception.php", 1432 | "CodeSniffer/File.php", 1433 | "CodeSniffer/Fixer.php", 1434 | "CodeSniffer/Report.php", 1435 | "CodeSniffer/Reporting.php", 1436 | "CodeSniffer/Sniff.php", 1437 | "CodeSniffer/Tokens.php", 1438 | "CodeSniffer/Reports/", 1439 | "CodeSniffer/Tokenizers/", 1440 | "CodeSniffer/DocGenerators/", 1441 | "CodeSniffer/Standards/AbstractPatternSniff.php", 1442 | "CodeSniffer/Standards/AbstractScopeSniff.php", 1443 | "CodeSniffer/Standards/AbstractVariableSniff.php", 1444 | "CodeSniffer/Standards/IncorrectPatternException.php", 1445 | "CodeSniffer/Standards/Generic/Sniffs/", 1446 | "CodeSniffer/Standards/MySource/Sniffs/", 1447 | "CodeSniffer/Standards/PEAR/Sniffs/", 1448 | "CodeSniffer/Standards/PSR1/Sniffs/", 1449 | "CodeSniffer/Standards/PSR2/Sniffs/", 1450 | "CodeSniffer/Standards/Squiz/Sniffs/", 1451 | "CodeSniffer/Standards/Zend/Sniffs/" 1452 | ] 1453 | }, 1454 | "notification-url": "https://packagist.org/downloads/", 1455 | "license": [ 1456 | "BSD-3-Clause" 1457 | ], 1458 | "authors": [ 1459 | { 1460 | "name": "Greg Sherwood", 1461 | "role": "lead" 1462 | } 1463 | ], 1464 | "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", 1465 | "homepage": "http://www.squizlabs.com/php-codesniffer", 1466 | "keywords": [ 1467 | "phpcs", 1468 | "standards" 1469 | ], 1470 | "time": "2016-01-19 23:39:10" 1471 | }, 1472 | { 1473 | "name": "symfony/config", 1474 | "version": "v2.8.3", 1475 | "source": { 1476 | "type": "git", 1477 | "url": "https://github.com/symfony/config.git", 1478 | "reference": "0f8f94e6a32b5c480024eed5fa5cbd2790d0ad19" 1479 | }, 1480 | "dist": { 1481 | "type": "zip", 1482 | "url": "https://api.github.com/repos/symfony/config/zipball/0f8f94e6a32b5c480024eed5fa5cbd2790d0ad19", 1483 | "reference": "0f8f94e6a32b5c480024eed5fa5cbd2790d0ad19", 1484 | "shasum": "" 1485 | }, 1486 | "require": { 1487 | "php": ">=5.3.9", 1488 | "symfony/filesystem": "~2.3|~3.0.0" 1489 | }, 1490 | "suggest": { 1491 | "symfony/yaml": "To use the yaml reference dumper" 1492 | }, 1493 | "type": "library", 1494 | "extra": { 1495 | "branch-alias": { 1496 | "dev-master": "2.8-dev" 1497 | } 1498 | }, 1499 | "autoload": { 1500 | "psr-4": { 1501 | "Symfony\\Component\\Config\\": "" 1502 | }, 1503 | "exclude-from-classmap": [ 1504 | "/Tests/" 1505 | ] 1506 | }, 1507 | "notification-url": "https://packagist.org/downloads/", 1508 | "license": [ 1509 | "MIT" 1510 | ], 1511 | "authors": [ 1512 | { 1513 | "name": "Fabien Potencier", 1514 | "email": "fabien@symfony.com" 1515 | }, 1516 | { 1517 | "name": "Symfony Community", 1518 | "homepage": "https://symfony.com/contributors" 1519 | } 1520 | ], 1521 | "description": "Symfony Config Component", 1522 | "homepage": "https://symfony.com", 1523 | "time": "2016-02-22 16:12:45" 1524 | }, 1525 | { 1526 | "name": "symfony/console", 1527 | "version": "v2.8.3", 1528 | "source": { 1529 | "type": "git", 1530 | "url": "https://github.com/symfony/console.git", 1531 | "reference": "56cc5caf051189720b8de974e4746090aaa10d44" 1532 | }, 1533 | "dist": { 1534 | "type": "zip", 1535 | "url": "https://api.github.com/repos/symfony/console/zipball/56cc5caf051189720b8de974e4746090aaa10d44", 1536 | "reference": "56cc5caf051189720b8de974e4746090aaa10d44", 1537 | "shasum": "" 1538 | }, 1539 | "require": { 1540 | "php": ">=5.3.9", 1541 | "symfony/polyfill-mbstring": "~1.0" 1542 | }, 1543 | "require-dev": { 1544 | "psr/log": "~1.0", 1545 | "symfony/event-dispatcher": "~2.1|~3.0.0", 1546 | "symfony/process": "~2.1|~3.0.0" 1547 | }, 1548 | "suggest": { 1549 | "psr/log": "For using the console logger", 1550 | "symfony/event-dispatcher": "", 1551 | "symfony/process": "" 1552 | }, 1553 | "type": "library", 1554 | "extra": { 1555 | "branch-alias": { 1556 | "dev-master": "2.8-dev" 1557 | } 1558 | }, 1559 | "autoload": { 1560 | "psr-4": { 1561 | "Symfony\\Component\\Console\\": "" 1562 | }, 1563 | "exclude-from-classmap": [ 1564 | "/Tests/" 1565 | ] 1566 | }, 1567 | "notification-url": "https://packagist.org/downloads/", 1568 | "license": [ 1569 | "MIT" 1570 | ], 1571 | "authors": [ 1572 | { 1573 | "name": "Fabien Potencier", 1574 | "email": "fabien@symfony.com" 1575 | }, 1576 | { 1577 | "name": "Symfony Community", 1578 | "homepage": "https://symfony.com/contributors" 1579 | } 1580 | ], 1581 | "description": "Symfony Console Component", 1582 | "homepage": "https://symfony.com", 1583 | "time": "2016-02-28 16:20:50" 1584 | }, 1585 | { 1586 | "name": "symfony/dependency-injection", 1587 | "version": "v2.8.3", 1588 | "source": { 1589 | "type": "git", 1590 | "url": "https://github.com/symfony/dependency-injection.git", 1591 | "reference": "62251761a7615435b22ccf562384c588b431be44" 1592 | }, 1593 | "dist": { 1594 | "type": "zip", 1595 | "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/62251761a7615435b22ccf562384c588b431be44", 1596 | "reference": "62251761a7615435b22ccf562384c588b431be44", 1597 | "shasum": "" 1598 | }, 1599 | "require": { 1600 | "php": ">=5.3.9" 1601 | }, 1602 | "conflict": { 1603 | "symfony/expression-language": "<2.6" 1604 | }, 1605 | "require-dev": { 1606 | "symfony/config": "~2.2|~3.0.0", 1607 | "symfony/expression-language": "~2.6|~3.0.0", 1608 | "symfony/yaml": "~2.1|~3.0.0" 1609 | }, 1610 | "suggest": { 1611 | "symfony/config": "", 1612 | "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", 1613 | "symfony/yaml": "" 1614 | }, 1615 | "type": "library", 1616 | "extra": { 1617 | "branch-alias": { 1618 | "dev-master": "2.8-dev" 1619 | } 1620 | }, 1621 | "autoload": { 1622 | "psr-4": { 1623 | "Symfony\\Component\\DependencyInjection\\": "" 1624 | }, 1625 | "exclude-from-classmap": [ 1626 | "/Tests/" 1627 | ] 1628 | }, 1629 | "notification-url": "https://packagist.org/downloads/", 1630 | "license": [ 1631 | "MIT" 1632 | ], 1633 | "authors": [ 1634 | { 1635 | "name": "Fabien Potencier", 1636 | "email": "fabien@symfony.com" 1637 | }, 1638 | { 1639 | "name": "Symfony Community", 1640 | "homepage": "https://symfony.com/contributors" 1641 | } 1642 | ], 1643 | "description": "Symfony DependencyInjection Component", 1644 | "homepage": "https://symfony.com", 1645 | "time": "2016-02-28 16:34:46" 1646 | }, 1647 | { 1648 | "name": "symfony/event-dispatcher", 1649 | "version": "v2.8.3", 1650 | "source": { 1651 | "type": "git", 1652 | "url": "https://github.com/symfony/event-dispatcher.git", 1653 | "reference": "78c468665c9568c3faaa9c416a7134308f2d85c3" 1654 | }, 1655 | "dist": { 1656 | "type": "zip", 1657 | "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/78c468665c9568c3faaa9c416a7134308f2d85c3", 1658 | "reference": "78c468665c9568c3faaa9c416a7134308f2d85c3", 1659 | "shasum": "" 1660 | }, 1661 | "require": { 1662 | "php": ">=5.3.9" 1663 | }, 1664 | "require-dev": { 1665 | "psr/log": "~1.0", 1666 | "symfony/config": "~2.0,>=2.0.5|~3.0.0", 1667 | "symfony/dependency-injection": "~2.6|~3.0.0", 1668 | "symfony/expression-language": "~2.6|~3.0.0", 1669 | "symfony/stopwatch": "~2.3|~3.0.0" 1670 | }, 1671 | "suggest": { 1672 | "symfony/dependency-injection": "", 1673 | "symfony/http-kernel": "" 1674 | }, 1675 | "type": "library", 1676 | "extra": { 1677 | "branch-alias": { 1678 | "dev-master": "2.8-dev" 1679 | } 1680 | }, 1681 | "autoload": { 1682 | "psr-4": { 1683 | "Symfony\\Component\\EventDispatcher\\": "" 1684 | }, 1685 | "exclude-from-classmap": [ 1686 | "/Tests/" 1687 | ] 1688 | }, 1689 | "notification-url": "https://packagist.org/downloads/", 1690 | "license": [ 1691 | "MIT" 1692 | ], 1693 | "authors": [ 1694 | { 1695 | "name": "Fabien Potencier", 1696 | "email": "fabien@symfony.com" 1697 | }, 1698 | { 1699 | "name": "Symfony Community", 1700 | "homepage": "https://symfony.com/contributors" 1701 | } 1702 | ], 1703 | "description": "Symfony EventDispatcher Component", 1704 | "homepage": "https://symfony.com", 1705 | "time": "2016-01-27 05:14:19" 1706 | }, 1707 | { 1708 | "name": "symfony/filesystem", 1709 | "version": "v3.0.3", 1710 | "source": { 1711 | "type": "git", 1712 | "url": "https://github.com/symfony/filesystem.git", 1713 | "reference": "23ae8f9648d0a7fe94a47c8e20e5bf37c489a451" 1714 | }, 1715 | "dist": { 1716 | "type": "zip", 1717 | "url": "https://api.github.com/repos/symfony/filesystem/zipball/23ae8f9648d0a7fe94a47c8e20e5bf37c489a451", 1718 | "reference": "23ae8f9648d0a7fe94a47c8e20e5bf37c489a451", 1719 | "shasum": "" 1720 | }, 1721 | "require": { 1722 | "php": ">=5.5.9" 1723 | }, 1724 | "type": "library", 1725 | "extra": { 1726 | "branch-alias": { 1727 | "dev-master": "3.0-dev" 1728 | } 1729 | }, 1730 | "autoload": { 1731 | "psr-4": { 1732 | "Symfony\\Component\\Filesystem\\": "" 1733 | }, 1734 | "exclude-from-classmap": [ 1735 | "/Tests/" 1736 | ] 1737 | }, 1738 | "notification-url": "https://packagist.org/downloads/", 1739 | "license": [ 1740 | "MIT" 1741 | ], 1742 | "authors": [ 1743 | { 1744 | "name": "Fabien Potencier", 1745 | "email": "fabien@symfony.com" 1746 | }, 1747 | { 1748 | "name": "Symfony Community", 1749 | "homepage": "https://symfony.com/contributors" 1750 | } 1751 | ], 1752 | "description": "Symfony Filesystem Component", 1753 | "homepage": "https://symfony.com", 1754 | "time": "2016-02-23 15:16:06" 1755 | }, 1756 | { 1757 | "name": "symfony/finder", 1758 | "version": "v2.8.3", 1759 | "source": { 1760 | "type": "git", 1761 | "url": "https://github.com/symfony/finder.git", 1762 | "reference": "877bb4b16ea573cc8c024e9590888fcf7eb7e0f7" 1763 | }, 1764 | "dist": { 1765 | "type": "zip", 1766 | "url": "https://api.github.com/repos/symfony/finder/zipball/877bb4b16ea573cc8c024e9590888fcf7eb7e0f7", 1767 | "reference": "877bb4b16ea573cc8c024e9590888fcf7eb7e0f7", 1768 | "shasum": "" 1769 | }, 1770 | "require": { 1771 | "php": ">=5.3.9" 1772 | }, 1773 | "type": "library", 1774 | "extra": { 1775 | "branch-alias": { 1776 | "dev-master": "2.8-dev" 1777 | } 1778 | }, 1779 | "autoload": { 1780 | "psr-4": { 1781 | "Symfony\\Component\\Finder\\": "" 1782 | }, 1783 | "exclude-from-classmap": [ 1784 | "/Tests/" 1785 | ] 1786 | }, 1787 | "notification-url": "https://packagist.org/downloads/", 1788 | "license": [ 1789 | "MIT" 1790 | ], 1791 | "authors": [ 1792 | { 1793 | "name": "Fabien Potencier", 1794 | "email": "fabien@symfony.com" 1795 | }, 1796 | { 1797 | "name": "Symfony Community", 1798 | "homepage": "https://symfony.com/contributors" 1799 | } 1800 | ], 1801 | "description": "Symfony Finder Component", 1802 | "homepage": "https://symfony.com", 1803 | "time": "2016-02-22 16:12:45" 1804 | }, 1805 | { 1806 | "name": "symfony/polyfill-mbstring", 1807 | "version": "v1.1.1", 1808 | "source": { 1809 | "type": "git", 1810 | "url": "https://github.com/symfony/polyfill-mbstring.git", 1811 | "reference": "1289d16209491b584839022f29257ad859b8532d" 1812 | }, 1813 | "dist": { 1814 | "type": "zip", 1815 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/1289d16209491b584839022f29257ad859b8532d", 1816 | "reference": "1289d16209491b584839022f29257ad859b8532d", 1817 | "shasum": "" 1818 | }, 1819 | "require": { 1820 | "php": ">=5.3.3" 1821 | }, 1822 | "suggest": { 1823 | "ext-mbstring": "For best performance" 1824 | }, 1825 | "type": "library", 1826 | "extra": { 1827 | "branch-alias": { 1828 | "dev-master": "1.1-dev" 1829 | } 1830 | }, 1831 | "autoload": { 1832 | "psr-4": { 1833 | "Symfony\\Polyfill\\Mbstring\\": "" 1834 | }, 1835 | "files": [ 1836 | "bootstrap.php" 1837 | ] 1838 | }, 1839 | "notification-url": "https://packagist.org/downloads/", 1840 | "license": [ 1841 | "MIT" 1842 | ], 1843 | "authors": [ 1844 | { 1845 | "name": "Nicolas Grekas", 1846 | "email": "p@tchwork.com" 1847 | }, 1848 | { 1849 | "name": "Symfony Community", 1850 | "homepage": "https://symfony.com/contributors" 1851 | } 1852 | ], 1853 | "description": "Symfony polyfill for the Mbstring extension", 1854 | "homepage": "https://symfony.com", 1855 | "keywords": [ 1856 | "compatibility", 1857 | "mbstring", 1858 | "polyfill", 1859 | "portable", 1860 | "shim" 1861 | ], 1862 | "time": "2016-01-20 09:13:37" 1863 | }, 1864 | { 1865 | "name": "symfony/translation", 1866 | "version": "v2.8.3", 1867 | "source": { 1868 | "type": "git", 1869 | "url": "https://github.com/symfony/translation.git", 1870 | "reference": "b7b4ebadd2b5e614ff7d2d6fc63e0ed0578909c7" 1871 | }, 1872 | "dist": { 1873 | "type": "zip", 1874 | "url": "https://api.github.com/repos/symfony/translation/zipball/b7b4ebadd2b5e614ff7d2d6fc63e0ed0578909c7", 1875 | "reference": "b7b4ebadd2b5e614ff7d2d6fc63e0ed0578909c7", 1876 | "shasum": "" 1877 | }, 1878 | "require": { 1879 | "php": ">=5.3.9", 1880 | "symfony/polyfill-mbstring": "~1.0" 1881 | }, 1882 | "conflict": { 1883 | "symfony/config": "<2.7" 1884 | }, 1885 | "require-dev": { 1886 | "psr/log": "~1.0", 1887 | "symfony/config": "~2.8", 1888 | "symfony/intl": "~2.4|~3.0.0", 1889 | "symfony/yaml": "~2.2|~3.0.0" 1890 | }, 1891 | "suggest": { 1892 | "psr/log": "To use logging capability in translator", 1893 | "symfony/config": "", 1894 | "symfony/yaml": "" 1895 | }, 1896 | "type": "library", 1897 | "extra": { 1898 | "branch-alias": { 1899 | "dev-master": "2.8-dev" 1900 | } 1901 | }, 1902 | "autoload": { 1903 | "psr-4": { 1904 | "Symfony\\Component\\Translation\\": "" 1905 | }, 1906 | "exclude-from-classmap": [ 1907 | "/Tests/" 1908 | ] 1909 | }, 1910 | "notification-url": "https://packagist.org/downloads/", 1911 | "license": [ 1912 | "MIT" 1913 | ], 1914 | "authors": [ 1915 | { 1916 | "name": "Fabien Potencier", 1917 | "email": "fabien@symfony.com" 1918 | }, 1919 | { 1920 | "name": "Symfony Community", 1921 | "homepage": "https://symfony.com/contributors" 1922 | } 1923 | ], 1924 | "description": "Symfony Translation Component", 1925 | "homepage": "https://symfony.com", 1926 | "time": "2016-02-02 09:49:18" 1927 | }, 1928 | { 1929 | "name": "symfony/yaml", 1930 | "version": "v2.8.3", 1931 | "source": { 1932 | "type": "git", 1933 | "url": "https://github.com/symfony/yaml.git", 1934 | "reference": "2a4ee40acb880c56f29fb1b8886e7ffe94f3b995" 1935 | }, 1936 | "dist": { 1937 | "type": "zip", 1938 | "url": "https://api.github.com/repos/symfony/yaml/zipball/2a4ee40acb880c56f29fb1b8886e7ffe94f3b995", 1939 | "reference": "2a4ee40acb880c56f29fb1b8886e7ffe94f3b995", 1940 | "shasum": "" 1941 | }, 1942 | "require": { 1943 | "php": ">=5.3.9" 1944 | }, 1945 | "type": "library", 1946 | "extra": { 1947 | "branch-alias": { 1948 | "dev-master": "2.8-dev" 1949 | } 1950 | }, 1951 | "autoload": { 1952 | "psr-4": { 1953 | "Symfony\\Component\\Yaml\\": "" 1954 | }, 1955 | "exclude-from-classmap": [ 1956 | "/Tests/" 1957 | ] 1958 | }, 1959 | "notification-url": "https://packagist.org/downloads/", 1960 | "license": [ 1961 | "MIT" 1962 | ], 1963 | "authors": [ 1964 | { 1965 | "name": "Fabien Potencier", 1966 | "email": "fabien@symfony.com" 1967 | }, 1968 | { 1969 | "name": "Symfony Community", 1970 | "homepage": "https://symfony.com/contributors" 1971 | } 1972 | ], 1973 | "description": "Symfony Yaml Component", 1974 | "homepage": "https://symfony.com", 1975 | "time": "2016-02-23 07:41:20" 1976 | }, 1977 | { 1978 | "name": "wp-coding-standards/wpcs", 1979 | "version": "dev-develop", 1980 | "source": { 1981 | "type": "git", 1982 | "url": "https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git", 1983 | "reference": "35d4359b4c93c52b8f0e9de8e98783fed652cd13" 1984 | }, 1985 | "dist": { 1986 | "type": "zip", 1987 | "url": "https://api.github.com/repos/WordPress-Coding-Standards/WordPress-Coding-Standards/zipball/35d4359b4c93c52b8f0e9de8e98783fed652cd13", 1988 | "reference": "35d4359b4c93c52b8f0e9de8e98783fed652cd13", 1989 | "shasum": "" 1990 | }, 1991 | "require": { 1992 | "squizlabs/php_codesniffer": "~2.2" 1993 | }, 1994 | "type": "library", 1995 | "notification-url": "https://packagist.org/downloads/", 1996 | "license": [ 1997 | "MIT" 1998 | ], 1999 | "authors": [ 2000 | { 2001 | "name": "Contributors", 2002 | "homepage": "https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/graphs/contributors" 2003 | } 2004 | ], 2005 | "description": "PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions", 2006 | "keywords": [ 2007 | "phpcs", 2008 | "standards", 2009 | "wordpress" 2010 | ], 2011 | "time": "2016-03-09 02:03:25" 2012 | } 2013 | ], 2014 | "aliases": [], 2015 | "minimum-stability": "dev", 2016 | "stability-flags": { 2017 | "wp-coding-standards/wpcs": 20 2018 | }, 2019 | "prefer-stable": true, 2020 | "prefer-lowest": false, 2021 | "platform": { 2022 | "php": "^5.5.9 || ^7.0" 2023 | }, 2024 | "platform-dev": [] 2025 | } 2026 | -------------------------------------------------------------------------------- /phpcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | WP Glide rules for PHP_CodeSniffer 4 | 5 | vendor/* 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /plugin.php: -------------------------------------------------------------------------------- 1 | base_url = apply_filters( 'glide/base_url', '/img/' ); 17 | $this->base_url = sprintf( '/%s/', ltrim( rtrim( $this->base_url, '/' ), '/' ) ); 18 | 19 | add_action( 'init', [$this, 'add_endpoint'] ); 20 | add_action( 'parse_query', [$this, 'handle_endpoint'] ); 21 | } 22 | 23 | /** 24 | * Add image endpoint. 25 | */ 26 | public function add_endpoint() { 27 | add_rewrite_tag( '%action%', '([^/]*)' ); 28 | add_rewrite_rule( sprintf( '%s/([^/]*)/?', ltrim( $this->base_url, '/' ) ), 'index.php?action=$matches[1]', 'top' ); 29 | } 30 | 31 | /** 32 | * Handle image endpoint. 33 | */ 34 | public function handle_endpoint() { 35 | global $wp_query; 36 | 37 | if ( ! is_object( $wp_query ) ) { 38 | return; 39 | } 40 | 41 | if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) { 42 | return; 43 | } 44 | 45 | if ( strpos( $_SERVER['REQUEST_URI'], $this->base_url ) === false ) { 46 | return; 47 | } 48 | 49 | $this->serve(); 50 | } 51 | 52 | /** 53 | * Serve images. 54 | */ 55 | private function serve() { 56 | $base = $this->base_url; 57 | $url = $_SERVER['REQUEST_URI']; 58 | $url = parse_url( $url ); 59 | $path = str_replace( $base, '', $url['path'] ); 60 | $path = ltrim( $path, '/' ); 61 | 62 | // Docs: http://glide.thephpleague.com/1.0/config/setup/ 63 | $options = apply_filters( 'glide/options', [ 64 | 'source' => WP_CONTENT_DIR . '/uploads', 65 | 'cache' => WP_CONTENT_DIR . '/cache/glide', 66 | 'base_url' => $base 67 | ] ); 68 | 69 | if ( file_exists( rtrim( $options['source'], '/' ) . '/' . $path ) ) { 70 | status_header( 200 ); 71 | $server = \League\Glide\ServerFactory::create( $options ); 72 | $server->outputImage( $path, $_GET ); 73 | die; 74 | } 75 | 76 | status_header( 404 ); 77 | echo 'Image not found.'; 78 | die; 79 | } 80 | } 81 | --------------------------------------------------------------------------------