Index: branches/5.3.x/core/units/helpers/cron_helper.php
===================================================================
diff -u -r16519 -r16800
--- branches/5.3.x/core/units/helpers/cron_helper.php (.../cron_helper.php) (revision 16519)
+++ branches/5.3.x/core/units/helpers/cron_helper.php (.../cron_helper.php) (revision 16800)
@@ -1,6 +1,6 @@
fieldFactory = new FieldFactory();
+ }
+
+ /**
* Defines possible cron fields and their matching priority
*
* @var Array
@@ -193,6 +214,26 @@
}
/**
+ * Get an instance of a field object for a cron expression field type.
+ *
+ * @param integer $field_type Field type.
+ *
+ * @return FieldInterface
+ */
+ protected function getField($field_type)
+ {
+ $field_mapping = array(
+ self::MINUTE => 0,
+ self::HOUR => 1,
+ self::DAY => 2,
+ self::MONTH => 3,
+ self::WEEKDAY => 4,
+ );
+
+ return $this->fieldFactory->getField($field_mapping[$field_type]);
+ }
+
+ /**
* Creates virtual fields for given unit
*
* @param string $prefix
@@ -254,13 +295,12 @@
{
$validated = true;
$combined_value = Array ();
- $cron_field = new kCronField();
foreach ($this->fieldTypes as $field_type) {
$field_name = $this->_getFieldNameByType($field_type, $field_prefix);
$value = preg_replace('/\s+/s', '', mb_strtoupper($object->GetDBField($field_name)));
- if ( $cron_field->validate($field_type, $value) ) {
+ if ( $this->getField($field_type)->validate($value) ) {
$object->SetDBField($field_name, $value);
}
else {
@@ -278,36 +318,6 @@
}
/**
- * Replaces aliases in the field
- *
- * @param int $field_type
- * @param string $value
- * @return string
- * @access public
- */
- public static function replaceAliases($field_type, $value)
- {
- $replacements = Array ();
- $value = mb_strtolower($value);
-
- if ( $field_type == self::MONTH ) {
- $replacements = Array (
- 'jan' => 1, 'feb' => 2, 'mar' => 3, 'apr' => 4, 'may' => 5, 'jun' => 6,
- 'jul' => 7, 'aug' => 8, 'sep' => 9, 'oct' => 10, 'nov' => 11, 'dec' => 12,
- );
- }
- elseif ( $field_type == self::WEEKDAY ) {
- $replacements = Array ('sun' => 0, 'mon' => 1, 'tue' => 2, 'wed' => 3, 'thu' => 4, 'fri' => 5, 'sat' => 6);
- }
-
- if ( $replacements ) {
- $value = str_replace(array_keys($replacements), array_values($replacements), $value);
- }
-
- return $value;
- }
-
- /**
* Returns next (after given one or now) timestamp matching given cron expression
*
* @param string $expression
@@ -324,359 +334,15 @@
$date = TIMENOW;
}
- $next_run = strtotime('-' . (int)date('s', $date) . ' seconds', $date);
- $expression_parts = explode(' ', $expression);
+ $cron = CronExpression::factory($expression);
- $cron_field = new kCronField();
+ $date_formatted = date('Y-m-d H:i:s', $date);
- // set a hard limit to bail on an impossible date
- for ($i = 0; $i < 1000; $i++) {
- foreach ($this->fieldTypes as $field_type) {
- $matched = false;
- $part = $expression_parts[$field_type - 1];
-
- // check if this is singular or a list
- if ( strpos($part, ',') === false ) {
- $matched = $cron_field->match($field_type, $next_run, $part);
- }
- else {
- $rules = explode(',', $part);
-
- foreach ($rules as $rule) {
- if ( $cron_field->match($field_type, $next_run, $rule) ) {
- $matched = true;
- break;
- }
- }
- }
-
- // if the field is not matched, then start over
- if ( !$matched ) {
- $next_run = $cron_field->increment($field_type, $next_run, $inverse);
- continue 2;
- }
- }
-
- // Skip this match if needed
- if ( (!$allow_current_date && $next_run == $date) ) {
- $next_run = $cron_field->increment(self::MINUTE, $next_run, $inverse);
- continue;
- }
-
- return $next_run;
+ if ( $inverse ) {
+ return $cron->getPreviousRunDate($date_formatted, 0, $allow_current_date)->format('U');
}
- throw new RuntimeException('Impossible CRON expression');
+ return $cron->getNextRunDate($date_formatted, 0, $allow_current_date)->format('U');
}
-}
-
-class kCronField extends kBase {
-
- /**
- * Validates field value
- *
- * @param int $field_type
- * @param string $value
- * @param bool $asterisk_allowed
- * @return bool
- * @access public
- */
- public function validate($field_type, $value, $asterisk_allowed = true)
- {
- $rules = explode(',', kCronHelper::replaceAliases($field_type, $value));
-
- foreach ($rules as $rule) {
- if ( $this->_isIncrementRule($rule) ) {
- if ( !$this->_validateIncrementRule($field_type, $rule) ) {
- return false;
- }
- }
- elseif ( $this->_isRangeRule($rule) ) {
- if ( !$this->_validateRangeRule($field_type, $rule) ) {
- return false;
- }
- }
- elseif ( !$this->_validateNumberRule($field_type, $rule, $asterisk_allowed) ) {
- return false;
- }
- }
-
- return true;
- }
-
- /**
- * Determines if expression is range
- *
- * @param string $rule
- * @return bool
- * @access protected
- */
- protected function _isRangeRule($rule)
- {
- return strpos($rule, '-') !== false;
- }
-
- /**
- * Validates range rule
- *
- * @param int $field_type
- * @param string $rule
- * @return bool
- * @access protected
- */
- protected function _validateRangeRule($field_type, $rule)
- {
- $parts = explode('-', $rule);
-
- if ( count($parts) != 2 ) {
- return false;
- }
-
- $min_value = $parts[0];
- $max_value = $parts[1];
-
- if ( !$this->_validateNumberRule($field_type, $min_value) || !$this->_validateNumberRule($field_type, $max_value) || $min_value >= $max_value ) {
- return false;
- }
-
- return true;
- }
-
- /**
- * Determines if expression is increment
- *
- * @param string $rule
- * @return bool
- * @access protected
- */
- protected function _isIncrementRule($rule)
- {
- return strpos($rule, '/') !== false;
- }
-
- /**
- * Validates increment rule
- *
- * @param int $field_type
- * @param string $rule
- * @return bool
- * @access protected
- */
- protected function _validateIncrementRule($field_type, $rule)
- {
- $parts = explode('/', $rule);
-
- if ( count($parts) != 2 ) {
- return false;
- }
-
- $interval = $parts[0];
- $increment = $parts[1];
-
- if ( $this->_isRangeRule($interval) ) {
- if ( !$this->_validateRangeRule($field_type, $interval) ) {
- return false;
- }
- }
- elseif ( !$this->_validateNumberRule($field_type, $interval, true) ) {
- return false;
- }
-
- if ( !$this->_validateNumberRule($field_type, $increment) ) {
- return false;
- }
-
- return true;
- }
-
- /**
- * Validates, that number within range OR an asterisk is given
- *
- * @param int $field_type
- * @param string $rule
- * @param bool $asterisk_allowed
- * @return bool
- * @access protected
- */
- protected function _validateNumberRule($field_type, $rule, $asterisk_allowed = false)
- {
- if ( "$rule" === '*' ) {
- return $asterisk_allowed;
- }
-
- $int_rule = (int)$rule;
-
- if ( !is_numeric($rule) || "$int_rule" !== "$rule" ) {
- // not integer
- return false;
- }
-
- $range_mapping = Array (
- kCronHelper::MINUTE => Array ('from' => 0, 'to' => 59),
- kCronHelper::HOUR => Array ('from' => 0, 'to' => 23),
- kCronHelper::DAY => Array ('from' => 1, 'to' => 31),
- kCronHelper::MONTH => Array ('from' => 1, 'to' => 12),
- kCronHelper::WEEKDAY => Array ('from' => 0, 'to' => 7),
- );
-
- return $int_rule >= $range_mapping[$field_type]['from'] && $int_rule <= $range_mapping[$field_type]['to'];
- }
-
- /**
- * Tries to match given date to given expression
- *
- * @param int $field_type
- * @param int $date
- * @param string $rule
- * @return bool
- * @access public
- */
- public function match($field_type, $date, $rule)
- {
- $date_part = $this->_getDatePart($field_type, $date, $rule);
-
- if ( $this->_isIncrementRule($rule) ) {
- return $this->_isInIncrement($date_part, $rule);
- }
- elseif ( $this->_isRangeRule($rule) ) {
- return $this->_isInRange($date_part, $rule);
- }
-
- return $rule == '*' || $date_part == $rule;
- }
-
- /**
- * Returns only part, needed based on field type of date in timestamp
- *
- * @param int $field_type
- * @param int $date
- * @param string $rule
- * @return int
- * @access protected
- */
- protected function _getDatePart($field_type, $date, $rule)
- {
- $mapping = Array (
- kCronHelper::MINUTE => 'i',
- kCronHelper::HOUR => 'G',
- kCronHelper::DAY => 'j',
- kCronHelper::MONTH => 'n',
- kCronHelper::WEEKDAY => 'N',
- );
-
- if ( $field_type == kCronHelper::WEEKDAY ) {
- // Test to see which Sunday to use -- 0 == 7 == Sunday
- $mapping[$field_type] = in_array(7, str_split($rule)) ? 'N' : 'w';
- }
-
- return (int)date($mapping[$field_type], $date);
- }
-
- /**
- * Test if a value is within a range
- *
- * @param string $date_value Set date value
- * @param string $rule Value to test
- * @return bool
- * @access protected
- */
- protected function _isInRange($date_value, $rule)
- {
- $parts = array_map('trim', explode('-', $rule, 2));
-
- return $date_value >= $parts[0] && $date_value <= $parts[1];
- }
-
- /**
- * Test if a value is within an increments of ranges (offset[-to]/step size)
- *
- * @param string $date_value Set date value
- * @param string $rule Value to test
- * @return bool
- * @access protected
- */
- protected function _isInIncrement($date_value, $rule)
- {
- $parts = array_map('trim', explode('/', $rule, 2));
- $stepSize = isset($parts[1]) ? $parts[1] : 0;
-
- if ( $parts[0] == '*' || $parts[0] == 0 ) {
- return (int)$date_value % $stepSize == 0;
- }
-
- $range = explode('-', $parts[0], 2);
- $offset = $range[0];
- $to = isset($range[1]) ? $range[1] : $date_value;
-
- // Ensure that the date value is within the range
- if ( $date_value < $offset || $date_value > $to ) {
- return false;
- }
-
- for ($i = $offset; $i <= $to; $i += $stepSize) {
- if ( $i == $date_value ) {
- return true;
- }
- }
-
- return false;
- }
-
- /**
- * Increments/decrements given date for 1 unit based on field type
- *
- * @param int $field_type
- * @param int $date
- * @param bool $inverse
- * @return int
- * @access public
- */
- public function increment($field_type, $date, $inverse = false)
- {
- $mapping = Array (
- kCronHelper::MINUTE => '1 minute',
- kCronHelper::HOUR => '1 hour',
- kCronHelper::DAY => '1 day',
- kCronHelper::MONTH => '1 month',
- kCronHelper::WEEKDAY => '1 day',
- );
-
- return $this->_resetTime($field_type, strtotime(($inverse ? '-' : '+') . $mapping[$field_type], $date), $inverse);
- }
-
- /**
- * Resets time based on field type
- *
- * @param int $field_type
- * @param int $date
- * @param bool $inverse
- * @return int
- * @access public
- */
- protected function _resetTime($field_type, $date, $inverse = false)
- {
- if ( $field_type == kCronHelper::MONTH || $field_type == kCronHelper::WEEKDAY || $field_type == kCronHelper::DAY ) {
- if ( $inverse ) {
- $date = strtotime(date('Y-m-d 23:59:59', $date));
- // set time 23:59:00
- }
- else {
- // set time 00:00:00
- $date = strtotime(date('Y-m-d 00:00:00', $date));
- }
- }
- elseif ( $field_type == kCronHelper::HOUR ) {
- if ( $inverse ) {
- // set time :59:00
- $date = strtotime(date('Y-m-d H:59:59', $date));
- }
- else {
- // set time :00:00
- $date = strtotime(date('Y-m-d H:00:00', $date));
- }
- }
-
- return $date;
- }
-}
\ No newline at end of file
+}
Index: branches/5.3.x/tools/class_locator.php
===================================================================
diff -u -r16395 -r16800
--- branches/5.3.x/tools/class_locator.php (.../class_locator.php) (revision 16395)
+++ branches/5.3.x/tools/class_locator.php (.../class_locator.php) (revision 16800)
@@ -1,6 +1,6 @@
Init();
-/** @var \Composer\Autoload\ClassLoader $composer_class_loader */
+/** @var ClassLoader $composer_class_loader */
$composer_class_loader = require FULL_PATH . '/vendor/autoload.php';
return function ($class) use ($application, $composer_class_loader) {
+ // 1. Search for class within In-Portal.
$file = $application->findClassFile($class);
if ( $file !== false ) {
return $file;
}
- return $composer_class_loader->findFile($class);
+ // 2. Search for class within Composer + register custom autoloaders.
+ $file = $composer_class_loader->findFile($class);
+
+ if ( $file !== false ) {
+ return $file;
+ }
+
+ // 3. Use custom autoloaders.
+ $dynamic_autoloader_namespaces = array(
+ 'ConsoleHelpers\\PHPUnitCompat\\',
+ 'Yoast\\PHPUnitPolyfills\\',
+ );
+
+ foreach ( $dynamic_autoloader_namespaces as $dynamic_autoloader_namespace ) {
+ if ( strpos($class, $dynamic_autoloader_namespace) !== 0 ) {
+ continue;
+ }
+
+ return (new ReflectionClass($class))->getFileName();
+ }
+
+ return false;
};
Index: branches/5.3.x/composer.lock
===================================================================
diff -u -r16723 -r16800
--- branches/5.3.x/composer.lock (.../composer.lock) (revision 16723)
+++ branches/5.3.x/composer.lock (.../composer.lock) (revision 16800)
@@ -4,49 +4,57 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "f829b982ceec533437242efa2763f61a",
+ "content-hash": "03b61a11d07186bb3a362faad10e7fa4",
"packages": [
{
- "name": "ircmaxell/password-compat",
- "version": "v1.0.4",
+ "name": "mtdowling/cron-expression",
+ "version": "dev-master",
"source": {
"type": "git",
- "url": "https://github.com/ircmaxell/password_compat.git",
- "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c"
+ "url": "https://github.com/in-portal/cron-expression",
+ "reference": "c4dda94f8f13f5447aa82e9b9528de1115448c74"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ircmaxell/password_compat/zipball/5c5cde8822a69545767f7c7f3058cb15ff84614c",
- "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c",
+ "url": "https://api.github.com/repos/in-portal/cron-expression/zipball/c4dda94f8f13f5447aa82e9b9528de1115448c74",
+ "reference": "c4dda94f8f13f5447aa82e9b9528de1115448c74",
"shasum": ""
},
+ "require": {
+ "php": ">=5.4.7"
+ },
"require-dev": {
- "phpunit/phpunit": "4.*"
+ "yoast/phpunit-polyfills": "^1.0"
},
+ "default-branch": true,
"type": "library",
"autoload": {
- "files": [
- "lib/password.php"
- ]
+ "psr-4": {
+ "Cron\\": "src/Cron/"
+ }
},
- "notification-url": "https://packagist.org/downloads/",
+ "autoload-dev": {
+ "psr-4": {
+ "Tests\\": "tests/Cron/"
+ }
+ },
"license": [
"MIT"
],
"authors": [
{
- "name": "Anthony Ferrara",
- "email": "ircmaxell@php.net",
- "homepage": "http://blog.ircmaxell.com"
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
}
],
- "description": "A compatibility library for the proposed simplified password hashing algorithm: https://wiki.php.net/rfc/password_hash",
- "homepage": "https://github.com/ircmaxell/password_compat",
+ "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due",
"keywords": [
- "hashing",
- "password"
+ "cron",
+ "schedule"
],
- "time": "2014-11-20T16:49:30+00:00"
+ "abandoned": "dragonmantank/cron-expression",
+ "time": "2022-11-08T11:57:39+00:00"
},
{
"name": "paragonie/random_compat",
@@ -95,6 +103,11 @@
"pseudorandom",
"random"
],
+ "support": {
+ "email": "info@paragonie.com",
+ "issues": "https://github.com/paragonie/random_compat/issues",
+ "source": "https://github.com/paragonie/random_compat"
+ },
"time": "2022-02-16T17:07:03+00:00"
},
{
@@ -142,6 +155,9 @@
"psr",
"psr-3"
],
+ "support": {
+ "source": "https://github.com/php-fig/log/tree/1.1.4"
+ },
"time": "2021-05-03T11:20:27+00:00"
},
{
@@ -187,6 +203,10 @@
}
],
"description": "Automatic BASH completion for Symfony Console Component based applications.",
+ "support": {
+ "issues": "https://github.com/stecman/symfony-console-completion/issues",
+ "source": "https://github.com/stecman/symfony-console-completion/tree/0.11.0"
+ },
"time": "2019-11-24T17:03:06+00:00"
},
{
@@ -248,6 +268,9 @@
],
"description": "Symfony Console Component",
"homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/console/tree/v2.8.52"
+ },
"time": "2018-11-20T15:55:20+00:00"
},
{
@@ -305,6 +328,9 @@
],
"description": "Symfony Debug Component",
"homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/debug/tree/v2.8.50"
+ },
"abandoned": "symfony/error-handler",
"time": "2018-11-11T11:18:13+00:00"
},
@@ -369,80 +395,9 @@
"portable",
"shim"
],
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2020-10-23T09:01:57+00:00"
- },
- {
- "name": "symfony/polyfill-php55",
- "version": "v1.19.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php55.git",
- "reference": "248a5c9877b126493abb661e4fb47792e418035b"
+ "support": {
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.19.0"
},
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php55/zipball/248a5c9877b126493abb661e4fb47792e418035b",
- "reference": "248a5c9877b126493abb661e4fb47792e418035b",
- "shasum": ""
- },
- "require": {
- "ircmaxell/password-compat": "~1.0",
- "php": ">=5.3.3"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.19-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Php55\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill backporting some PHP 5.5+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
"funding": [
{
"url": "https://symfony.com/sponsor",
@@ -460,150 +415,6 @@
"time": "2020-10-23T09:01:57+00:00"
},
{
- "name": "symfony/polyfill-php56",
- "version": "v1.19.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php56.git",
- "reference": "ea19621731cbd973a6702cfedef3419768bf3372"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/ea19621731cbd973a6702cfedef3419768bf3372",
- "reference": "ea19621731cbd973a6702cfedef3419768bf3372",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3",
- "symfony/polyfill-util": "~1.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.19-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Php56\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2020-10-23T09:01:57+00:00"
- },
- {
- "name": "symfony/polyfill-util",
- "version": "v1.19.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-util.git",
- "reference": "8df0c3e6a4b85df9a5c6f3f2f46fba5c5c47058a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/8df0c3e6a4b85df9a5c6f3f2f46fba5c5c47058a",
- "reference": "8df0c3e6a4b85df9a5c6f3f2f46fba5c5c47058a",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.19-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Util\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony utilities for portability of PHP codes",
- "homepage": "https://symfony.com",
- "keywords": [
- "compat",
- "compatibility",
- "polyfill",
- "shim"
- ],
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2020-10-21T09:57:48+00:00"
- },
- {
"name": "symfony/process",
"version": "v2.8.52",
"source": {
@@ -650,6 +461,9 @@
],
"description": "Symfony Process Component",
"homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/process/tree/v2.8.50"
+ },
"time": "2018-11-11T11:18:13+00:00"
}
],
@@ -693,37 +507,42 @@
"PHP_CodeSniffer",
"codesniffer"
],
+ "support": {
+ "issues": "https://github.com/aik099/CodingStandard/issues",
+ "source": "https://github.com/aik099/CodingStandard/tree/in-portal"
+ },
"time": "2021-11-07T17:05:54+00:00"
},
{
"name": "aik099/phpunit-mink",
- "version": "v2.2.0",
+ "version": "v2.4.0",
"source": {
"type": "git",
"url": "https://github.com/minkphp/phpunit-mink.git",
- "reference": "68b94432ac12ad4f714ef540037396aeb369e230"
+ "reference": "6ebf48d8d76a7054f84de2cbe779318cc3b0f4ab"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/minkphp/phpunit-mink/zipball/68b94432ac12ad4f714ef540037396aeb369e230",
- "reference": "68b94432ac12ad4f714ef540037396aeb369e230",
+ "url": "https://api.github.com/repos/minkphp/phpunit-mink/zipball/6ebf48d8d76a7054f84de2cbe779318cc3b0f4ab",
+ "reference": "6ebf48d8d76a7054f84de2cbe779318cc3b0f4ab",
"shasum": ""
},
"require": {
- "behat/mink": "~1.6@dev",
+ "behat/mink": "^1.8@dev",
"behat/mink-selenium2-driver": "~1.2",
- "php": ">=5.3.2",
- "phpunit/phpunit": "~4|~5",
- "symfony/event-dispatcher": "~2.4|~3.0"
+ "console-helpers/phpunit-compat": "^1.0.3",
+ "php": ">=5.6",
+ "phpunit/phpunit": ">=4.8.35 <5|>=5.4.3"
},
"require-dev": {
"aik099/coding-standard": "dev-master",
- "mockery/mockery": "~0.9"
+ "mockery/mockery": "~0.9|^1.5",
+ "yoast/phpunit-polyfills": "^1.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.1.x-dev"
+ "dev-master": "2.3.x-dev"
}
},
"autoload": {
@@ -753,7 +572,11 @@
"selenium",
"tests"
],
- "time": "2016-06-26T09:07:47+00:00"
+ "support": {
+ "issues": "https://github.com/minkphp/phpunit-mink/issues",
+ "source": "https://github.com/minkphp/phpunit-mink/tree/v2.4.0"
+ },
+ "time": "2024-07-15T11:00:18+00:00"
},
{
"name": "behat/mink",
@@ -815,6 +638,10 @@
"testing",
"web"
],
+ "support": {
+ "issues": "https://github.com/minkphp/Mink/issues",
+ "source": "https://github.com/minkphp/Mink/tree/v1.9.0"
+ },
"time": "2021-10-11T11:58:47+00:00"
},
{
@@ -876,9 +703,64 @@
"testing",
"webdriver"
],
+ "support": {
+ "issues": "https://github.com/minkphp/MinkSelenium2Driver/issues",
+ "source": "https://github.com/minkphp/MinkSelenium2Driver/tree/v1.5.0"
+ },
"time": "2021-10-12T16:01:47+00:00"
},
{
+ "name": "console-helpers/phpunit-compat",
+ "version": "v1.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/console-helpers/phpunit-compat.git",
+ "reference": "096c6e42ebd090415ab03d9ce9edff8ed978a319"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/console-helpers/phpunit-compat/zipball/096c6e42ebd090415ab03d9ce9edff8ed978a319",
+ "reference": "096c6e42ebd090415ab03d9ce9edff8ed978a319",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.6.0"
+ },
+ "require-dev": {
+ "aik099/coding-standard": "dev-master"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "phpunitcompat_autoloader.php"
+ ],
+ "psr-4": {
+ "Tests\\ConsoleHelpers\\PHPUnitCompat\\": "tests/PHPUnitCompat/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Alexander Obuhovich",
+ "email": "aik.bold@gmail.com"
+ }
+ ],
+ "description": "Compatibility layer for PHPUnit test cases/test suite to work on different major PHPUnit versions",
+ "support": {
+ "issues": "https://github.com/console-helpers/phpunit-compat/issues",
+ "source": "https://github.com/console-helpers/phpunit-compat/tree/v1.0.3"
+ },
+ "time": "2024-07-11T11:28:01+00:00"
+ },
+ {
"name": "doctrine/instantiator",
"version": "1.0.5",
"source": {
@@ -930,65 +812,38 @@
"constructor",
"instantiate"
],
- "time": "2015-06-14T21:17:01+00:00"
- },
- {
- "name": "hamcrest/hamcrest-php",
- "version": "v1.2.2",
- "source": {
- "type": "git",
- "url": "https://github.com/hamcrest/hamcrest-php.git",
- "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c"
+ "support": {
+ "issues": "https://github.com/doctrine/instantiator/issues",
+ "source": "https://github.com/doctrine/instantiator/tree/1.0.5"
},
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/b37020aa976fa52d3de9aa904aa2522dc518f79c",
- "reference": "b37020aa976fa52d3de9aa904aa2522dc518f79c",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.2"
- },
- "replace": {
- "cordoval/hamcrest-php": "*",
- "davedevelopment/hamcrest-php": "*",
- "kodova/hamcrest-php": "*"
- },
- "require-dev": {
- "phpunit/php-file-iterator": "1.3.3",
- "satooshi/php-coveralls": "dev-master"
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "hamcrest"
- ],
- "files": [
- "hamcrest/Hamcrest.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD"
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator",
+ "type": "tidelift"
+ }
],
- "description": "This is the PHP port of Hamcrest Matchers",
- "keywords": [
- "test"
- ],
- "time": "2015-05-11T14:41:42+00:00"
+ "time": "2015-06-14T21:17:01+00:00"
},
{
"name": "instaclick/php-webdriver",
- "version": "1.4.14",
+ "version": "1.4.19",
"source": {
"type": "git",
"url": "https://github.com/instaclick/php-webdriver.git",
- "reference": "200b8df772b74d604bebf25ef42ad6f8ee6380a9"
+ "reference": "3b2a2ddc4e0a690cc691d7e5952964cc4b9538b1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/instaclick/php-webdriver/zipball/200b8df772b74d604bebf25ef42ad6f8ee6380a9",
- "reference": "200b8df772b74d604bebf25ef42ad6f8ee6380a9",
+ "url": "https://api.github.com/repos/instaclick/php-webdriver/zipball/3b2a2ddc4e0a690cc691d7e5952964cc4b9538b1",
+ "reference": "3b2a2ddc4e0a690cc691d7e5952964cc4b9538b1",
"shasum": ""
},
"require": {
@@ -1034,20 +889,24 @@
"webdriver",
"webtest"
],
- "time": "2022-04-19T02:06:59+00:00"
+ "support": {
+ "issues": "https://github.com/instaclick/php-webdriver/issues",
+ "source": "https://github.com/instaclick/php-webdriver/tree/1.4.19"
+ },
+ "time": "2024-03-19T01:58:53+00:00"
},
{
"name": "mindplay/annotations",
- "version": "1.3.3",
+ "version": "1.3.4",
"source": {
"type": "git",
"url": "https://github.com/php-annotations/php-annotations.git",
- "reference": "d314832b338b88299c4108361c858b0590798d2c"
+ "reference": "6d5bfc47218cb013b0b3026374c6ffb0b1cad989"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-annotations/php-annotations/zipball/d314832b338b88299c4108361c858b0590798d2c",
- "reference": "d314832b338b88299c4108361c858b0590798d2c",
+ "url": "https://api.github.com/repos/php-annotations/php-annotations/zipball/6d5bfc47218cb013b0b3026374c6ffb0b1cad989",
+ "reference": "6d5bfc47218cb013b0b3026374c6ffb0b1cad989",
"shasum": ""
},
"require": {
@@ -1084,72 +943,11 @@
"annotations",
"framework"
],
- "time": "2022-07-16T15:11:03+00:00"
- },
- {
- "name": "mockery/mockery",
- "version": "0.9.11",
- "source": {
- "type": "git",
- "url": "https://github.com/mockery/mockery.git",
- "reference": "be9bf28d8e57d67883cba9fcadfcff8caab667f8"
+ "support": {
+ "issues": "https://github.com/php-annotations/php-annotations/issues",
+ "source": "https://github.com/php-annotations/php-annotations/tree/1.3.4"
},
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/mockery/mockery/zipball/be9bf28d8e57d67883cba9fcadfcff8caab667f8",
- "reference": "be9bf28d8e57d67883cba9fcadfcff8caab667f8",
- "shasum": ""
- },
- "require": {
- "hamcrest/hamcrest-php": "~1.1",
- "lib-pcre": ">=7.0",
- "php": ">=5.3.2"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "0.9.x-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Mockery": "library/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Pádraic Brady",
- "email": "padraic.brady@gmail.com",
- "homepage": "http://blog.astrumfutura.com"
- },
- {
- "name": "Dave Marshall",
- "email": "dave.marshall@atstsolutions.co.uk",
- "homepage": "http://davedevelopment.co.uk"
- }
- ],
- "description": "Mockery is a simple yet flexible PHP mock object framework for use in unit testing with PHPUnit, PHPSpec or any other testing framework. Its core goal is to offer a test double framework with a succinct API capable of clearly defining all possible object operations and interactions using a human readable Domain Specific Language (DSL). Designed as a drop in alternative to PHPUnit's phpunit-mock-objects library, Mockery is easy to integrate with PHPUnit and can operate alongside phpunit-mock-objects without the World ending.",
- "homepage": "http://github.com/padraic/mockery",
- "keywords": [
- "BDD",
- "TDD",
- "library",
- "mock",
- "mock objects",
- "mockery",
- "stub",
- "test",
- "test double",
- "testing"
- ],
- "time": "2019-02-12T16:07:13+00:00"
+ "time": "2024-02-17T16:21:25+00:00"
},
{
"name": "nikic/php-parser",
@@ -1194,6 +992,10 @@
"parser",
"php"
],
+ "support": {
+ "issues": "https://github.com/nikic/PHP-Parser/issues",
+ "source": "https://github.com/nikic/PHP-Parser/tree/1.x"
+ },
"time": "2015-09-19T14:15:08+00:00"
},
{
@@ -1243,6 +1045,10 @@
"email": "mike.vanriel@naenius.com"
}
],
+ "support": {
+ "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
+ "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/release/2.x"
+ },
"time": "2016-01-25T08:17:30+00:00"
},
{
@@ -1306,6 +1112,10 @@
"spy",
"stub"
],
+ "support": {
+ "issues": "https://github.com/phpspec/prophecy/issues",
+ "source": "https://github.com/phpspec/prophecy/tree/v1.10.3"
+ },
"time": "2020-03-05T15:02:03+00:00"
},
{
@@ -1368,6 +1178,11 @@
"testing",
"xunit"
],
+ "support": {
+ "irc": "irc://irc.freenode.net/phpunit",
+ "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/2.2"
+ },
"time": "2015-10-06T15:47:00+00:00"
},
{
@@ -1415,6 +1230,11 @@
"filesystem",
"iterator"
],
+ "support": {
+ "irc": "irc://irc.freenode.net/phpunit",
+ "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/1.4.5"
+ },
"time": "2017-11-27T13:52:08+00:00"
},
{
@@ -1456,6 +1276,10 @@
"keywords": [
"template"
],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
+ "source": "https://github.com/sebastianbergmann/php-text-template/tree/1.2.1"
+ },
"time": "2015-06-21T13:50:34+00:00"
},
{
@@ -1505,6 +1329,10 @@
"keywords": [
"timer"
],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-timer/issues",
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/master"
+ },
"time": "2017-02-26T11:10:40+00:00"
},
{
@@ -1554,6 +1382,10 @@
"keywords": [
"tokenizer"
],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-token-stream/issues",
+ "source": "https://github.com/sebastianbergmann/php-token-stream/tree/1.4"
+ },
"abandoned": true,
"time": "2017-12-04T08:55:13+00:00"
},
@@ -1627,6 +1459,10 @@
"testing",
"xunit"
],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/phpunit/issues",
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/4.8.36"
+ },
"time": "2017-06-21T08:07:12+00:00"
},
{
@@ -1683,6 +1519,11 @@
"mock",
"xunit"
],
+ "support": {
+ "irc": "irc://irc.freenode.net/phpunit",
+ "issues": "https://github.com/sebastianbergmann/phpunit-mock-objects/issues",
+ "source": "https://github.com/sebastianbergmann/phpunit-mock-objects/tree/2.3"
+ },
"abandoned": true,
"time": "2015-10-02T06:51:40+00:00"
},
@@ -1734,6 +1575,10 @@
"container",
"dependency injection"
],
+ "support": {
+ "issues": "https://github.com/silexphp/Pimple/issues",
+ "source": "https://github.com/silexphp/Pimple/tree/master"
+ },
"time": "2018-01-21T07:42:36+00:00"
},
{
@@ -1783,6 +1628,10 @@
"container-interop",
"psr"
],
+ "support": {
+ "issues": "https://github.com/php-fig/container/issues",
+ "source": "https://github.com/php-fig/container/tree/master"
+ },
"time": "2017-02-14T16:28:37+00:00"
},
{
@@ -1857,6 +1706,10 @@
"phpunit",
"tests"
],
+ "support": {
+ "issues": "https://github.com/qa-tools/qa-tools/issues",
+ "source": "https://github.com/qa-tools/qa-tools/tree/master"
+ },
"time": "2016-07-06T11:31:04+00:00"
},
{
@@ -1921,6 +1774,10 @@
"compare",
"equality"
],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/comparator/issues",
+ "source": "https://github.com/sebastianbergmann/comparator/tree/1.2"
+ },
"time": "2017-01-29T09:50:25+00:00"
},
{
@@ -1973,6 +1830,10 @@
"keywords": [
"diff"
],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/diff/issues",
+ "source": "https://github.com/sebastianbergmann/diff/tree/1.4"
+ },
"time": "2017-05-22T07:24:03+00:00"
},
{
@@ -2023,6 +1884,10 @@
"environment",
"hhvm"
],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/environment/issues",
+ "source": "https://github.com/sebastianbergmann/environment/tree/1.3"
+ },
"time": "2016-08-18T05:49:44+00:00"
},
{
@@ -2090,6 +1955,10 @@
"export",
"exporter"
],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/exporter/issues",
+ "source": "https://github.com/sebastianbergmann/exporter/tree/master"
+ },
"time": "2016-06-17T09:04:28+00:00"
},
{
@@ -2141,6 +2010,10 @@
"keywords": [
"global state"
],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/global-state/issues",
+ "source": "https://github.com/sebastianbergmann/global-state/tree/1.1.1"
+ },
"time": "2015-10-12T03:26:01+00:00"
},
{
@@ -2194,6 +2067,10 @@
],
"description": "Provides functionality to recursively process PHP variables",
"homepage": "http://www.github.com/sebastianbergmann/recursion-context",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/master"
+ },
"time": "2016-10-03T07:41:43+00:00"
},
{
@@ -2229,6 +2106,10 @@
],
"description": "Library that helps with managing the version number of Git-hosted PHP projects",
"homepage": "https://github.com/sebastianbergmann/version",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/version/issues",
+ "source": "https://github.com/sebastianbergmann/version/tree/1.0.6"
+ },
"time": "2015-06-21T13:59:46+00:00"
},
{
@@ -2282,69 +2163,12 @@
],
"description": "Symfony CssSelector Component",
"homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/css-selector/tree/v2.8.52"
+ },
"time": "2018-11-11T11:18:13+00:00"
},
{
- "name": "symfony/event-dispatcher",
- "version": "v2.8.52",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "a77e974a5fecb4398833b0709210e3d5e334ffb0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a77e974a5fecb4398833b0709210e3d5e334ffb0",
- "reference": "a77e974a5fecb4398833b0709210e3d5e334ffb0",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.9"
- },
- "require-dev": {
- "psr/log": "~1.0",
- "symfony/config": "^2.0.5|~3.0.0",
- "symfony/dependency-injection": "~2.6|~3.0.0",
- "symfony/expression-language": "~2.6|~3.0.0",
- "symfony/stopwatch": "~2.3|~3.0.0"
- },
- "suggest": {
- "symfony/dependency-injection": "",
- "symfony/http-kernel": ""
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.8-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\EventDispatcher\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony EventDispatcher Component",
- "homepage": "https://symfony.com",
- "time": "2018-11-21T14:20:20+00:00"
- },
- {
"name": "symfony/polyfill-ctype",
"version": "v1.19.0",
"source": {
@@ -2404,6 +2228,9 @@
"polyfill",
"portable"
],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.19.0"
+ },
"funding": [
{
"url": "https://symfony.com/sponsor",
@@ -2468,19 +2295,86 @@
],
"description": "Symfony Yaml Component",
"homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/yaml/tree/v2.8.52"
+ },
"time": "2018-11-11T11:18:13+00:00"
+ },
+ {
+ "name": "yoast/phpunit-polyfills",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Yoast/PHPUnit-Polyfills.git",
+ "reference": "224e4a1329c03d8bad520e3fc4ec980034a4b212"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Yoast/PHPUnit-Polyfills/zipball/224e4a1329c03d8bad520e3fc4ec980034a4b212",
+ "reference": "224e4a1329c03d8bad520e3fc4ec980034a4b212",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.4",
+ "phpunit/phpunit": "^4.8.36 || ^5.7.21 || ^6.0 || ^7.0 || ^8.0 || ^9.0"
+ },
+ "require-dev": {
+ "yoast/yoastcs": "^2.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "phpunitpolyfills-autoload.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Team Yoast",
+ "email": "support@yoast.com",
+ "homepage": "https://yoast.com"
+ },
+ {
+ "name": "Contributors",
+ "homepage": "https://github.com/Yoast/PHPUnit-Polyfills/graphs/contributors"
+ }
+ ],
+ "description": "Set of polyfills for changed PHPUnit functionality to allow for creating PHPUnit cross-version compatible tests",
+ "homepage": "https://github.com/Yoast/PHPUnit-Polyfills",
+ "keywords": [
+ "phpunit",
+ "polyfill",
+ "testing"
+ ],
+ "support": {
+ "issues": "https://github.com/Yoast/PHPUnit-Polyfills/issues",
+ "source": "https://github.com/Yoast/PHPUnit-Polyfills"
+ },
+ "time": "2023-08-19T14:25:08+00:00"
}
],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": {
+ "mtdowling/cron-expression": 20,
"aik099/coding-standard": 20
},
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
- "php": ">=5.3.7"
+ "php": ">=5.6"
},
"platform-dev": [],
- "plugin-api-version": "1.1.0"
+ "platform-overrides": {
+ "php": "5.6"
+ },
+ "plugin-api-version": "2.2.0"
}
Index: branches/5.3.x/core/install/steps_db.xml
===================================================================
diff -u -r16284 -r16800
--- branches/5.3.x/core/install/steps_db.xml (.../steps_db.xml) (revision 16284)
+++ branches/5.3.x/core/install/steps_db.xml (.../steps_db.xml) (revision 16800)
@@ -222,7 +222,7 @@
The System Requirements Check option should be used to ensure proper system behavior in the current environment.
- PHP version 5.3.9 or above*
+ PHP version 5.6 or above*
Use this PHP version or better to ensure normal website operation on every day basis.
Index: branches/5.3.x/tools/build/inc/phpunit.xml
===================================================================
diff -u -r16195 -r16800
--- branches/5.3.x/tools/build/inc/phpunit.xml (.../phpunit.xml) (revision 16195)
+++ branches/5.3.x/tools/build/inc/phpunit.xml (.../phpunit.xml) (revision 16800)
@@ -1,7 +1,7 @@
@@ -19,22 +19,19 @@
-
-
-
-
-
+
+
-
+
../../..
Index: branches/5.3.x/core/install/cache/class_structure.php
===================================================================
diff -u -r16731 -r16800
--- branches/5.3.x/core/install/cache/class_structure.php (.../class_structure.php) (revision 16731)
+++ branches/5.3.x/core/install/cache/class_structure.php (.../class_structure.php) (revision 16800)
@@ -7,9 +7,11 @@
return array(
'cache_format' => 2,
'classes' => array(
+ 'AbstractBrowserTestCase' => '/core/tests/AbstractBrowserTestCase.php',
'AbstractCategoryItemRouter' => '/core/kernel/utility/Router/AbstractCategoryItemRouter.php',
'AbstractReviewRouter' => '/core/kernel/utility/Router/AbstractReviewRouter.php',
'AbstractRouter' => '/core/kernel/utility/Router/AbstractRouter.php',
+ 'AbstractTestCase' => '/core/tests/AbstractTestCase.php',
'AdminEventsHandler' => '/core/units/admin/admin_events_handler.php',
'AdminTagProcessor' => '/core/units/admin/admin_tag_processor.php',
'AjaxFormHelper' => '/core/units/helpers/ajax_form_helper.php',
@@ -129,6 +131,7 @@
'NParser' => '/core/kernel/nparser/nparser.php',
'NParserCompiler' => '/core/kernel/nparser/compiler.php',
'POP3Helper' => '/core/units/helpers/pop3_helper.php',
+ 'Page' => '/core/kernel/tests/Page/Page.php',
'PageHelper' => '/core/units/helpers/page_helper.php',
'PageRevisionEventHandler' => '/core/units/page_revisions/page_revision_eh.php',
'PageRevisionTagProcessor' => '/core/units/page_revisions/page_revision_tp.php',
@@ -148,6 +151,8 @@
'PromoBlockGroupTagProcessor' => '/core/units/promo_block_groups/promo_block_group_tp.php',
'PromoBlockTagProcessor' => '/core/units/promo_blocks/promo_block_tp.php',
'PromoBlockType' => '/core/kernel/constants.php',
+ 'QAToolsUrlBuilder' => '/core/kernel/tests/Url/QAToolsUrlBuilder.php',
+ 'QAToolsUrlFactory' => '/core/kernel/tests/Url/QAToolsUrlFactory.php',
'RatingHelper' => '/core/units/helpers/rating_helper.php',
'RelatedSearchEventHandler' => '/core/units/related_searches/related_searches_event_handler.php',
'RelatedSearchTagProcessor' => '/core/units/related_searches/related_searches_tag_processor.php',
@@ -255,7 +260,6 @@
'kColumnPickerHelper' => '/core/units/helpers/col_picker_helper.php',
'kCountHelper' => '/core/units/helpers/count_helper.php',
'kCountryStatesHelper' => '/core/units/helpers/country_states_helper.php',
- 'kCronField' => '/core/units/helpers/cron_helper.php',
'kCronHelper' => '/core/units/helpers/cron_helper.php',
'kCurlHelper' => '/core/units/helpers/curl_helper.php',
'kCustomFieldFormatter' => '/core/kernel/utility/formatters/customfield_formatter.php',
@@ -357,6 +361,13 @@
'kiCacheable' => '/core/kernel/interfaces/cacheable.php',
),
'class_info' => array(
+ 'AbstractBrowserTestCase' => array(
+ 'type' => 1,
+ 'modifiers' => 1,
+ 'extends' => array(
+ 0 => 'aik099\\PHPUnit\\BrowserTestCase',
+ ),
+ ),
'AbstractCategoryItemRouter' => array(
'type' => 1,
'modifiers' => 1,
@@ -378,6 +389,13 @@
0 => 'kBase',
),
),
+ 'AbstractTestCase' => array(
+ 'type' => 1,
+ 'modifiers' => 1,
+ 'extends' => array(
+ 0 => 'PHPUnit\\Framework\\TestCase',
+ ),
+ ),
'AdminEventsHandler' => array(
'type' => 1,
'modifiers' => 0,
@@ -1152,6 +1170,13 @@
0 => 'kHelper',
),
),
+ 'Page' => array(
+ 'type' => 1,
+ 'modifiers' => 0,
+ 'extends' => array(
+ 0 => 'QATools\\QATools\\HtmlElements\\TypifiedPage',
+ ),
+ ),
'PageHelper' => array(
'type' => 1,
'modifiers' => 0,
@@ -1276,6 +1301,21 @@
'type' => 1,
'modifiers' => 0,
),
+ 'QAToolsUrlBuilder' => array(
+ 'type' => 1,
+ 'modifiers' => 2,
+ 'extends' => array(
+ 0 => 'kBase',
+ 1 => 'QATools\\QATools\\PageObject\\Url\\IBuilder',
+ ),
+ ),
+ 'QAToolsUrlFactory' => array(
+ 'type' => 1,
+ 'modifiers' => 0,
+ 'extends' => array(
+ 0 => 'QATools\\QATools\\PageObject\\Url\\IUrlFactory',
+ ),
+ ),
'RatingHelper' => array(
'type' => 1,
'modifiers' => 0,
@@ -1988,13 +2028,6 @@
0 => 'kHelper',
),
),
- 'kCronField' => array(
- 'type' => 1,
- 'modifiers' => 0,
- 'extends' => array(
- 0 => 'kBase',
- ),
- ),
'kCronHelper' => array(
'type' => 1,
'modifiers' => 0,
Index: branches/5.3.x/core/kernel/application.php
===================================================================
diff -u -r16727 -r16800
--- branches/5.3.x/core/kernel/application.php (.../application.php) (revision 16727)
+++ branches/5.3.x/core/kernel/application.php (.../application.php) (revision 16800)
@@ -1,6 +1,6 @@
registerClass('Params', KERNEL_PATH . '/utility/params.php', 'kActions');
$this->registerClass('kMainTagProcessor', KERNEL_PATH . '/processors/main_processor.php', 'm_TagProcessor');
$this->registerClass('kEmailSendingHelper', KERNEL_PATH . '/utility/email_send.php', 'EmailSender');
+
+ // Testing.
+ $this->registerClass('Page', KERNEL_PATH . '/tests/Page/Page.php');
+ $this->registerClass('QAToolsUrlBuilder', KERNEL_PATH . '/tests/Url/QAToolsUrlBuilder.php');
+ $this->registerClass('QAToolsUrlFactory', KERNEL_PATH . '/tests/Url/QAToolsUrlFactory.php');
+ $this->registerClass('AbstractTestCase', KERNEL_PATH . '/../tests/AbstractTestCase.php');
+ $this->registerClass('AbstractBrowserTestCase', KERNEL_PATH . '/../tests/AbstractBrowserTestCase.php');
}
/**
Index: branches/5.3.x/core/install/step_templates/sys_requirements.tpl
===================================================================
diff -u -r16723 -r16800
--- branches/5.3.x/core/install/step_templates/sys_requirements.tpl (.../sys_requirements.tpl) (revision 16723)
+++ branches/5.3.x/core/install/step_templates/sys_requirements.tpl (.../sys_requirements.tpl) (revision 16800)
@@ -11,7 +11,7 @@
';
$check_titles = Array (
- 'php_version' => 'PHP version 5.3.9 or above*',
+ 'php_version' => 'PHP version 5.6 or above*',
'url_rewriting' => 'URL rewriting support',
'java' => 'Java template compression',
'composer' => 'Dependencies via Composer*',
Index: branches/5.3.x/core/install/prerequisites.php
===================================================================
diff -u -r16723 -r16800
--- branches/5.3.x/core/install/prerequisites.php (.../prerequisites.php) (revision 16723)
+++ branches/5.3.x/core/install/prerequisites.php (.../prerequisites.php) (revision 16800)
@@ -1,6 +1,6 @@
=');
+ $ret['php_version'] = version_compare(PHP_VERSION, '5.6', '>=');
if ( function_exists('apache_get_modules') ) {
$mod_rewrite = in_array('mod_rewrite', apache_get_modules());
Index: branches/5.3.x/.arcconfig
===================================================================
diff -u -r16195 -r16800
--- branches/5.3.x/.arcconfig (.../.arcconfig) (revision 16195)
+++ branches/5.3.x/.arcconfig (.../.arcconfig) (revision 16800)
@@ -1,5 +1,5 @@
{
"project.name": "in-portal",
"repository.callsign": "INP",
- "phabricator.uri": "http://qa.in-portal.org/"
+ "phabricator.uri": "https://qa.in-portal.org/"
}
Index: branches/5.3.x/composer.json
===================================================================
diff -u -r16723 -r16800
--- branches/5.3.x/composer.json (.../composer.json) (revision 16723)
+++ branches/5.3.x/composer.json (.../composer.json) (revision 16800)
@@ -1,21 +1,32 @@
{
- "name": "In-Portal",
+ "name": "intechnic/in-portal",
"require": {
- "php": ">=5.3.7",
+ "php": ">=5.6",
"symfony/console": "~2.6",
"stecman/symfony-console-completion": "~0.5",
"symfony/process": "^2.7",
"paragonie/random_compat": "^2.0",
- "symfony/polyfill-php55": "^1.19",
- "symfony/polyfill-php56": "^1.19"
+ "mtdowling/cron-expression": "dev-master"
},
"require-dev": {
- "aik099/phpunit-mink": "~2.0",
- "qa-tools/qa-tools": "~1.0",
+ "behat/mink": "^1.7",
+ "aik099/phpunit-mink": "^2.4",
+ "yoast/phpunit-polyfills": "^1.1",
+ "qa-tools/qa-tools": "^1.2",
+ "phpspec/prophecy": "^1.10",
"aik099/coding-standard": "dev-in-portal",
- "nikic/php-parser": "~1.2",
- "mockery/mockery": "~0.9",
-
- "behat/mink": "~1.6"
+ "nikic/php-parser": "~1.2"
+ },
+ "repositories": [
+ {
+ "type": "vcs",
+ "url": "https://github.com/in-portal/cron-expression",
+ "no-api": true
+ }
+ ],
+ "config": {
+ "platform": {
+ "php": "5.6"
+ }
}
}
Index: branches/5.3.x/core/kernel/utility/formatters/formatter.php
===================================================================
diff -u -r16600 -r16800
--- branches/5.3.x/core/kernel/utility/formatters/formatter.php (.../formatter.php) (revision 16600)
+++ branches/5.3.x/core/kernel/utility/formatters/formatter.php (.../formatter.php) (revision 16800)
@@ -1,6 +1,6 @@
@@ -16,22 +16,19 @@
-
-
-
-
-
+
+
-
+
../../../modules/custom
Index: branches/5.3.x/tools/build/targets/common.xml
===================================================================
diff -u -r16195 -r16800
--- branches/5.3.x/tools/build/targets/common.xml (.../common.xml) (revision 16195)
+++ branches/5.3.x/tools/build/targets/common.xml (.../common.xml) (revision 16800)
@@ -135,7 +135,6 @@
-
Index: branches/5.3.x/core/kernel/startup.php
===================================================================
diff -u -r16124 -r16800
--- branches/5.3.x/core/kernel/startup.php (.../startup.php) (revision 16124)
+++ branches/5.3.x/core/kernel/startup.php (.../startup.php) (revision 16800)
@@ -1,6 +1,6 @@