diff --git a/.travis.yml b/.travis.yml index 08127e7a2..19df5390d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,5 @@ language: php php: - - '5.5' - '5.6' - '7.0.21' - '7.1' diff --git a/CHANGELOG.md b/CHANGELOG.md index d72053458..c6cd27191 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# v1.5.0 +## mm/dd/2018 + +1. [](#new) + * Set minimum requirements to [PHP 5.6.0](https://getgrav.org/blog/raising-php-requirements-2018) + * Updated to Doctrine Collections 1.4 + # v1.4.3 ## 04/12/2018 diff --git a/README.md b/README.md index 916421930..9f4fc1216 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ The underlying architecture of Grav is designed to use well-established and _bes # Requirements -- PHP 5.5.9 or higher. Check the [required modules list](https://learn.getgrav.org/basics/requirements#php-requirements) +- PHP 5.6.0 or higher. Check the [required modules list](https://learn.getgrav.org/basics/requirements#php-requirements) - Check the [Apache](https://learn.getgrav.org/basics/requirements#apache-requirements) or [IIS](https://learn.getgrav.org/basics/requirements#iis-requirements) requirements # QuickStart diff --git a/composer.json b/composer.json index 9918530bf..b15de06b7 100644 --- a/composer.json +++ b/composer.json @@ -6,7 +6,7 @@ "homepage": "http://getgrav.org", "license": "MIT", "require": { - "php": ">=5.5.9", + "php": ">=5.6.0", "twig/twig": "~1.24", "erusev/parsedown": "1.6.4", "erusev/parsedown-extra": "~0.7", @@ -16,7 +16,7 @@ "symfony/var-dumper": "~2.8", "symfony/polyfill-iconv": "~1.0", "doctrine/cache": "^1.6", - "doctrine/collections": "1.3", + "doctrine/collections": "^1.4", "psr/simple-cache": "^1.0", "psr/http-message": "^1.0", "guzzlehttp/psr7": "^1.4", @@ -45,7 +45,7 @@ }, "config": { "platform": { - "php": "5.5.9" + "php": "5.6.0" } }, "repositories": [ diff --git a/composer.lock b/composer.lock index dff7ccb1b..f74f0b3df 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "c71dffc7daccd08aba7a52a476569d4c", + "content-hash": "80eb29399159e840dc87071f1320132a", "packages": [ { "name": "antoligy/dom-string-iterators", @@ -178,28 +178,29 @@ }, { "name": "doctrine/collections", - "version": "v1.3.0", + "version": "v1.4.0", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", - "reference": "6c1e4eef75f310ea1b3e30945e9f06e652128b8a" + "reference": "1a4fb7e902202c33cce8c55989b945612943c2ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/6c1e4eef75f310ea1b3e30945e9f06e652128b8a", - "reference": "6c1e4eef75f310ea1b3e30945e9f06e652128b8a", + "url": "https://api.github.com/repos/doctrine/collections/zipball/1a4fb7e902202c33cce8c55989b945612943c2ba", + "reference": "1a4fb7e902202c33cce8c55989b945612943c2ba", "shasum": "" }, "require": { - "php": ">=5.3.2" + "php": "^5.6 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "~4.0" + "doctrine/coding-standard": "~0.1@dev", + "phpunit/phpunit": "^5.7" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-master": "1.3.x-dev" } }, "autoload": { @@ -240,7 +241,7 @@ "collections", "iterator" ], - "time": "2015-04-14T22:21:58+00:00" + "time": "2017-01-03T10:49:41+00:00" }, { "name": "donatj/phpuseragentparser", @@ -2062,30 +2063,33 @@ }, { "name": "facebook/webdriver", - "version": "1.4.1", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/facebook/php-webdriver.git", - "reference": "eadb0b7a7c3e6578185197fd40158b08c3164c83" + "reference": "86b5ca2f67173c9d34340845dd690149c886a605" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/facebook/php-webdriver/zipball/eadb0b7a7c3e6578185197fd40158b08c3164c83", - "reference": "eadb0b7a7c3e6578185197fd40158b08c3164c83", + "url": "https://api.github.com/repos/facebook/php-webdriver/zipball/86b5ca2f67173c9d34340845dd690149c886a605", + "reference": "86b5ca2f67173c9d34340845dd690149c886a605", "shasum": "" }, "require": { "ext-curl": "*", "ext-zip": "*", - "php": "^5.5 || ~7.0", - "symfony/process": "^2.8 || ^3.1" + "php": "^5.6 || ~7.0", + "symfony/process": "^2.8 || ^3.1 || ^4.0" }, "require-dev": { "friendsofphp/php-cs-fixer": "^2.0", + "guzzle/guzzle": "^3.4.1", + "php-coveralls/php-coveralls": "^1.0.2", "php-mock/php-mock-phpunit": "^1.1", - "phpunit/phpunit": "4.6.* || ~5.0", - "satooshi/php-coveralls": "^1.0", - "squizlabs/php_codesniffer": "^2.6" + "phpunit/phpunit": "^5.7", + "sebastian/environment": "^1.3.4 || ^2.0 || ^3.0", + "squizlabs/php_codesniffer": "^2.6", + "symfony/var-dumper": "^3.3 || ^4.0" }, "type": "library", "extra": { @@ -2110,7 +2114,7 @@ "selenium", "webdriver" ], - "time": "2017-04-28T14:54:49+00:00" + "time": "2017-11-15T11:08:09+00:00" }, { "name": "fzaninotto/faker", @@ -2334,22 +2338,22 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "3.2.2", + "version": "3.3.2", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "4aada1f93c72c35e22fb1383b47fee43b8f1d157" + "reference": "bf329f6c1aadea3299f08ee804682b7c45b326a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/4aada1f93c72c35e22fb1383b47fee43b8f1d157", - "reference": "4aada1f93c72c35e22fb1383b47fee43b8f1d157", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bf329f6c1aadea3299f08ee804682b7c45b326a2", + "reference": "bf329f6c1aadea3299f08ee804682b7c45b326a2", "shasum": "" }, "require": { - "php": ">=5.5", - "phpdocumentor/reflection-common": "^1.0@dev", - "phpdocumentor/type-resolver": "^0.3.0", + "php": "^5.6 || ^7.0", + "phpdocumentor/reflection-common": "^1.0.0", + "phpdocumentor/type-resolver": "^0.4.0", "webmozart/assert": "^1.0" }, "require-dev": { @@ -2375,20 +2379,20 @@ } ], "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2017-08-08T06:39:58+00:00" + "time": "2017-11-10T14:09:06+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "0.3.0", + "version": "0.4.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "fb3933512008d8162b3cdf9e18dba9309b7c3773" + "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/fb3933512008d8162b3cdf9e18dba9309b7c3773", - "reference": "fb3933512008d8162b3cdf9e18dba9309b7c3773", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", + "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", "shasum": "" }, "require": { @@ -2422,7 +2426,7 @@ "email": "me@mikevanriel.com" } ], - "time": "2017-06-03T08:32:36+00:00" + "time": "2017-07-14T14:27:02+00:00" }, { "name": "phpspec/prophecy", @@ -3604,7 +3608,7 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": ">=5.5.9", + "php": ">=5.6.0", "ext-mbstring": "*", "ext-openssl": "*", "ext-curl": "*", @@ -3612,6 +3616,6 @@ }, "platform-dev": [], "platform-overrides": { - "php": "5.5.9" + "php": "5.6.0" } } diff --git a/index.php b/index.php index 008212503..0a2008055 100644 --- a/index.php +++ b/index.php @@ -7,7 +7,7 @@ */ namespace Grav; -define('GRAV_PHP_MIN', '5.5.9'); +define('GRAV_PHP_MIN', '5.6.0'); // Ensure vendor libraries exist $autoload = __DIR__ . '/vendor/autoload.php'; diff --git a/system/defines.php b/system/defines.php index 329265a05..2a8e2dacc 100644 --- a/system/defines.php +++ b/system/defines.php @@ -8,12 +8,12 @@ // Some standard defines define('GRAV', true); -define('GRAV_VERSION', '1.4.3'); +define('GRAV_VERSION', '1.5.0'); define('GRAV_TESTING', false); define('DS', '/'); if (!defined('GRAV_PHP_MIN')) { - define('GRAV_PHP_MIN', '5.5.9'); + define('GRAV_PHP_MIN', '5.6.0'); } // Directories and Paths diff --git a/system/src/Grav/Framework/Collection/ArrayCollection.php b/system/src/Grav/Framework/Collection/ArrayCollection.php index bf6dda056..4c922f4f0 100644 --- a/system/src/Grav/Framework/Collection/ArrayCollection.php +++ b/system/src/Grav/Framework/Collection/ArrayCollection.php @@ -24,11 +24,6 @@ class ArrayCollection extends BaseArrayCollection implements CollectionInterface */ public function reverse() { - // TODO: remove when PHP 5.6 is minimum (with doctrine/collections v1.4). - if (!method_exists($this, 'createFrom')) { - return new static(array_reverse($this->toArray())); - } - return $this->createFrom(array_reverse($this->toArray())); } @@ -42,11 +37,6 @@ class ArrayCollection extends BaseArrayCollection implements CollectionInterface $keys = $this->getKeys(); shuffle($keys); - // TODO: remove when PHP 5.6 is minimum (with doctrine/collections v1.4). - if (!method_exists($this, 'createFrom')) { - return new static(array_replace(array_flip($keys), $this->toArray())); - } - return $this->createFrom(array_replace(array_flip($keys), $this->toArray())); } diff --git a/system/src/Grav/Framework/Object/Base/ObjectCollectionTrait.php b/system/src/Grav/Framework/Object/Base/ObjectCollectionTrait.php index f99a5ff20..6334397f0 100644 --- a/system/src/Grav/Framework/Object/Base/ObjectCollectionTrait.php +++ b/system/src/Grav/Framework/Object/Base/ObjectCollectionTrait.php @@ -32,11 +32,6 @@ trait ObjectCollectionTrait $list[$key] = is_object($value) ? clone $value : $value; } - // TODO: remove when PHP 5.6 is minimum (with doctrine/collections v1.4). - if (!method_exists($this, 'createFrom')) { - return new static($list); - } - return $this->createFrom($list); } @@ -170,12 +165,7 @@ trait ObjectCollectionTrait { $collections = []; foreach ($this->group($property) as $id => $elements) { - // TODO: remove when PHP 5.6 is minimum (with doctrine/collections v1.4). - if (!method_exists($this, 'createFrom')) { - $collection = new static($elements); - } else { - $collection = $this->createFrom($elements); - } + $collection = $this->createFrom($elements); $collections[$id] = $collection; } diff --git a/system/src/Grav/Framework/Object/Property/ObjectPropertyTrait.php b/system/src/Grav/Framework/Object/Property/ObjectPropertyTrait.php index c26903f21..e330a330c 100644 --- a/system/src/Grav/Framework/Object/Property/ObjectPropertyTrait.php +++ b/system/src/Grav/Framework/Object/Property/ObjectPropertyTrait.php @@ -95,10 +95,10 @@ trait ObjectPropertyTrait } /** - * @param string $property Object property to be fetched. - * @param mixed $default Default value if property has not been set. - * @param bool $doCreate Set true to create variable. - * @return mixed Property value. + * @param string $property Object property to be fetched. + * @param mixed $default Default value if property has not been set. + * @param callable|bool $doCreate Set true to create variable. + * @return mixed Property value. */ protected function &doGetProperty($property, $default = null, $doCreate = false) {