├── .gitignore ├── .codeclimate.yml ├── src └── Dflydev │ └── EncryptedFigCookies │ ├── Encryption │ ├── Encryption.php │ ├── Decryptor.php │ ├── Encryptor.php │ └── Adapter │ │ ├── PhpseclibEncryption.php │ │ ├── DefuseEncryption.php │ │ └── ZendCryptEncryption.php │ ├── Validation │ ├── Message.php │ └── Validation.php │ ├── RequestCookieDecryptor.php │ ├── ResponseCookieEncryptor.php │ └── EncryptedFigCookiesMiddleware.php ├── phpunit.xml.dist ├── .scrutinizer.yml ├── tests └── Dflydev │ └── EncryptedFigCookies │ ├── FigCookieTestingResponse.php │ ├── Encryption │ └── Adapter │ │ ├── DefuseEncryptionTest.php │ │ ├── PhpseclibEncryptionTest.php │ │ └── ZendFilterEncryptionTest.php │ ├── FigCookieTestingRequest.php │ ├── Validation │ └── ValidationTest.php │ └── FigCookieTestingMessage.php ├── .travis.yml ├── LICENSE ├── composer.json ├── README.md └── composer.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /vendor/ 2 | -------------------------------------------------------------------------------- /.codeclimate.yml: -------------------------------------------------------------------------------- 1 | # Save as .codeclimate.yml (note leading .) in project root directory 2 | languages: 3 | PHP: true 4 | exclude_paths: 5 | - "tests/*" 6 | -------------------------------------------------------------------------------- /src/Dflydev/EncryptedFigCookies/Encryption/Encryption.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ./tests 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.scrutinizer.yml: -------------------------------------------------------------------------------- 1 | tools: 2 | external_code_coverage: 3 | timeout: 600 4 | php_mess_detector: true 5 | php_code_sniffer: true 6 | sensiolabs_security_checker: true 7 | php_code_coverage: true 8 | php_pdepend: true 9 | php_loc: 10 | enabled: true 11 | excluded_dirs: [vendor, tests] 12 | php_cpd: 13 | enabled: true 14 | excluded_dirs: [vendor, tests] 15 | filter: 16 | excluded_paths: 17 | - tests/* 18 | checks: 19 | php: 20 | code_rating: true 21 | duplication: true 22 | -------------------------------------------------------------------------------- /src/Dflydev/EncryptedFigCookies/Encryption/Adapter/PhpseclibEncryption.php: -------------------------------------------------------------------------------- 1 | cypher = $cypher; 18 | } 19 | 20 | public function decrypt($value) 21 | { 22 | return $this->cypher->decrypt($value); 23 | } 24 | 25 | public function encrypt($value) 26 | { 27 | return $this->cypher->encrypt($value); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /tests/Dflydev/EncryptedFigCookies/FigCookieTestingResponse.php: -------------------------------------------------------------------------------- 1 | key = $key; 21 | } 22 | 23 | public function decrypt($value) 24 | { 25 | return Crypto::Decrypt($value, $this->key); 26 | } 27 | 28 | public function encrypt($value) 29 | { 30 | return Crypto::Encrypt($value, $this->key); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: php 2 | 3 | php: 4 | - 5.4 5 | - 5.5 6 | - 5.6 7 | - 7 8 | - hhvm 9 | 10 | cache: 11 | directories: 12 | - vendor 13 | - $HOME/.composer/cache 14 | 15 | matrix: 16 | allow_failures: 17 | - php: hhvm 18 | 19 | before_script: 20 | - composer self-update 21 | - composer install --dev --prefer-source 22 | 23 | script: 24 | - ./vendor/bin/phpunit --coverage-clover=coverage.clover 25 | - ./vendor/bin/phpcs --standard=PSR2 src 26 | 27 | after_script: 28 | - wget https://scrutinizer-ci.com/ocular.phar 29 | - php ocular.phar code-coverage:upload --format=php-clover coverage.clover 30 | - CODECLIMATE_REPO_TOKEN=a6c3fe945c8b82dfc203abaf185a8773859ea2099f2a813a301f791d46e1905f ./vendor/bin/test-reporter --coverage-report=coverage.clover 31 | 32 | notifications: 33 | email: true 34 | -------------------------------------------------------------------------------- /tests/Dflydev/EncryptedFigCookies/Encryption/Adapter/DefuseEncryptionTest.php: -------------------------------------------------------------------------------- 1 | markTestSkipped('Missing defuse/php-encryption'); 11 | } 12 | 13 | parent::setUp(); 14 | } 15 | 16 | /** @test */ 17 | public function it_encrypts_and_decrypts() 18 | { 19 | $encryption = new DefuseEncryption('asdfasdfasdfasdf'); 20 | 21 | $size = 10 * 1024; 22 | $plaintext = str_repeat('a', $size); 23 | $encrypted = $encryption->encrypt($plaintext); 24 | 25 | $this->assertEquals($plaintext, $encryption->decrypt($encrypted)); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/Dflydev/EncryptedFigCookies/Encryption/Adapter/ZendCryptEncryption.php: -------------------------------------------------------------------------------- 1 | decrypt = $decrypt; 24 | $this->encrypt = $encrypt; 25 | } 26 | 27 | public function decrypt($value) 28 | { 29 | return $this->decrypt->filter($value); 30 | } 31 | 32 | public function encrypt($value) 33 | { 34 | return $this->encrypt->filter($value); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/Dflydev/EncryptedFigCookies/Validation/Message.php: -------------------------------------------------------------------------------- 1 | nonce = $nonce; 14 | $this->hmac = $hmac; 15 | $this->value = $value; 16 | } 17 | 18 | public function getNonce() 19 | { 20 | return $this->nonce; 21 | } 22 | 23 | public function getHmac() 24 | { 25 | return $this->hmac; 26 | } 27 | 28 | public function getValue() 29 | { 30 | return $this->value; 31 | } 32 | 33 | public static function fromString($value) 34 | { 35 | $nonce = substr($value, 0, 32); 36 | $hmac = substr($value, strrpos($value, '.') + 1); 37 | $value = substr($value, 32, strlen($value) - strlen($hmac) - 33); 38 | 39 | return new self($nonce, $hmac, $value); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015 Dragonfly Development Inc. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is furnished 8 | to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "dflydev/encrypted-fig-cookies", 3 | "description": "Encrypted Cookies for PSR-7 HTTP Message Interface.", 4 | "license": "MIT", 5 | "keywords": ["psr7", "psr-7", "cookies"], 6 | "authors": [ 7 | { 8 | "name": "Beau Simensen", 9 | "email": "beau@dflydev.com" 10 | } 11 | ], 12 | "require": { 13 | "dflydev/fig-cookies": "^1.0", 14 | "psr/http-message": "^1.0" 15 | }, 16 | "autoload": { 17 | "psr-4": { 18 | "Dflydev\\EncryptedFigCookies\\": "src/Dflydev/EncryptedFigCookies" 19 | } 20 | }, 21 | "require-dev": { 22 | "phpseclib/phpseclib": "^0.3.10", 23 | "zendframework/zend-crypt": "^2.0", 24 | "defuse/php-encryption": "^1.2", 25 | 26 | "codeclimate/php-test-reporter": "~0.1@dev", 27 | "phpunit/phpunit": "^4.6", 28 | "squizlabs/php_codesniffer": "~2.3" 29 | }, 30 | "autoload-dev": { 31 | "psr-4": { 32 | "Dflydev\\EncryptedFigCookies\\": "tests/Dflydev/EncryptedFigCookies" 33 | } 34 | }, 35 | "extra": { 36 | "branch-alias": { 37 | "dev-master": "0.0.x-dev" 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /tests/Dflydev/EncryptedFigCookies/Encryption/Adapter/PhpseclibEncryptionTest.php: -------------------------------------------------------------------------------- 1 | markTestSkipped('Missing phpseclib/phpseclib'); 11 | } 12 | 13 | parent::setUp(); 14 | } 15 | 16 | /** 17 | * @test 18 | * @dataProvider provide_encrypts_and_decrypts_data 19 | */ 20 | public function it_encrypts_and_decrypts(\Crypt_Base $cipher, $key) 21 | { 22 | $cipher->setKey($key); 23 | 24 | $encryption = new PhpseclibEncryption($cipher); 25 | 26 | $size = 10 * 1024; 27 | $plaintext = str_repeat('a', $size); 28 | $encrypted = $encryption->encrypt($plaintext); 29 | 30 | $this->assertEquals($plaintext, $encryption->decrypt($encrypted)); 31 | } 32 | 33 | public function provide_encrypts_and_decrypts_data() 34 | { 35 | return [ 36 | [ 37 | new \Crypt_AES(CRYPT_AES_MODE_ECB), 38 | 'abcdefghijklmnop' 39 | ], 40 | ]; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /tests/Dflydev/EncryptedFigCookies/FigCookieTestingRequest.php: -------------------------------------------------------------------------------- 1 | extract($signedValue); 24 | 25 | $this->assertEquals($value, $extractedValue); 26 | } 27 | 28 | /** @test */ 29 | public function it_signs_successfully() 30 | { 31 | $algo = 'sha256'; 32 | $key = 'E26m218TLqgJeY40ydCET10tMUD6qSlV'; 33 | $value = 'hello world!'; 34 | 35 | $validation = new Validation($key, $algo); 36 | 37 | $signedValue = $validation->sign($value); 38 | 39 | $extractedValue = $validation->extract($signedValue); 40 | 41 | $this->assertEquals($value, $extractedValue); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /tests/Dflydev/EncryptedFigCookies/Encryption/Adapter/ZendFilterEncryptionTest.php: -------------------------------------------------------------------------------- 1 | markTestSkipped('Missing zendframework/zend-crypt'); 14 | } 15 | 16 | parent::setUp(); 17 | } 18 | 19 | /** @test */ 20 | public function it_encrypts_and_decrypts_successfully() 21 | { 22 | 23 | $encryption = new ZendCryptEncryption( 24 | new Decrypt(['key' => 'asdf']), 25 | new Encrypt(['key' => 'asdf']) 26 | ); 27 | 28 | $size = 10 * 1024; 29 | $plaintext = str_repeat('a', $size); 30 | $encrypted = $encryption->encrypt($plaintext); 31 | 32 | $this->assertEquals($plaintext, $encryption->decrypt($encrypted)); 33 | } 34 | 35 | /** @test */ 36 | public function it_does_not_encrypt_and_decrypt_successfully() 37 | { 38 | $encryption = new ZendCryptEncryption( 39 | new Decrypt(['key' => 'asdf']), 40 | new Encrypt(['key' => 'ASDF']) 41 | ); 42 | 43 | $size = 10 * 1024; 44 | $plaintext = str_repeat('a', $size); 45 | $encrypted = $encryption->encrypt($plaintext); 46 | 47 | $this->assertNotEquals($plaintext, $encryption->decrypt($encrypted)); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/Dflydev/EncryptedFigCookies/RequestCookieDecryptor.php: -------------------------------------------------------------------------------- 1 | decryptor = $decryptor; 25 | $this->validation = $validaton; 26 | } 27 | 28 | private static function resolveCookieNames($cookieNames) 29 | { 30 | return is_array($cookieNames) ? $cookieNames : [(string) $cookieNames]; 31 | } 32 | 33 | private static function hasNoCookieNames(array $cookieNames) 34 | { 35 | return count($cookieNames) < 1; 36 | } 37 | 38 | public function decrypt(RequestInterface $request, $cookieNames) 39 | { 40 | $cookieNames = self::resolveCookieNames($cookieNames); 41 | 42 | if (self::hasNoCookieNames($cookieNames)) { 43 | return $request; 44 | } 45 | 46 | $cookies = Cookies::fromRequest($request); 47 | 48 | foreach ($cookieNames as $cookieName) { 49 | $cookies = $this->decryptCookie($cookies, $cookieName); 50 | } 51 | 52 | return $cookies->renderIntoCookieHeader($request); 53 | } 54 | 55 | private function decryptCookie(Cookies $cookies, $cookieName) 56 | { 57 | if (! $cookies->has($cookieName)) { 58 | return $cookies; 59 | } 60 | 61 | $cookie = $cookies->get($cookieName); 62 | $encodedValue = $cookie->getValue(); 63 | $signedValue = base64_decode($encodedValue); 64 | $encryptedValue = $this->validation->extract($signedValue); 65 | $decryptedValue = $this->decryptor->decrypt($encryptedValue); 66 | $decryptedCookie = $cookie->withValue($decryptedValue); 67 | 68 | return $cookies->with($decryptedCookie); 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /src/Dflydev/EncryptedFigCookies/ResponseCookieEncryptor.php: -------------------------------------------------------------------------------- 1 | encryptor = $encryptor; 25 | $this->validation = $validation; 26 | } 27 | 28 | private static function resolveCookieNames($cookieNames) 29 | { 30 | return is_array($cookieNames) ? $cookieNames : [(string) $cookieNames]; 31 | } 32 | 33 | private static function hasNoCookieNames(array $cookieNames) 34 | { 35 | return count($cookieNames) < 1; 36 | } 37 | 38 | public function encrypt(ResponseInterface $response, $cookieNames) 39 | { 40 | $cookieNames = self::resolveCookieNames($cookieNames); 41 | 42 | if (self::hasNoCookieNames($cookieNames)) { 43 | return $response; 44 | } 45 | 46 | $setCookies = SetCookies::fromResponse($response); 47 | 48 | foreach ($cookieNames as $cookieName) { 49 | $setCookies = $this->encryptCookie($setCookies, $cookieName); 50 | } 51 | 52 | return $setCookies->renderIntoSetCookieHeader($response); 53 | } 54 | 55 | private function encryptCookie(SetCookies $setCookies, $cookieName) 56 | { 57 | if (! $setCookies->has($cookieName)) { 58 | return $setCookies; 59 | } 60 | 61 | $cookie = $setCookies->get($cookieName); 62 | $decryptedValue = $cookie->getValue(); 63 | $encryptedValue = $this->encryptor->encrypt($decryptedValue); 64 | $signedValue = $this->validation->sign($encryptedValue); 65 | $encodedValue = base64_encode($signedValue); 66 | $encryptedCookie = $cookie->withValue($encodedValue); 67 | 68 | return $setCookies->with($encryptedCookie); 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /src/Dflydev/EncryptedFigCookies/Validation/Validation.php: -------------------------------------------------------------------------------- 1 | key = $key; 16 | $this->algo = $algo ?: static::DEFAULT_ALGO; 17 | } 18 | 19 | public function extract($value) 20 | { 21 | $message = Message::fromString($value); 22 | 23 | if (!$this->verify($message)) { 24 | throw new \RuntimeException('Invalid message.'); 25 | } 26 | 27 | return $message->getValue(); 28 | } 29 | 30 | public function sign($value) 31 | { 32 | $nonce = $this->generateNonce(); 33 | 34 | $hmac = hash_hmac($this->algo, $this->key, $nonce.$value); 35 | 36 | return $nonce.$value.'.'.$hmac; 37 | } 38 | 39 | private function verify(Message $message) 40 | { 41 | $calcualtedHmac = hash_hmac( 42 | $this->algo, 43 | $this->key, 44 | $message->getNonce().$message->getValue() 45 | ); 46 | 47 | return self::hashCompare($calcualtedHmac, $message->getHmac()); 48 | } 49 | 50 | private static function generateNonce() 51 | { 52 | $result = ''; 53 | for ($i = 0; $i < static::NONCE_LENGTH; $i++) { 54 | $result .= chr((mt_rand() ^ mt_rand()) % 256); 55 | } 56 | return $result; 57 | } 58 | 59 | private static function hashCompare($hash1, $hash2) 60 | { 61 | if (function_exists('hash_equals')) { 62 | return hash_equals($hash1, $hash2); 63 | } 64 | 65 | return self::hashCompareFallback($hash1, $hash2); 66 | } 67 | 68 | private static function hashCompareFallback($hash1, $hash2) 69 | { 70 | if (function_exists('hash_equals')) { 71 | return hash_equals($hash1, $hash2); 72 | } 73 | if (strlen($hash1) !== strlen($hash2)) { 74 | return false; 75 | } 76 | $res = 0; 77 | $len = strlen($hash1); 78 | for ($i = 0; $i < $len; ++$i) { 79 | $res |= ord($hash1[$i]) ^ ord($hash2[$i]); 80 | } 81 | return $res === 0; 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /tests/Dflydev/EncryptedFigCookies/FigCookieTestingMessage.php: -------------------------------------------------------------------------------- 1 | headers[$name] = [$value]; 30 | 31 | return $clone; 32 | } 33 | 34 | public function withAddedHeader($name, $value) 35 | { 36 | $clone = clone($this); 37 | 38 | if (! isset($clone->headers[$name])) { 39 | $clone->headers[$name] = []; 40 | } 41 | 42 | $clone->headers[$name][] = $value; 43 | 44 | return $clone; 45 | } 46 | 47 | public function withoutHeader($name) 48 | { 49 | $clone = clone($this); 50 | 51 | if (isset($clone->headers[$name])) { 52 | unset($clone->headers[$name]); 53 | } 54 | 55 | return $clone; 56 | } 57 | 58 | public function getBody() 59 | { 60 | throw new \RuntimeException("This method has not been implemented."); 61 | } 62 | 63 | public function withBody(StreamInterface $body) 64 | { 65 | throw new \RuntimeException("This method has not been implemented."); 66 | } 67 | 68 | public function getHeaders() 69 | { 70 | throw new \RuntimeException("This method has not been implemented."); 71 | } 72 | 73 | public function getHeader($name) 74 | { 75 | if (! isset($this->headers[$name])) { 76 | return []; 77 | } 78 | 79 | return $this->headers[$name]; 80 | } 81 | 82 | public function getHeaderLine($name) 83 | { 84 | return implode(',', $this->headers[$name]); 85 | } 86 | 87 | public function getHeaderLines($name) 88 | { 89 | if (! isset($this->headers[$name])) { 90 | return []; 91 | } 92 | 93 | return $this->headers[$name]; 94 | } 95 | } 96 | -------------------------------------------------------------------------------- /src/Dflydev/EncryptedFigCookies/EncryptedFigCookiesMiddleware.php: -------------------------------------------------------------------------------- 1 | requestCookieDecryptor = $requestCookieDecryptor; 24 | $this->responseCookieEncryptor = $responseCookieEncryptor; 25 | $this->cookieNames = $cookieNames; 26 | } 27 | 28 | /** 29 | * @param RequestInterface $request 30 | * @param ResponseInterface $response 31 | * @param callable $next 32 | * 33 | * @return ResponseInterface 34 | */ 35 | public function __invoke( 36 | RequestInterface $request, 37 | ResponseInterface $response, 38 | callable $next 39 | ) { 40 | $request = $this->requestCookieDecryptor->decrypt( 41 | $request, 42 | $this->cookieNames 43 | ); 44 | 45 | return $this->responseCookieEncryptor->encrypt( 46 | $next($request, $response), 47 | $this->cookieNames 48 | ); 49 | } 50 | 51 | public static function createWithDecryptorAndEncryptor( 52 | Decryptor $decryptor, 53 | Encryptor $encryptor, 54 | Validation $validation, 55 | $cookieNames 56 | ) { 57 | return new static( 58 | new RequestCookieDecryptor($decryptor, $validation), 59 | new ResponseCookieEncryptor($encryptor, $validation), 60 | $cookieNames 61 | ); 62 | } 63 | 64 | public static function createWithEncryption( 65 | Encryption $encryption, 66 | Validation $validation, 67 | $cookieNames 68 | ) { 69 | return static::createWithDecryptorAndEncryptor( 70 | $encryption, 71 | $encryption, 72 | $validation, 73 | $cookieNames 74 | ); 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Encrypted FIG Cookies 2 | =========== 3 | 4 | Managing Encrypted Cookies for PSR-7 Requests and Responses. 5 | 6 | [![Latest Stable Version](https://poser.pugx.org/dflydev/encrypted-fig-cookies/v/stable)](https://packagist.org/packages/dflydev/encrypted-fig-cookies) 7 | [![Total Downloads](https://poser.pugx.org/dflydev/encrypted-fig-cookies/downloads)](https://packagist.org/packages/dflydev/encrypted-fig-cookies) 8 | [![Latest Unstable Version](https://poser.pugx.org/dflydev/encrypted-fig-cookies/v/unstable)](https://packagist.org/packages/dflydev/encrypted-fig-cookies) 9 | [![License](https://poser.pugx.org/dflydev/encrypted-fig-cookies/license)](https://packagist.org/packages/dflydev/encrypted-fig-cookies) 10 |
11 | [![Build Status](https://travis-ci.org/dflydev/dflydev-encrypted-fig-cookies.svg?branch=master)](https://travis-ci.org/dflydev/dflydev-encrypted-fig-cookies) 12 | [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/dflydev/dflydev-encrypted-fig-cookies/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/dflydev/dflydev-encrypted-fig-cookies/?branch=master) 13 | [![Code Coverage](https://scrutinizer-ci.com/g/dflydev/dflydev-encrypted-fig-cookies/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/dflydev/dflydev-encrypted-fig-cookies/?branch=master) 14 | [![Code Climate](https://codeclimate.com/github/dflydev/dflydev-encrypted-fig-cookies/badges/gpa.svg)](https://codeclimate.com/github/dflydev/dflydev-encrypted-fig-cookies) 15 |
16 | [![Join the chat at https://gitter.im/dflydev/dflydev-fig-cookies](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/dflydev/dflydev-fig-cookies?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) 17 | 18 | 19 | Requirements 20 | ------------ 21 | 22 | * PHP 5.4+ 23 | * [dflydev/fig-cookies](https://packagist.org/packages/dflydev/fig-cookies) 24 | * [psr/http-message](https://packagist.org/packages/psr/http-message) 25 | 26 | 27 | Installation 28 | ------------ 29 | 30 | ```bash 31 | $> composer require dflydev/encrypted-fig-cookies 32 | ``` 33 | 34 | While in early development, you may be required to be a little more specific: 35 | 36 | ```bash 37 | $> composer require dflydev/encrypted-fig-cookies:^0.0@dev 38 | ``` 39 | 40 | 41 | License 42 | ------- 43 | 44 | MIT, see LICENSE. 45 | 46 | 47 | Community 48 | --------- 49 | 50 | Want to get involved? Here are a few ways: 51 | 52 | * Find us in the #dflydev IRC channel on irc.freenode.org. 53 | * Mention [@dflydev](https://twitter.com/dflydev) on Twitter. 54 | * [![Join the chat at https://gitter.im/dflydev/dflydev-fig-cookies](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/dflydev/dflydev-fig-cookies?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) 55 | -------------------------------------------------------------------------------- /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": "3152530a2fe1564880e99d6e43c6dbaa", 8 | "packages": [ 9 | { 10 | "name": "dflydev/fig-cookies", 11 | "version": "v1.0.1", 12 | "source": { 13 | "type": "git", 14 | "url": "https://github.com/dflydev/dflydev-fig-cookies.git", 15 | "reference": "3777cdff8d47fd914034e00a335c836c4ef8e84e" 16 | }, 17 | "dist": { 18 | "type": "zip", 19 | "url": "https://api.github.com/repos/dflydev/dflydev-fig-cookies/zipball/3777cdff8d47fd914034e00a335c836c4ef8e84e", 20 | "reference": "3777cdff8d47fd914034e00a335c836c4ef8e84e", 21 | "shasum": "" 22 | }, 23 | "require": { 24 | "php": ">=5.4", 25 | "psr/http-message": "~1.0" 26 | }, 27 | "require-dev": { 28 | "codeclimate/php-test-reporter": "~0.1@dev", 29 | "phpunit/phpunit": "~4.5", 30 | "squizlabs/php_codesniffer": "~2.3" 31 | }, 32 | "type": "library", 33 | "extra": { 34 | "branch-alias": { 35 | "dev-master": "1.0.x-dev" 36 | } 37 | }, 38 | "autoload": { 39 | "psr-4": { 40 | "Dflydev\\FigCookies\\": "src/Dflydev/FigCookies" 41 | } 42 | }, 43 | "notification-url": "https://packagist.org/downloads/", 44 | "license": [ 45 | "MIT" 46 | ], 47 | "authors": [ 48 | { 49 | "name": "Beau Simensen", 50 | "email": "beau@dflydev.com" 51 | } 52 | ], 53 | "description": "Cookies for PSR-7 HTTP Message Interface.", 54 | "keywords": [ 55 | "cookies", 56 | "psr-7", 57 | "psr7" 58 | ], 59 | "time": "2015-06-03 18:02:30" 60 | }, 61 | { 62 | "name": "psr/http-message", 63 | "version": "1.0", 64 | "source": { 65 | "type": "git", 66 | "url": "https://github.com/php-fig/http-message.git", 67 | "reference": "85d63699f0dbedb190bbd4b0d2b9dc707ea4c298" 68 | }, 69 | "dist": { 70 | "type": "zip", 71 | "url": "https://api.github.com/repos/php-fig/http-message/zipball/85d63699f0dbedb190bbd4b0d2b9dc707ea4c298", 72 | "reference": "85d63699f0dbedb190bbd4b0d2b9dc707ea4c298", 73 | "shasum": "" 74 | }, 75 | "require": { 76 | "php": ">=5.3.0" 77 | }, 78 | "type": "library", 79 | "extra": { 80 | "branch-alias": { 81 | "dev-master": "1.0.x-dev" 82 | } 83 | }, 84 | "autoload": { 85 | "psr-4": { 86 | "Psr\\Http\\Message\\": "src/" 87 | } 88 | }, 89 | "notification-url": "https://packagist.org/downloads/", 90 | "license": [ 91 | "MIT" 92 | ], 93 | "authors": [ 94 | { 95 | "name": "PHP-FIG", 96 | "homepage": "http://www.php-fig.org/" 97 | } 98 | ], 99 | "description": "Common interface for HTTP messages", 100 | "keywords": [ 101 | "http", 102 | "http-message", 103 | "psr", 104 | "psr-7", 105 | "request", 106 | "response" 107 | ], 108 | "time": "2015-05-04 20:22:00" 109 | } 110 | ], 111 | "packages-dev": [ 112 | { 113 | "name": "codeclimate/php-test-reporter", 114 | "version": "dev-master", 115 | "source": { 116 | "type": "git", 117 | "url": "https://github.com/codeclimate/php-test-reporter.git", 118 | "reference": "418ae782307841ac50fe26daa4cfe04520b0de9c" 119 | }, 120 | "dist": { 121 | "type": "zip", 122 | "url": "https://api.github.com/repos/codeclimate/php-test-reporter/zipball/418ae782307841ac50fe26daa4cfe04520b0de9c", 123 | "reference": "418ae782307841ac50fe26daa4cfe04520b0de9c", 124 | "shasum": "" 125 | }, 126 | "require": { 127 | "ext-curl": "*", 128 | "php": ">=5.3", 129 | "satooshi/php-coveralls": "0.6.*", 130 | "symfony/console": ">=2.0" 131 | }, 132 | "require-dev": { 133 | "ext-xdebug": "*", 134 | "phpunit/phpunit": "3.7.*@stable" 135 | }, 136 | "bin": [ 137 | "composer/bin/test-reporter" 138 | ], 139 | "type": "library", 140 | "extra": { 141 | "branch-alias": { 142 | "dev-master": "0.1.x-dev" 143 | } 144 | }, 145 | "autoload": { 146 | "psr-0": { 147 | "CodeClimate\\Component": "src/", 148 | "CodeClimate\\Bundle": "src/" 149 | } 150 | }, 151 | "notification-url": "https://packagist.org/downloads/", 152 | "license": [ 153 | "MIT" 154 | ], 155 | "authors": [ 156 | { 157 | "name": "Code Climate", 158 | "email": "hello@codeclimate.com", 159 | "homepage": "https://codeclimate.com" 160 | } 161 | ], 162 | "description": "PHP client for reporting test coverage to Code Climate", 163 | "homepage": "https://github.com/codeclimate/php-test-reporter", 164 | "keywords": [ 165 | "codeclimate", 166 | "coverage" 167 | ], 168 | "time": "2015-04-18 14:43:54" 169 | }, 170 | { 171 | "name": "defuse/php-encryption", 172 | "version": "v1.2.1", 173 | "source": { 174 | "type": "git", 175 | "url": "https://github.com/defuse/php-encryption.git", 176 | "reference": "b87737b2eec06b13f025cabea847338fa203d1b4" 177 | }, 178 | "dist": { 179 | "type": "zip", 180 | "url": "https://api.github.com/repos/defuse/php-encryption/zipball/b87737b2eec06b13f025cabea847338fa203d1b4", 181 | "reference": "b87737b2eec06b13f025cabea847338fa203d1b4", 182 | "shasum": "" 183 | }, 184 | "require": { 185 | "ext-mcrypt": "*", 186 | "ext-openssl": "*", 187 | "php": ">=5.4.0" 188 | }, 189 | "type": "library", 190 | "autoload": { 191 | "files": [ 192 | "Crypto.php" 193 | ] 194 | }, 195 | "notification-url": "https://packagist.org/downloads/", 196 | "license": [ 197 | "MIT" 198 | ], 199 | "authors": [ 200 | { 201 | "name": "Taylor Hornby", 202 | "email": "havoc@defuse.ca" 203 | } 204 | ], 205 | "description": "Secure PHP Encryption Library", 206 | "keywords": [ 207 | "aes", 208 | "cipher", 209 | "encryption", 210 | "mcrypt", 211 | "security" 212 | ], 213 | "time": "2015-03-14 20:27:45" 214 | }, 215 | { 216 | "name": "doctrine/instantiator", 217 | "version": "1.0.4", 218 | "source": { 219 | "type": "git", 220 | "url": "https://github.com/doctrine/instantiator.git", 221 | "reference": "f976e5de371104877ebc89bd8fecb0019ed9c119" 222 | }, 223 | "dist": { 224 | "type": "zip", 225 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/f976e5de371104877ebc89bd8fecb0019ed9c119", 226 | "reference": "f976e5de371104877ebc89bd8fecb0019ed9c119", 227 | "shasum": "" 228 | }, 229 | "require": { 230 | "php": ">=5.3,<8.0-DEV" 231 | }, 232 | "require-dev": { 233 | "athletic/athletic": "~0.1.8", 234 | "ext-pdo": "*", 235 | "ext-phar": "*", 236 | "phpunit/phpunit": "~4.0", 237 | "squizlabs/php_codesniffer": "2.0.*@ALPHA" 238 | }, 239 | "type": "library", 240 | "extra": { 241 | "branch-alias": { 242 | "dev-master": "1.0.x-dev" 243 | } 244 | }, 245 | "autoload": { 246 | "psr-0": { 247 | "Doctrine\\Instantiator\\": "src" 248 | } 249 | }, 250 | "notification-url": "https://packagist.org/downloads/", 251 | "license": [ 252 | "MIT" 253 | ], 254 | "authors": [ 255 | { 256 | "name": "Marco Pivetta", 257 | "email": "ocramius@gmail.com", 258 | "homepage": "http://ocramius.github.com/" 259 | } 260 | ], 261 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", 262 | "homepage": "https://github.com/doctrine/instantiator", 263 | "keywords": [ 264 | "constructor", 265 | "instantiate" 266 | ], 267 | "time": "2014-10-13 12:58:55" 268 | }, 269 | { 270 | "name": "guzzle/guzzle", 271 | "version": "v3.9.3", 272 | "source": { 273 | "type": "git", 274 | "url": "https://github.com/guzzle/guzzle3.git", 275 | "reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9" 276 | }, 277 | "dist": { 278 | "type": "zip", 279 | "url": "https://api.github.com/repos/guzzle/guzzle3/zipball/0645b70d953bc1c067bbc8d5bc53194706b628d9", 280 | "reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9", 281 | "shasum": "" 282 | }, 283 | "require": { 284 | "ext-curl": "*", 285 | "php": ">=5.3.3", 286 | "symfony/event-dispatcher": "~2.1" 287 | }, 288 | "replace": { 289 | "guzzle/batch": "self.version", 290 | "guzzle/cache": "self.version", 291 | "guzzle/common": "self.version", 292 | "guzzle/http": "self.version", 293 | "guzzle/inflection": "self.version", 294 | "guzzle/iterator": "self.version", 295 | "guzzle/log": "self.version", 296 | "guzzle/parser": "self.version", 297 | "guzzle/plugin": "self.version", 298 | "guzzle/plugin-async": "self.version", 299 | "guzzle/plugin-backoff": "self.version", 300 | "guzzle/plugin-cache": "self.version", 301 | "guzzle/plugin-cookie": "self.version", 302 | "guzzle/plugin-curlauth": "self.version", 303 | "guzzle/plugin-error-response": "self.version", 304 | "guzzle/plugin-history": "self.version", 305 | "guzzle/plugin-log": "self.version", 306 | "guzzle/plugin-md5": "self.version", 307 | "guzzle/plugin-mock": "self.version", 308 | "guzzle/plugin-oauth": "self.version", 309 | "guzzle/service": "self.version", 310 | "guzzle/stream": "self.version" 311 | }, 312 | "require-dev": { 313 | "doctrine/cache": "~1.3", 314 | "monolog/monolog": "~1.0", 315 | "phpunit/phpunit": "3.7.*", 316 | "psr/log": "~1.0", 317 | "symfony/class-loader": "~2.1", 318 | "zendframework/zend-cache": "2.*,<2.3", 319 | "zendframework/zend-log": "2.*,<2.3" 320 | }, 321 | "suggest": { 322 | "guzzlehttp/guzzle": "Guzzle 5 has moved to a new package name. The package you have installed, Guzzle 3, is deprecated." 323 | }, 324 | "type": "library", 325 | "extra": { 326 | "branch-alias": { 327 | "dev-master": "3.9-dev" 328 | } 329 | }, 330 | "autoload": { 331 | "psr-0": { 332 | "Guzzle": "src/", 333 | "Guzzle\\Tests": "tests/" 334 | } 335 | }, 336 | "notification-url": "https://packagist.org/downloads/", 337 | "license": [ 338 | "MIT" 339 | ], 340 | "authors": [ 341 | { 342 | "name": "Michael Dowling", 343 | "email": "mtdowling@gmail.com", 344 | "homepage": "https://github.com/mtdowling" 345 | }, 346 | { 347 | "name": "Guzzle Community", 348 | "homepage": "https://github.com/guzzle/guzzle/contributors" 349 | } 350 | ], 351 | "description": "PHP HTTP client. This library is deprecated in favor of https://packagist.org/packages/guzzlehttp/guzzle", 352 | "homepage": "http://guzzlephp.org/", 353 | "keywords": [ 354 | "client", 355 | "curl", 356 | "framework", 357 | "http", 358 | "http client", 359 | "rest", 360 | "web service" 361 | ], 362 | "time": "2015-03-18 18:23:50" 363 | }, 364 | { 365 | "name": "phpdocumentor/reflection-docblock", 366 | "version": "2.0.4", 367 | "source": { 368 | "type": "git", 369 | "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", 370 | "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8" 371 | }, 372 | "dist": { 373 | "type": "zip", 374 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/d68dbdc53dc358a816f00b300704702b2eaff7b8", 375 | "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8", 376 | "shasum": "" 377 | }, 378 | "require": { 379 | "php": ">=5.3.3" 380 | }, 381 | "require-dev": { 382 | "phpunit/phpunit": "~4.0" 383 | }, 384 | "suggest": { 385 | "dflydev/markdown": "~1.0", 386 | "erusev/parsedown": "~1.0" 387 | }, 388 | "type": "library", 389 | "extra": { 390 | "branch-alias": { 391 | "dev-master": "2.0.x-dev" 392 | } 393 | }, 394 | "autoload": { 395 | "psr-0": { 396 | "phpDocumentor": [ 397 | "src/" 398 | ] 399 | } 400 | }, 401 | "notification-url": "https://packagist.org/downloads/", 402 | "license": [ 403 | "MIT" 404 | ], 405 | "authors": [ 406 | { 407 | "name": "Mike van Riel", 408 | "email": "mike.vanriel@naenius.com" 409 | } 410 | ], 411 | "time": "2015-02-03 12:10:50" 412 | }, 413 | { 414 | "name": "phpseclib/phpseclib", 415 | "version": "0.3.10", 416 | "source": { 417 | "type": "git", 418 | "url": "https://github.com/phpseclib/phpseclib.git", 419 | "reference": "d15bba1edcc7c89e09cc74c5d961317a8b947bf4" 420 | }, 421 | "dist": { 422 | "type": "zip", 423 | "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/d15bba1edcc7c89e09cc74c5d961317a8b947bf4", 424 | "reference": "d15bba1edcc7c89e09cc74c5d961317a8b947bf4", 425 | "shasum": "" 426 | }, 427 | "require": { 428 | "php": ">=5.0.0" 429 | }, 430 | "require-dev": { 431 | "phing/phing": "~2.7", 432 | "phpunit/phpunit": "~4.0", 433 | "sami/sami": "~2.0", 434 | "squizlabs/php_codesniffer": "~1.5" 435 | }, 436 | "suggest": { 437 | "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.", 438 | "ext-mcrypt": "Install the Mcrypt extension in order to speed up a wide variety of cryptographic operations.", 439 | "pear-pear/PHP_Compat": "Install PHP_Compat to get phpseclib working on PHP < 4.3.3." 440 | }, 441 | "type": "library", 442 | "extra": { 443 | "branch-alias": { 444 | "dev-master": "0.3-dev" 445 | } 446 | }, 447 | "autoload": { 448 | "psr-0": { 449 | "Crypt": "phpseclib/", 450 | "File": "phpseclib/", 451 | "Math": "phpseclib/", 452 | "Net": "phpseclib/", 453 | "System": "phpseclib/" 454 | }, 455 | "files": [ 456 | "phpseclib/Crypt/Random.php" 457 | ] 458 | }, 459 | "notification-url": "https://packagist.org/downloads/", 460 | "include-path": [ 461 | "phpseclib/" 462 | ], 463 | "license": [ 464 | "MIT" 465 | ], 466 | "authors": [ 467 | { 468 | "name": "Jim Wigginton", 469 | "email": "terrafrost@php.net", 470 | "role": "Lead Developer" 471 | }, 472 | { 473 | "name": "Patrick Monnerat", 474 | "email": "pm@datasphere.ch", 475 | "role": "Developer" 476 | }, 477 | { 478 | "name": "Andreas Fischer", 479 | "email": "bantu@phpbb.com", 480 | "role": "Developer" 481 | }, 482 | { 483 | "name": "Hans-Jürgen Petrich", 484 | "email": "petrich@tronic-media.com", 485 | "role": "Developer" 486 | } 487 | ], 488 | "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.", 489 | "homepage": "http://phpseclib.sourceforge.net", 490 | "keywords": [ 491 | "BigInteger", 492 | "aes", 493 | "asn.1", 494 | "asn1", 495 | "blowfish", 496 | "crypto", 497 | "cryptography", 498 | "encryption", 499 | "rsa", 500 | "security", 501 | "sftp", 502 | "signature", 503 | "signing", 504 | "ssh", 505 | "twofish", 506 | "x.509", 507 | "x509" 508 | ], 509 | "time": "2015-01-28 21:50:33" 510 | }, 511 | { 512 | "name": "phpspec/prophecy", 513 | "version": "v1.4.1", 514 | "source": { 515 | "type": "git", 516 | "url": "https://github.com/phpspec/prophecy.git", 517 | "reference": "3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373" 518 | }, 519 | "dist": { 520 | "type": "zip", 521 | "url": "https://api.github.com/repos/phpspec/prophecy/zipball/3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373", 522 | "reference": "3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373", 523 | "shasum": "" 524 | }, 525 | "require": { 526 | "doctrine/instantiator": "^1.0.2", 527 | "phpdocumentor/reflection-docblock": "~2.0", 528 | "sebastian/comparator": "~1.1" 529 | }, 530 | "require-dev": { 531 | "phpspec/phpspec": "~2.0" 532 | }, 533 | "type": "library", 534 | "extra": { 535 | "branch-alias": { 536 | "dev-master": "1.4.x-dev" 537 | } 538 | }, 539 | "autoload": { 540 | "psr-0": { 541 | "Prophecy\\": "src/" 542 | } 543 | }, 544 | "notification-url": "https://packagist.org/downloads/", 545 | "license": [ 546 | "MIT" 547 | ], 548 | "authors": [ 549 | { 550 | "name": "Konstantin Kudryashov", 551 | "email": "ever.zet@gmail.com", 552 | "homepage": "http://everzet.com" 553 | }, 554 | { 555 | "name": "Marcello Duarte", 556 | "email": "marcello.duarte@gmail.com" 557 | } 558 | ], 559 | "description": "Highly opinionated mocking framework for PHP 5.3+", 560 | "homepage": "https://github.com/phpspec/prophecy", 561 | "keywords": [ 562 | "Double", 563 | "Dummy", 564 | "fake", 565 | "mock", 566 | "spy", 567 | "stub" 568 | ], 569 | "time": "2015-04-27 22:15:08" 570 | }, 571 | { 572 | "name": "phpunit/php-code-coverage", 573 | "version": "2.1.3", 574 | "source": { 575 | "type": "git", 576 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git", 577 | "reference": "28a6b34e91d789b2608072ab3c82eaae7cdb973c" 578 | }, 579 | "dist": { 580 | "type": "zip", 581 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/28a6b34e91d789b2608072ab3c82eaae7cdb973c", 582 | "reference": "28a6b34e91d789b2608072ab3c82eaae7cdb973c", 583 | "shasum": "" 584 | }, 585 | "require": { 586 | "php": ">=5.3.3", 587 | "phpunit/php-file-iterator": "~1.3", 588 | "phpunit/php-text-template": "~1.2", 589 | "phpunit/php-token-stream": "~1.3", 590 | "sebastian/environment": "~1.0", 591 | "sebastian/version": "~1.0" 592 | }, 593 | "require-dev": { 594 | "ext-xdebug": ">=2.1.4", 595 | "phpunit/phpunit": "~4" 596 | }, 597 | "suggest": { 598 | "ext-dom": "*", 599 | "ext-xdebug": ">=2.2.1", 600 | "ext-xmlwriter": "*" 601 | }, 602 | "type": "library", 603 | "extra": { 604 | "branch-alias": { 605 | "dev-master": "2.1.x-dev" 606 | } 607 | }, 608 | "autoload": { 609 | "classmap": [ 610 | "src/" 611 | ] 612 | }, 613 | "notification-url": "https://packagist.org/downloads/", 614 | "license": [ 615 | "BSD-3-Clause" 616 | ], 617 | "authors": [ 618 | { 619 | "name": "Sebastian Bergmann", 620 | "email": "sb@sebastian-bergmann.de", 621 | "role": "lead" 622 | } 623 | ], 624 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", 625 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage", 626 | "keywords": [ 627 | "coverage", 628 | "testing", 629 | "xunit" 630 | ], 631 | "time": "2015-06-03 07:01:01" 632 | }, 633 | { 634 | "name": "phpunit/php-file-iterator", 635 | "version": "1.4.0", 636 | "source": { 637 | "type": "git", 638 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git", 639 | "reference": "a923bb15680d0089e2316f7a4af8f437046e96bb" 640 | }, 641 | "dist": { 642 | "type": "zip", 643 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a923bb15680d0089e2316f7a4af8f437046e96bb", 644 | "reference": "a923bb15680d0089e2316f7a4af8f437046e96bb", 645 | "shasum": "" 646 | }, 647 | "require": { 648 | "php": ">=5.3.3" 649 | }, 650 | "type": "library", 651 | "extra": { 652 | "branch-alias": { 653 | "dev-master": "1.4.x-dev" 654 | } 655 | }, 656 | "autoload": { 657 | "classmap": [ 658 | "src/" 659 | ] 660 | }, 661 | "notification-url": "https://packagist.org/downloads/", 662 | "license": [ 663 | "BSD-3-Clause" 664 | ], 665 | "authors": [ 666 | { 667 | "name": "Sebastian Bergmann", 668 | "email": "sb@sebastian-bergmann.de", 669 | "role": "lead" 670 | } 671 | ], 672 | "description": "FilterIterator implementation that filters files based on a list of suffixes.", 673 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", 674 | "keywords": [ 675 | "filesystem", 676 | "iterator" 677 | ], 678 | "time": "2015-04-02 05:19:05" 679 | }, 680 | { 681 | "name": "phpunit/php-text-template", 682 | "version": "1.2.0", 683 | "source": { 684 | "type": "git", 685 | "url": "https://github.com/sebastianbergmann/php-text-template.git", 686 | "reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a" 687 | }, 688 | "dist": { 689 | "type": "zip", 690 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/206dfefc0ffe9cebf65c413e3d0e809c82fbf00a", 691 | "reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a", 692 | "shasum": "" 693 | }, 694 | "require": { 695 | "php": ">=5.3.3" 696 | }, 697 | "type": "library", 698 | "autoload": { 699 | "classmap": [ 700 | "Text/" 701 | ] 702 | }, 703 | "notification-url": "https://packagist.org/downloads/", 704 | "include-path": [ 705 | "" 706 | ], 707 | "license": [ 708 | "BSD-3-Clause" 709 | ], 710 | "authors": [ 711 | { 712 | "name": "Sebastian Bergmann", 713 | "email": "sb@sebastian-bergmann.de", 714 | "role": "lead" 715 | } 716 | ], 717 | "description": "Simple template engine.", 718 | "homepage": "https://github.com/sebastianbergmann/php-text-template/", 719 | "keywords": [ 720 | "template" 721 | ], 722 | "time": "2014-01-30 17:20:04" 723 | }, 724 | { 725 | "name": "phpunit/php-timer", 726 | "version": "1.0.5", 727 | "source": { 728 | "type": "git", 729 | "url": "https://github.com/sebastianbergmann/php-timer.git", 730 | "reference": "19689d4354b295ee3d8c54b4f42c3efb69cbc17c" 731 | }, 732 | "dist": { 733 | "type": "zip", 734 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/19689d4354b295ee3d8c54b4f42c3efb69cbc17c", 735 | "reference": "19689d4354b295ee3d8c54b4f42c3efb69cbc17c", 736 | "shasum": "" 737 | }, 738 | "require": { 739 | "php": ">=5.3.3" 740 | }, 741 | "type": "library", 742 | "autoload": { 743 | "classmap": [ 744 | "PHP/" 745 | ] 746 | }, 747 | "notification-url": "https://packagist.org/downloads/", 748 | "include-path": [ 749 | "" 750 | ], 751 | "license": [ 752 | "BSD-3-Clause" 753 | ], 754 | "authors": [ 755 | { 756 | "name": "Sebastian Bergmann", 757 | "email": "sb@sebastian-bergmann.de", 758 | "role": "lead" 759 | } 760 | ], 761 | "description": "Utility class for timing", 762 | "homepage": "https://github.com/sebastianbergmann/php-timer/", 763 | "keywords": [ 764 | "timer" 765 | ], 766 | "time": "2013-08-02 07:42:54" 767 | }, 768 | { 769 | "name": "phpunit/php-token-stream", 770 | "version": "1.4.1", 771 | "source": { 772 | "type": "git", 773 | "url": "https://github.com/sebastianbergmann/php-token-stream.git", 774 | "reference": "eab81d02569310739373308137284e0158424330" 775 | }, 776 | "dist": { 777 | "type": "zip", 778 | "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/eab81d02569310739373308137284e0158424330", 779 | "reference": "eab81d02569310739373308137284e0158424330", 780 | "shasum": "" 781 | }, 782 | "require": { 783 | "ext-tokenizer": "*", 784 | "php": ">=5.3.3" 785 | }, 786 | "require-dev": { 787 | "phpunit/phpunit": "~4.2" 788 | }, 789 | "type": "library", 790 | "extra": { 791 | "branch-alias": { 792 | "dev-master": "1.4-dev" 793 | } 794 | }, 795 | "autoload": { 796 | "classmap": [ 797 | "src/" 798 | ] 799 | }, 800 | "notification-url": "https://packagist.org/downloads/", 801 | "license": [ 802 | "BSD-3-Clause" 803 | ], 804 | "authors": [ 805 | { 806 | "name": "Sebastian Bergmann", 807 | "email": "sebastian@phpunit.de" 808 | } 809 | ], 810 | "description": "Wrapper around PHP's tokenizer extension.", 811 | "homepage": "https://github.com/sebastianbergmann/php-token-stream/", 812 | "keywords": [ 813 | "tokenizer" 814 | ], 815 | "time": "2015-04-08 04:46:07" 816 | }, 817 | { 818 | "name": "phpunit/phpunit", 819 | "version": "4.6.10", 820 | "source": { 821 | "type": "git", 822 | "url": "https://github.com/sebastianbergmann/phpunit.git", 823 | "reference": "7b5fe98b28302a8b25693b2298bca74463336975" 824 | }, 825 | "dist": { 826 | "type": "zip", 827 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/7b5fe98b28302a8b25693b2298bca74463336975", 828 | "reference": "7b5fe98b28302a8b25693b2298bca74463336975", 829 | "shasum": "" 830 | }, 831 | "require": { 832 | "ext-dom": "*", 833 | "ext-json": "*", 834 | "ext-pcre": "*", 835 | "ext-reflection": "*", 836 | "ext-spl": "*", 837 | "php": ">=5.3.3", 838 | "phpspec/prophecy": "~1.3,>=1.3.1", 839 | "phpunit/php-code-coverage": "~2.0,>=2.0.11", 840 | "phpunit/php-file-iterator": "~1.4", 841 | "phpunit/php-text-template": "~1.2", 842 | "phpunit/php-timer": "~1.0", 843 | "phpunit/phpunit-mock-objects": "~2.3", 844 | "sebastian/comparator": "~1.1", 845 | "sebastian/diff": "~1.2", 846 | "sebastian/environment": "~1.2", 847 | "sebastian/exporter": "~1.2", 848 | "sebastian/global-state": "~1.0", 849 | "sebastian/version": "~1.0", 850 | "symfony/yaml": "~2.1|~3.0" 851 | }, 852 | "suggest": { 853 | "phpunit/php-invoker": "~1.1" 854 | }, 855 | "bin": [ 856 | "phpunit" 857 | ], 858 | "type": "library", 859 | "extra": { 860 | "branch-alias": { 861 | "dev-master": "4.6.x-dev" 862 | } 863 | }, 864 | "autoload": { 865 | "classmap": [ 866 | "src/" 867 | ] 868 | }, 869 | "notification-url": "https://packagist.org/downloads/", 870 | "license": [ 871 | "BSD-3-Clause" 872 | ], 873 | "authors": [ 874 | { 875 | "name": "Sebastian Bergmann", 876 | "email": "sebastian@phpunit.de", 877 | "role": "lead" 878 | } 879 | ], 880 | "description": "The PHP Unit Testing framework.", 881 | "homepage": "https://phpunit.de/", 882 | "keywords": [ 883 | "phpunit", 884 | "testing", 885 | "xunit" 886 | ], 887 | "time": "2015-06-03 05:03:30" 888 | }, 889 | { 890 | "name": "phpunit/phpunit-mock-objects", 891 | "version": "2.3.3", 892 | "source": { 893 | "type": "git", 894 | "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", 895 | "reference": "253c005852591fd547fc18cd5b7b43a1ec82d8f7" 896 | }, 897 | "dist": { 898 | "type": "zip", 899 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/253c005852591fd547fc18cd5b7b43a1ec82d8f7", 900 | "reference": "253c005852591fd547fc18cd5b7b43a1ec82d8f7", 901 | "shasum": "" 902 | }, 903 | "require": { 904 | "doctrine/instantiator": "~1.0,>=1.0.2", 905 | "php": ">=5.3.3", 906 | "phpunit/php-text-template": "~1.2" 907 | }, 908 | "require-dev": { 909 | "phpunit/phpunit": "~4.4" 910 | }, 911 | "suggest": { 912 | "ext-soap": "*" 913 | }, 914 | "type": "library", 915 | "extra": { 916 | "branch-alias": { 917 | "dev-master": "2.3.x-dev" 918 | } 919 | }, 920 | "autoload": { 921 | "classmap": [ 922 | "src/" 923 | ] 924 | }, 925 | "notification-url": "https://packagist.org/downloads/", 926 | "license": [ 927 | "BSD-3-Clause" 928 | ], 929 | "authors": [ 930 | { 931 | "name": "Sebastian Bergmann", 932 | "email": "sb@sebastian-bergmann.de", 933 | "role": "lead" 934 | } 935 | ], 936 | "description": "Mock Object library for PHPUnit", 937 | "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", 938 | "keywords": [ 939 | "mock", 940 | "xunit" 941 | ], 942 | "time": "2015-05-29 05:19:18" 943 | }, 944 | { 945 | "name": "psr/log", 946 | "version": "1.0.0", 947 | "source": { 948 | "type": "git", 949 | "url": "https://github.com/php-fig/log.git", 950 | "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b" 951 | }, 952 | "dist": { 953 | "type": "zip", 954 | "url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b", 955 | "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b", 956 | "shasum": "" 957 | }, 958 | "type": "library", 959 | "autoload": { 960 | "psr-0": { 961 | "Psr\\Log\\": "" 962 | } 963 | }, 964 | "notification-url": "https://packagist.org/downloads/", 965 | "license": [ 966 | "MIT" 967 | ], 968 | "authors": [ 969 | { 970 | "name": "PHP-FIG", 971 | "homepage": "http://www.php-fig.org/" 972 | } 973 | ], 974 | "description": "Common interface for logging libraries", 975 | "keywords": [ 976 | "log", 977 | "psr", 978 | "psr-3" 979 | ], 980 | "time": "2012-12-21 11:40:51" 981 | }, 982 | { 983 | "name": "satooshi/php-coveralls", 984 | "version": "v0.6.1", 985 | "source": { 986 | "type": "git", 987 | "url": "https://github.com/satooshi/php-coveralls.git", 988 | "reference": "dd0df95bd37a7cf5c5c50304dfe260ffe4b50760" 989 | }, 990 | "dist": { 991 | "type": "zip", 992 | "url": "https://api.github.com/repos/satooshi/php-coveralls/zipball/dd0df95bd37a7cf5c5c50304dfe260ffe4b50760", 993 | "reference": "dd0df95bd37a7cf5c5c50304dfe260ffe4b50760", 994 | "shasum": "" 995 | }, 996 | "require": { 997 | "ext-curl": "*", 998 | "ext-json": "*", 999 | "ext-simplexml": "*", 1000 | "guzzle/guzzle": ">=3.0", 1001 | "php": ">=5.3", 1002 | "psr/log": "1.0.0", 1003 | "symfony/config": ">=2.0", 1004 | "symfony/console": ">=2.0", 1005 | "symfony/stopwatch": ">=2.2", 1006 | "symfony/yaml": ">=2.0" 1007 | }, 1008 | "require-dev": { 1009 | "apigen/apigen": "2.8.*@stable", 1010 | "pdepend/pdepend": "dev-master", 1011 | "phpmd/phpmd": "dev-master", 1012 | "phpunit/php-invoker": ">=1.1.0,<1.2.0", 1013 | "phpunit/phpunit": "3.7.*@stable", 1014 | "sebastian/finder-facade": "dev-master", 1015 | "sebastian/phpcpd": "1.4.*@stable", 1016 | "squizlabs/php_codesniffer": "1.4.*@stable", 1017 | "theseer/fdomdocument": "dev-master" 1018 | }, 1019 | "bin": [ 1020 | "composer/bin/coveralls" 1021 | ], 1022 | "type": "library", 1023 | "autoload": { 1024 | "psr-0": { 1025 | "Contrib\\Component": "src/", 1026 | "Contrib\\Bundle": "src/" 1027 | } 1028 | }, 1029 | "notification-url": "https://packagist.org/downloads/", 1030 | "license": [ 1031 | "MIT" 1032 | ], 1033 | "authors": [ 1034 | { 1035 | "name": "Kitamura Satoshi", 1036 | "email": "with.no.parachute@gmail.com", 1037 | "homepage": "https://www.facebook.com/satooshi.jp" 1038 | } 1039 | ], 1040 | "description": "PHP client library for Coveralls API", 1041 | "homepage": "https://github.com/satooshi/php-coveralls", 1042 | "keywords": [ 1043 | "ci", 1044 | "coverage", 1045 | "github", 1046 | "test" 1047 | ], 1048 | "time": "2013-05-04 08:07:33" 1049 | }, 1050 | { 1051 | "name": "sebastian/comparator", 1052 | "version": "1.1.1", 1053 | "source": { 1054 | "type": "git", 1055 | "url": "https://github.com/sebastianbergmann/comparator.git", 1056 | "reference": "1dd8869519a225f7f2b9eb663e225298fade819e" 1057 | }, 1058 | "dist": { 1059 | "type": "zip", 1060 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1dd8869519a225f7f2b9eb663e225298fade819e", 1061 | "reference": "1dd8869519a225f7f2b9eb663e225298fade819e", 1062 | "shasum": "" 1063 | }, 1064 | "require": { 1065 | "php": ">=5.3.3", 1066 | "sebastian/diff": "~1.2", 1067 | "sebastian/exporter": "~1.2" 1068 | }, 1069 | "require-dev": { 1070 | "phpunit/phpunit": "~4.4" 1071 | }, 1072 | "type": "library", 1073 | "extra": { 1074 | "branch-alias": { 1075 | "dev-master": "1.1.x-dev" 1076 | } 1077 | }, 1078 | "autoload": { 1079 | "classmap": [ 1080 | "src/" 1081 | ] 1082 | }, 1083 | "notification-url": "https://packagist.org/downloads/", 1084 | "license": [ 1085 | "BSD-3-Clause" 1086 | ], 1087 | "authors": [ 1088 | { 1089 | "name": "Jeff Welch", 1090 | "email": "whatthejeff@gmail.com" 1091 | }, 1092 | { 1093 | "name": "Volker Dusch", 1094 | "email": "github@wallbash.com" 1095 | }, 1096 | { 1097 | "name": "Bernhard Schussek", 1098 | "email": "bschussek@2bepublished.at" 1099 | }, 1100 | { 1101 | "name": "Sebastian Bergmann", 1102 | "email": "sebastian@phpunit.de" 1103 | } 1104 | ], 1105 | "description": "Provides the functionality to compare PHP values for equality", 1106 | "homepage": "http://www.github.com/sebastianbergmann/comparator", 1107 | "keywords": [ 1108 | "comparator", 1109 | "compare", 1110 | "equality" 1111 | ], 1112 | "time": "2015-01-29 16:28:08" 1113 | }, 1114 | { 1115 | "name": "sebastian/diff", 1116 | "version": "1.3.0", 1117 | "source": { 1118 | "type": "git", 1119 | "url": "https://github.com/sebastianbergmann/diff.git", 1120 | "reference": "863df9687835c62aa423a22412d26fa2ebde3fd3" 1121 | }, 1122 | "dist": { 1123 | "type": "zip", 1124 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/863df9687835c62aa423a22412d26fa2ebde3fd3", 1125 | "reference": "863df9687835c62aa423a22412d26fa2ebde3fd3", 1126 | "shasum": "" 1127 | }, 1128 | "require": { 1129 | "php": ">=5.3.3" 1130 | }, 1131 | "require-dev": { 1132 | "phpunit/phpunit": "~4.2" 1133 | }, 1134 | "type": "library", 1135 | "extra": { 1136 | "branch-alias": { 1137 | "dev-master": "1.3-dev" 1138 | } 1139 | }, 1140 | "autoload": { 1141 | "classmap": [ 1142 | "src/" 1143 | ] 1144 | }, 1145 | "notification-url": "https://packagist.org/downloads/", 1146 | "license": [ 1147 | "BSD-3-Clause" 1148 | ], 1149 | "authors": [ 1150 | { 1151 | "name": "Kore Nordmann", 1152 | "email": "mail@kore-nordmann.de" 1153 | }, 1154 | { 1155 | "name": "Sebastian Bergmann", 1156 | "email": "sebastian@phpunit.de" 1157 | } 1158 | ], 1159 | "description": "Diff implementation", 1160 | "homepage": "http://www.github.com/sebastianbergmann/diff", 1161 | "keywords": [ 1162 | "diff" 1163 | ], 1164 | "time": "2015-02-22 15:13:53" 1165 | }, 1166 | { 1167 | "name": "sebastian/environment", 1168 | "version": "1.2.2", 1169 | "source": { 1170 | "type": "git", 1171 | "url": "https://github.com/sebastianbergmann/environment.git", 1172 | "reference": "5a8c7d31914337b69923db26c4221b81ff5a196e" 1173 | }, 1174 | "dist": { 1175 | "type": "zip", 1176 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5a8c7d31914337b69923db26c4221b81ff5a196e", 1177 | "reference": "5a8c7d31914337b69923db26c4221b81ff5a196e", 1178 | "shasum": "" 1179 | }, 1180 | "require": { 1181 | "php": ">=5.3.3" 1182 | }, 1183 | "require-dev": { 1184 | "phpunit/phpunit": "~4.4" 1185 | }, 1186 | "type": "library", 1187 | "extra": { 1188 | "branch-alias": { 1189 | "dev-master": "1.3.x-dev" 1190 | } 1191 | }, 1192 | "autoload": { 1193 | "classmap": [ 1194 | "src/" 1195 | ] 1196 | }, 1197 | "notification-url": "https://packagist.org/downloads/", 1198 | "license": [ 1199 | "BSD-3-Clause" 1200 | ], 1201 | "authors": [ 1202 | { 1203 | "name": "Sebastian Bergmann", 1204 | "email": "sebastian@phpunit.de" 1205 | } 1206 | ], 1207 | "description": "Provides functionality to handle HHVM/PHP environments", 1208 | "homepage": "http://www.github.com/sebastianbergmann/environment", 1209 | "keywords": [ 1210 | "Xdebug", 1211 | "environment", 1212 | "hhvm" 1213 | ], 1214 | "time": "2015-01-01 10:01:08" 1215 | }, 1216 | { 1217 | "name": "sebastian/exporter", 1218 | "version": "1.2.0", 1219 | "source": { 1220 | "type": "git", 1221 | "url": "https://github.com/sebastianbergmann/exporter.git", 1222 | "reference": "84839970d05254c73cde183a721c7af13aede943" 1223 | }, 1224 | "dist": { 1225 | "type": "zip", 1226 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/84839970d05254c73cde183a721c7af13aede943", 1227 | "reference": "84839970d05254c73cde183a721c7af13aede943", 1228 | "shasum": "" 1229 | }, 1230 | "require": { 1231 | "php": ">=5.3.3", 1232 | "sebastian/recursion-context": "~1.0" 1233 | }, 1234 | "require-dev": { 1235 | "phpunit/phpunit": "~4.4" 1236 | }, 1237 | "type": "library", 1238 | "extra": { 1239 | "branch-alias": { 1240 | "dev-master": "1.2.x-dev" 1241 | } 1242 | }, 1243 | "autoload": { 1244 | "classmap": [ 1245 | "src/" 1246 | ] 1247 | }, 1248 | "notification-url": "https://packagist.org/downloads/", 1249 | "license": [ 1250 | "BSD-3-Clause" 1251 | ], 1252 | "authors": [ 1253 | { 1254 | "name": "Jeff Welch", 1255 | "email": "whatthejeff@gmail.com" 1256 | }, 1257 | { 1258 | "name": "Volker Dusch", 1259 | "email": "github@wallbash.com" 1260 | }, 1261 | { 1262 | "name": "Bernhard Schussek", 1263 | "email": "bschussek@2bepublished.at" 1264 | }, 1265 | { 1266 | "name": "Sebastian Bergmann", 1267 | "email": "sebastian@phpunit.de" 1268 | }, 1269 | { 1270 | "name": "Adam Harvey", 1271 | "email": "aharvey@php.net" 1272 | } 1273 | ], 1274 | "description": "Provides the functionality to export PHP variables for visualization", 1275 | "homepage": "http://www.github.com/sebastianbergmann/exporter", 1276 | "keywords": [ 1277 | "export", 1278 | "exporter" 1279 | ], 1280 | "time": "2015-01-27 07:23:06" 1281 | }, 1282 | { 1283 | "name": "sebastian/global-state", 1284 | "version": "1.0.0", 1285 | "source": { 1286 | "type": "git", 1287 | "url": "https://github.com/sebastianbergmann/global-state.git", 1288 | "reference": "c7428acdb62ece0a45e6306f1ae85e1c05b09c01" 1289 | }, 1290 | "dist": { 1291 | "type": "zip", 1292 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/c7428acdb62ece0a45e6306f1ae85e1c05b09c01", 1293 | "reference": "c7428acdb62ece0a45e6306f1ae85e1c05b09c01", 1294 | "shasum": "" 1295 | }, 1296 | "require": { 1297 | "php": ">=5.3.3" 1298 | }, 1299 | "require-dev": { 1300 | "phpunit/phpunit": "~4.2" 1301 | }, 1302 | "suggest": { 1303 | "ext-uopz": "*" 1304 | }, 1305 | "type": "library", 1306 | "extra": { 1307 | "branch-alias": { 1308 | "dev-master": "1.0-dev" 1309 | } 1310 | }, 1311 | "autoload": { 1312 | "classmap": [ 1313 | "src/" 1314 | ] 1315 | }, 1316 | "notification-url": "https://packagist.org/downloads/", 1317 | "license": [ 1318 | "BSD-3-Clause" 1319 | ], 1320 | "authors": [ 1321 | { 1322 | "name": "Sebastian Bergmann", 1323 | "email": "sebastian@phpunit.de" 1324 | } 1325 | ], 1326 | "description": "Snapshotting of global state", 1327 | "homepage": "http://www.github.com/sebastianbergmann/global-state", 1328 | "keywords": [ 1329 | "global state" 1330 | ], 1331 | "time": "2014-10-06 09:23:50" 1332 | }, 1333 | { 1334 | "name": "sebastian/recursion-context", 1335 | "version": "1.0.0", 1336 | "source": { 1337 | "type": "git", 1338 | "url": "https://github.com/sebastianbergmann/recursion-context.git", 1339 | "reference": "3989662bbb30a29d20d9faa04a846af79b276252" 1340 | }, 1341 | "dist": { 1342 | "type": "zip", 1343 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/3989662bbb30a29d20d9faa04a846af79b276252", 1344 | "reference": "3989662bbb30a29d20d9faa04a846af79b276252", 1345 | "shasum": "" 1346 | }, 1347 | "require": { 1348 | "php": ">=5.3.3" 1349 | }, 1350 | "require-dev": { 1351 | "phpunit/phpunit": "~4.4" 1352 | }, 1353 | "type": "library", 1354 | "extra": { 1355 | "branch-alias": { 1356 | "dev-master": "1.0.x-dev" 1357 | } 1358 | }, 1359 | "autoload": { 1360 | "classmap": [ 1361 | "src/" 1362 | ] 1363 | }, 1364 | "notification-url": "https://packagist.org/downloads/", 1365 | "license": [ 1366 | "BSD-3-Clause" 1367 | ], 1368 | "authors": [ 1369 | { 1370 | "name": "Jeff Welch", 1371 | "email": "whatthejeff@gmail.com" 1372 | }, 1373 | { 1374 | "name": "Sebastian Bergmann", 1375 | "email": "sebastian@phpunit.de" 1376 | }, 1377 | { 1378 | "name": "Adam Harvey", 1379 | "email": "aharvey@php.net" 1380 | } 1381 | ], 1382 | "description": "Provides functionality to recursively process PHP variables", 1383 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context", 1384 | "time": "2015-01-24 09:48:32" 1385 | }, 1386 | { 1387 | "name": "sebastian/version", 1388 | "version": "1.0.5", 1389 | "source": { 1390 | "type": "git", 1391 | "url": "https://github.com/sebastianbergmann/version.git", 1392 | "reference": "ab931d46cd0d3204a91e1b9a40c4bc13032b58e4" 1393 | }, 1394 | "dist": { 1395 | "type": "zip", 1396 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/ab931d46cd0d3204a91e1b9a40c4bc13032b58e4", 1397 | "reference": "ab931d46cd0d3204a91e1b9a40c4bc13032b58e4", 1398 | "shasum": "" 1399 | }, 1400 | "type": "library", 1401 | "autoload": { 1402 | "classmap": [ 1403 | "src/" 1404 | ] 1405 | }, 1406 | "notification-url": "https://packagist.org/downloads/", 1407 | "license": [ 1408 | "BSD-3-Clause" 1409 | ], 1410 | "authors": [ 1411 | { 1412 | "name": "Sebastian Bergmann", 1413 | "email": "sebastian@phpunit.de", 1414 | "role": "lead" 1415 | } 1416 | ], 1417 | "description": "Library that helps with managing the version number of Git-hosted PHP projects", 1418 | "homepage": "https://github.com/sebastianbergmann/version", 1419 | "time": "2015-02-24 06:35:25" 1420 | }, 1421 | { 1422 | "name": "squizlabs/php_codesniffer", 1423 | "version": "2.3.2", 1424 | "source": { 1425 | "type": "git", 1426 | "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", 1427 | "reference": "e96d8579fbed0c95ecf2a0501ec4f307a4aa6404" 1428 | }, 1429 | "dist": { 1430 | "type": "zip", 1431 | "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/e96d8579fbed0c95ecf2a0501ec4f307a4aa6404", 1432 | "reference": "e96d8579fbed0c95ecf2a0501ec4f307a4aa6404", 1433 | "shasum": "" 1434 | }, 1435 | "require": { 1436 | "ext-tokenizer": "*", 1437 | "ext-xmlwriter": "*", 1438 | "php": ">=5.1.2" 1439 | }, 1440 | "bin": [ 1441 | "scripts/phpcs", 1442 | "scripts/phpcbf" 1443 | ], 1444 | "type": "library", 1445 | "extra": { 1446 | "branch-alias": { 1447 | "dev-master": "2.0.x-dev" 1448 | } 1449 | }, 1450 | "autoload": { 1451 | "classmap": [ 1452 | "CodeSniffer.php", 1453 | "CodeSniffer/CLI.php", 1454 | "CodeSniffer/Exception.php", 1455 | "CodeSniffer/File.php", 1456 | "CodeSniffer/Fixer.php", 1457 | "CodeSniffer/Report.php", 1458 | "CodeSniffer/Reporting.php", 1459 | "CodeSniffer/Sniff.php", 1460 | "CodeSniffer/Tokens.php", 1461 | "CodeSniffer/Reports/", 1462 | "CodeSniffer/Tokenizers/", 1463 | "CodeSniffer/DocGenerators/", 1464 | "CodeSniffer/Standards/AbstractPatternSniff.php", 1465 | "CodeSniffer/Standards/AbstractScopeSniff.php", 1466 | "CodeSniffer/Standards/AbstractVariableSniff.php", 1467 | "CodeSniffer/Standards/IncorrectPatternException.php", 1468 | "CodeSniffer/Standards/Generic/Sniffs/", 1469 | "CodeSniffer/Standards/MySource/Sniffs/", 1470 | "CodeSniffer/Standards/PEAR/Sniffs/", 1471 | "CodeSniffer/Standards/PSR1/Sniffs/", 1472 | "CodeSniffer/Standards/PSR2/Sniffs/", 1473 | "CodeSniffer/Standards/Squiz/Sniffs/", 1474 | "CodeSniffer/Standards/Zend/Sniffs/" 1475 | ] 1476 | }, 1477 | "notification-url": "https://packagist.org/downloads/", 1478 | "license": [ 1479 | "BSD-3-Clause" 1480 | ], 1481 | "authors": [ 1482 | { 1483 | "name": "Greg Sherwood", 1484 | "role": "lead" 1485 | } 1486 | ], 1487 | "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", 1488 | "homepage": "http://www.squizlabs.com/php-codesniffer", 1489 | "keywords": [ 1490 | "phpcs", 1491 | "standards" 1492 | ], 1493 | "time": "2015-04-28 23:28:20" 1494 | }, 1495 | { 1496 | "name": "symfony/config", 1497 | "version": "v2.7.0", 1498 | "source": { 1499 | "type": "git", 1500 | "url": "https://github.com/symfony/Config.git", 1501 | "reference": "537e9912063e66aa70cbcddd7d6e6e8db61d98e4" 1502 | }, 1503 | "dist": { 1504 | "type": "zip", 1505 | "url": "https://api.github.com/repos/symfony/Config/zipball/537e9912063e66aa70cbcddd7d6e6e8db61d98e4", 1506 | "reference": "537e9912063e66aa70cbcddd7d6e6e8db61d98e4", 1507 | "shasum": "" 1508 | }, 1509 | "require": { 1510 | "php": ">=5.3.9", 1511 | "symfony/filesystem": "~2.3" 1512 | }, 1513 | "require-dev": { 1514 | "symfony/phpunit-bridge": "~2.7" 1515 | }, 1516 | "type": "library", 1517 | "extra": { 1518 | "branch-alias": { 1519 | "dev-master": "2.7-dev" 1520 | } 1521 | }, 1522 | "autoload": { 1523 | "psr-4": { 1524 | "Symfony\\Component\\Config\\": "" 1525 | } 1526 | }, 1527 | "notification-url": "https://packagist.org/downloads/", 1528 | "license": [ 1529 | "MIT" 1530 | ], 1531 | "authors": [ 1532 | { 1533 | "name": "Fabien Potencier", 1534 | "email": "fabien@symfony.com" 1535 | }, 1536 | { 1537 | "name": "Symfony Community", 1538 | "homepage": "https://symfony.com/contributors" 1539 | } 1540 | ], 1541 | "description": "Symfony Config Component", 1542 | "homepage": "https://symfony.com", 1543 | "time": "2015-05-15 13:33:16" 1544 | }, 1545 | { 1546 | "name": "symfony/console", 1547 | "version": "v2.7.0", 1548 | "source": { 1549 | "type": "git", 1550 | "url": "https://github.com/symfony/Console.git", 1551 | "reference": "7f0bec04961c61c961df0cb8c2ae88dbfd83f399" 1552 | }, 1553 | "dist": { 1554 | "type": "zip", 1555 | "url": "https://api.github.com/repos/symfony/Console/zipball/7f0bec04961c61c961df0cb8c2ae88dbfd83f399", 1556 | "reference": "7f0bec04961c61c961df0cb8c2ae88dbfd83f399", 1557 | "shasum": "" 1558 | }, 1559 | "require": { 1560 | "php": ">=5.3.9" 1561 | }, 1562 | "require-dev": { 1563 | "psr/log": "~1.0", 1564 | "symfony/event-dispatcher": "~2.1", 1565 | "symfony/phpunit-bridge": "~2.7", 1566 | "symfony/process": "~2.1" 1567 | }, 1568 | "suggest": { 1569 | "psr/log": "For using the console logger", 1570 | "symfony/event-dispatcher": "", 1571 | "symfony/process": "" 1572 | }, 1573 | "type": "library", 1574 | "extra": { 1575 | "branch-alias": { 1576 | "dev-master": "2.7-dev" 1577 | } 1578 | }, 1579 | "autoload": { 1580 | "psr-4": { 1581 | "Symfony\\Component\\Console\\": "" 1582 | } 1583 | }, 1584 | "notification-url": "https://packagist.org/downloads/", 1585 | "license": [ 1586 | "MIT" 1587 | ], 1588 | "authors": [ 1589 | { 1590 | "name": "Fabien Potencier", 1591 | "email": "fabien@symfony.com" 1592 | }, 1593 | { 1594 | "name": "Symfony Community", 1595 | "homepage": "https://symfony.com/contributors" 1596 | } 1597 | ], 1598 | "description": "Symfony Console Component", 1599 | "homepage": "https://symfony.com", 1600 | "time": "2015-05-29 16:22:24" 1601 | }, 1602 | { 1603 | "name": "symfony/event-dispatcher", 1604 | "version": "v2.7.0", 1605 | "source": { 1606 | "type": "git", 1607 | "url": "https://github.com/symfony/EventDispatcher.git", 1608 | "reference": "687039686d0e923429ba6e958d0baa920cd5d458" 1609 | }, 1610 | "dist": { 1611 | "type": "zip", 1612 | "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/687039686d0e923429ba6e958d0baa920cd5d458", 1613 | "reference": "687039686d0e923429ba6e958d0baa920cd5d458", 1614 | "shasum": "" 1615 | }, 1616 | "require": { 1617 | "php": ">=5.3.9" 1618 | }, 1619 | "require-dev": { 1620 | "psr/log": "~1.0", 1621 | "symfony/config": "~2.0,>=2.0.5", 1622 | "symfony/dependency-injection": "~2.6", 1623 | "symfony/expression-language": "~2.6", 1624 | "symfony/phpunit-bridge": "~2.7", 1625 | "symfony/stopwatch": "~2.3" 1626 | }, 1627 | "suggest": { 1628 | "symfony/dependency-injection": "", 1629 | "symfony/http-kernel": "" 1630 | }, 1631 | "type": "library", 1632 | "extra": { 1633 | "branch-alias": { 1634 | "dev-master": "2.7-dev" 1635 | } 1636 | }, 1637 | "autoload": { 1638 | "psr-4": { 1639 | "Symfony\\Component\\EventDispatcher\\": "" 1640 | } 1641 | }, 1642 | "notification-url": "https://packagist.org/downloads/", 1643 | "license": [ 1644 | "MIT" 1645 | ], 1646 | "authors": [ 1647 | { 1648 | "name": "Fabien Potencier", 1649 | "email": "fabien@symfony.com" 1650 | }, 1651 | { 1652 | "name": "Symfony Community", 1653 | "homepage": "https://symfony.com/contributors" 1654 | } 1655 | ], 1656 | "description": "Symfony EventDispatcher Component", 1657 | "homepage": "https://symfony.com", 1658 | "time": "2015-05-02 15:21:08" 1659 | }, 1660 | { 1661 | "name": "symfony/filesystem", 1662 | "version": "v2.7.0", 1663 | "source": { 1664 | "type": "git", 1665 | "url": "https://github.com/symfony/Filesystem.git", 1666 | "reference": "ae4551fd6d4d4f51f2e7390fbc902fbd67f3b7ba" 1667 | }, 1668 | "dist": { 1669 | "type": "zip", 1670 | "url": "https://api.github.com/repos/symfony/Filesystem/zipball/ae4551fd6d4d4f51f2e7390fbc902fbd67f3b7ba", 1671 | "reference": "ae4551fd6d4d4f51f2e7390fbc902fbd67f3b7ba", 1672 | "shasum": "" 1673 | }, 1674 | "require": { 1675 | "php": ">=5.3.9" 1676 | }, 1677 | "require-dev": { 1678 | "symfony/phpunit-bridge": "~2.7" 1679 | }, 1680 | "type": "library", 1681 | "extra": { 1682 | "branch-alias": { 1683 | "dev-master": "2.7-dev" 1684 | } 1685 | }, 1686 | "autoload": { 1687 | "psr-4": { 1688 | "Symfony\\Component\\Filesystem\\": "" 1689 | } 1690 | }, 1691 | "notification-url": "https://packagist.org/downloads/", 1692 | "license": [ 1693 | "MIT" 1694 | ], 1695 | "authors": [ 1696 | { 1697 | "name": "Fabien Potencier", 1698 | "email": "fabien@symfony.com" 1699 | }, 1700 | { 1701 | "name": "Symfony Community", 1702 | "homepage": "https://symfony.com/contributors" 1703 | } 1704 | ], 1705 | "description": "Symfony Filesystem Component", 1706 | "homepage": "https://symfony.com", 1707 | "time": "2015-05-15 13:33:16" 1708 | }, 1709 | { 1710 | "name": "symfony/stopwatch", 1711 | "version": "v2.7.0", 1712 | "source": { 1713 | "type": "git", 1714 | "url": "https://github.com/symfony/Stopwatch.git", 1715 | "reference": "7702945bceddc0e1f744519abb8a2baeb94bd5ce" 1716 | }, 1717 | "dist": { 1718 | "type": "zip", 1719 | "url": "https://api.github.com/repos/symfony/Stopwatch/zipball/7702945bceddc0e1f744519abb8a2baeb94bd5ce", 1720 | "reference": "7702945bceddc0e1f744519abb8a2baeb94bd5ce", 1721 | "shasum": "" 1722 | }, 1723 | "require": { 1724 | "php": ">=5.3.9" 1725 | }, 1726 | "require-dev": { 1727 | "symfony/phpunit-bridge": "~2.7" 1728 | }, 1729 | "type": "library", 1730 | "extra": { 1731 | "branch-alias": { 1732 | "dev-master": "2.7-dev" 1733 | } 1734 | }, 1735 | "autoload": { 1736 | "psr-4": { 1737 | "Symfony\\Component\\Stopwatch\\": "" 1738 | } 1739 | }, 1740 | "notification-url": "https://packagist.org/downloads/", 1741 | "license": [ 1742 | "MIT" 1743 | ], 1744 | "authors": [ 1745 | { 1746 | "name": "Fabien Potencier", 1747 | "email": "fabien@symfony.com" 1748 | }, 1749 | { 1750 | "name": "Symfony Community", 1751 | "homepage": "https://symfony.com/contributors" 1752 | } 1753 | ], 1754 | "description": "Symfony Stopwatch Component", 1755 | "homepage": "https://symfony.com", 1756 | "time": "2015-05-02 15:21:08" 1757 | }, 1758 | { 1759 | "name": "symfony/yaml", 1760 | "version": "v2.7.0", 1761 | "source": { 1762 | "type": "git", 1763 | "url": "https://github.com/symfony/Yaml.git", 1764 | "reference": "4a29a5248aed4fb45f626a7bbbd330291492f5c3" 1765 | }, 1766 | "dist": { 1767 | "type": "zip", 1768 | "url": "https://api.github.com/repos/symfony/Yaml/zipball/4a29a5248aed4fb45f626a7bbbd330291492f5c3", 1769 | "reference": "4a29a5248aed4fb45f626a7bbbd330291492f5c3", 1770 | "shasum": "" 1771 | }, 1772 | "require": { 1773 | "php": ">=5.3.9" 1774 | }, 1775 | "require-dev": { 1776 | "symfony/phpunit-bridge": "~2.7" 1777 | }, 1778 | "type": "library", 1779 | "extra": { 1780 | "branch-alias": { 1781 | "dev-master": "2.7-dev" 1782 | } 1783 | }, 1784 | "autoload": { 1785 | "psr-4": { 1786 | "Symfony\\Component\\Yaml\\": "" 1787 | } 1788 | }, 1789 | "notification-url": "https://packagist.org/downloads/", 1790 | "license": [ 1791 | "MIT" 1792 | ], 1793 | "authors": [ 1794 | { 1795 | "name": "Fabien Potencier", 1796 | "email": "fabien@symfony.com" 1797 | }, 1798 | { 1799 | "name": "Symfony Community", 1800 | "homepage": "https://symfony.com/contributors" 1801 | } 1802 | ], 1803 | "description": "Symfony Yaml Component", 1804 | "homepage": "https://symfony.com", 1805 | "time": "2015-05-02 15:21:08" 1806 | }, 1807 | { 1808 | "name": "zendframework/zend-crypt", 1809 | "version": "2.5.1", 1810 | "source": { 1811 | "type": "git", 1812 | "url": "https://github.com/zendframework/zend-crypt.git", 1813 | "reference": "15537e8e438a98923f05c40c45c162342ea8235a" 1814 | }, 1815 | "dist": { 1816 | "type": "zip", 1817 | "url": "https://api.github.com/repos/zendframework/zend-crypt/zipball/15537e8e438a98923f05c40c45c162342ea8235a", 1818 | "reference": "15537e8e438a98923f05c40c45c162342ea8235a", 1819 | "shasum": "" 1820 | }, 1821 | "require": { 1822 | "php": ">=5.3.23", 1823 | "zendframework/zend-math": "~2.5", 1824 | "zendframework/zend-servicemanager": "~2.5", 1825 | "zendframework/zend-stdlib": "~2.5" 1826 | }, 1827 | "require-dev": { 1828 | "fabpot/php-cs-fixer": "1.7.*", 1829 | "phpunit/phpunit": "~4.0", 1830 | "zendframework/zend-config": "~2.5" 1831 | }, 1832 | "suggest": { 1833 | "ext-mcrypt": "Required for most features of Zend\\Crypt" 1834 | }, 1835 | "type": "library", 1836 | "extra": { 1837 | "branch-alias": { 1838 | "dev-master": "2.5-dev", 1839 | "dev-develop": "2.6-dev" 1840 | } 1841 | }, 1842 | "autoload": { 1843 | "psr-4": { 1844 | "Zend\\Crypt\\": "src/" 1845 | } 1846 | }, 1847 | "notification-url": "https://packagist.org/downloads/", 1848 | "license": [ 1849 | "BSD-3-Clause" 1850 | ], 1851 | "homepage": "https://github.com/zendframework/zend-crypt", 1852 | "keywords": [ 1853 | "crypt", 1854 | "zf2" 1855 | ], 1856 | "time": "2015-06-03 15:32:00" 1857 | }, 1858 | { 1859 | "name": "zendframework/zend-filter", 1860 | "version": "2.5.1", 1861 | "source": { 1862 | "type": "git", 1863 | "url": "https://github.com/zendframework/zend-filter.git", 1864 | "reference": "93e6990a198e6cdd811064083acac4693f4b29ae" 1865 | }, 1866 | "dist": { 1867 | "type": "zip", 1868 | "url": "https://api.github.com/repos/zendframework/zend-filter/zipball/93e6990a198e6cdd811064083acac4693f4b29ae", 1869 | "reference": "93e6990a198e6cdd811064083acac4693f4b29ae", 1870 | "shasum": "" 1871 | }, 1872 | "require": { 1873 | "php": ">=5.3.23", 1874 | "zendframework/zend-stdlib": "~2.5" 1875 | }, 1876 | "require-dev": { 1877 | "fabpot/php-cs-fixer": "1.7.*", 1878 | "phpunit/phpunit": "~4.0", 1879 | "zendframework/zend-config": "~2.5", 1880 | "zendframework/zend-crypt": "~2.5", 1881 | "zendframework/zend-i18n": "~2.5", 1882 | "zendframework/zend-loader": "~2.5", 1883 | "zendframework/zend-servicemanager": "~2.5", 1884 | "zendframework/zend-uri": "~2.5" 1885 | }, 1886 | "suggest": { 1887 | "zendframework/zend-crypt": "Zend\\Crypt component", 1888 | "zendframework/zend-i18n": "Zend\\I18n component", 1889 | "zendframework/zend-servicemanager": "Zend\\ServiceManager component", 1890 | "zendframework/zend-uri": "Zend\\Uri component for UriNormalize filter" 1891 | }, 1892 | "type": "library", 1893 | "extra": { 1894 | "branch-alias": { 1895 | "dev-master": "2.5-dev", 1896 | "dev-develop": "2.6-dev" 1897 | } 1898 | }, 1899 | "autoload": { 1900 | "psr-4": { 1901 | "Zend\\Filter\\": "src/" 1902 | } 1903 | }, 1904 | "notification-url": "https://packagist.org/downloads/", 1905 | "license": [ 1906 | "BSD-3-Clause" 1907 | ], 1908 | "description": "provides a set of commonly needed data filters", 1909 | "homepage": "https://github.com/zendframework/zend-filter", 1910 | "keywords": [ 1911 | "filter", 1912 | "zf2" 1913 | ], 1914 | "time": "2015-06-03 15:32:01" 1915 | }, 1916 | { 1917 | "name": "zendframework/zend-math", 1918 | "version": "2.5.1", 1919 | "source": { 1920 | "type": "git", 1921 | "url": "https://github.com/zendframework/zend-math.git", 1922 | "reference": "9f02a1ac4d3374d3332c80f9215deec9c71558fc" 1923 | }, 1924 | "dist": { 1925 | "type": "zip", 1926 | "url": "https://api.github.com/repos/zendframework/zend-math/zipball/9f02a1ac4d3374d3332c80f9215deec9c71558fc", 1927 | "reference": "9f02a1ac4d3374d3332c80f9215deec9c71558fc", 1928 | "shasum": "" 1929 | }, 1930 | "require": { 1931 | "php": ">=5.3.23" 1932 | }, 1933 | "require-dev": { 1934 | "fabpot/php-cs-fixer": "1.7.*", 1935 | "ircmaxell/random-lib": "~1.1", 1936 | "phpunit/phpunit": "~4.0", 1937 | "zendframework/zend-servicemanager": "~2.5" 1938 | }, 1939 | "suggest": { 1940 | "ext-bcmath": "If using the bcmath functionality", 1941 | "ext-gmp": "If using the gmp functionality", 1942 | "ircmaxell/random-lib": "Fallback random byte generator for Zend\\Math\\Rand if OpenSSL/Mcrypt extensions are unavailable", 1943 | "zendframework/zend-servicemanager": ">= current version, if using the BigInteger::factory functionality" 1944 | }, 1945 | "type": "library", 1946 | "extra": { 1947 | "branch-alias": { 1948 | "dev-master": "2.5-dev", 1949 | "dev-develop": "2.6-dev" 1950 | } 1951 | }, 1952 | "autoload": { 1953 | "psr-4": { 1954 | "Zend\\Math\\": "src/" 1955 | } 1956 | }, 1957 | "notification-url": "https://packagist.org/downloads/", 1958 | "license": [ 1959 | "BSD-3-Clause" 1960 | ], 1961 | "homepage": "https://github.com/zendframework/zend-math", 1962 | "keywords": [ 1963 | "math", 1964 | "zf2" 1965 | ], 1966 | "time": "2015-06-03 15:32:02" 1967 | }, 1968 | { 1969 | "name": "zendframework/zend-servicemanager", 1970 | "version": "2.5.1", 1971 | "source": { 1972 | "type": "git", 1973 | "url": "https://github.com/zendframework/zend-servicemanager.git", 1974 | "reference": "3b22c403e351d92526c642cba0bd810bc22e1c56" 1975 | }, 1976 | "dist": { 1977 | "type": "zip", 1978 | "url": "https://api.github.com/repos/zendframework/zend-servicemanager/zipball/3b22c403e351d92526c642cba0bd810bc22e1c56", 1979 | "reference": "3b22c403e351d92526c642cba0bd810bc22e1c56", 1980 | "shasum": "" 1981 | }, 1982 | "require": { 1983 | "php": ">=5.3.23" 1984 | }, 1985 | "require-dev": { 1986 | "fabpot/php-cs-fixer": "1.7.*", 1987 | "phpunit/phpunit": "~4.0", 1988 | "zendframework/zend-di": "~2.5", 1989 | "zendframework/zend-mvc": "~2.5" 1990 | }, 1991 | "suggest": { 1992 | "ocramius/proxy-manager": "ProxyManager 0.5.* to handle lazy initialization of services", 1993 | "zendframework/zend-di": "Zend\\Di component" 1994 | }, 1995 | "type": "library", 1996 | "extra": { 1997 | "branch-alias": { 1998 | "dev-master": "2.5-dev", 1999 | "dev-develop": "2.6-dev" 2000 | } 2001 | }, 2002 | "autoload": { 2003 | "psr-4": { 2004 | "Zend\\ServiceManager\\": "src/" 2005 | } 2006 | }, 2007 | "notification-url": "https://packagist.org/downloads/", 2008 | "license": [ 2009 | "BSD-3-Clause" 2010 | ], 2011 | "homepage": "https://github.com/zendframework/zend-servicemanager", 2012 | "keywords": [ 2013 | "servicemanager", 2014 | "zf2" 2015 | ], 2016 | "time": "2015-06-03 15:32:02" 2017 | }, 2018 | { 2019 | "name": "zendframework/zend-stdlib", 2020 | "version": "2.5.1", 2021 | "source": { 2022 | "type": "git", 2023 | "url": "https://github.com/zendframework/zend-stdlib.git", 2024 | "reference": "cc8e90a60dd5d44b9730b77d07b97550091da1ae" 2025 | }, 2026 | "dist": { 2027 | "type": "zip", 2028 | "url": "https://api.github.com/repos/zendframework/zend-stdlib/zipball/cc8e90a60dd5d44b9730b77d07b97550091da1ae", 2029 | "reference": "cc8e90a60dd5d44b9730b77d07b97550091da1ae", 2030 | "shasum": "" 2031 | }, 2032 | "require": { 2033 | "php": ">=5.3.23" 2034 | }, 2035 | "require-dev": { 2036 | "fabpot/php-cs-fixer": "1.7.*", 2037 | "phpunit/phpunit": "~4.0", 2038 | "zendframework/zend-config": "~2.5", 2039 | "zendframework/zend-eventmanager": "~2.5", 2040 | "zendframework/zend-filter": "~2.5", 2041 | "zendframework/zend-inputfilter": "~2.5", 2042 | "zendframework/zend-serializer": "~2.5", 2043 | "zendframework/zend-servicemanager": "~2.5" 2044 | }, 2045 | "suggest": { 2046 | "zendframework/zend-eventmanager": "To support aggregate hydrator usage", 2047 | "zendframework/zend-filter": "To support naming strategy hydrator usage", 2048 | "zendframework/zend-serializer": "Zend\\Serializer component", 2049 | "zendframework/zend-servicemanager": "To support hydrator plugin manager usage" 2050 | }, 2051 | "type": "library", 2052 | "extra": { 2053 | "branch-alias": { 2054 | "dev-master": "2.5-dev", 2055 | "dev-develop": "2.6-dev" 2056 | } 2057 | }, 2058 | "autoload": { 2059 | "psr-4": { 2060 | "Zend\\Stdlib\\": "src/" 2061 | } 2062 | }, 2063 | "notification-url": "https://packagist.org/downloads/", 2064 | "license": [ 2065 | "BSD-3-Clause" 2066 | ], 2067 | "homepage": "https://github.com/zendframework/zend-stdlib", 2068 | "keywords": [ 2069 | "stdlib", 2070 | "zf2" 2071 | ], 2072 | "time": "2015-06-03 15:32:03" 2073 | } 2074 | ], 2075 | "aliases": [], 2076 | "minimum-stability": "stable", 2077 | "stability-flags": { 2078 | "codeclimate/php-test-reporter": 20 2079 | }, 2080 | "prefer-stable": false, 2081 | "prefer-lowest": false, 2082 | "platform": [], 2083 | "platform-dev": [] 2084 | } 2085 | --------------------------------------------------------------------------------