Page Menu
Home
In-Portal Phabricator
Search
Configure Global Search
Log In
Files
F800008
in-portal
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Fri, Feb 21, 11:58 PM
Size
102 KB
Mime Type
text/x-diff
Expires
Sun, Feb 23, 11:58 PM (17 h, 28 m)
Engine
blob
Format
Raw Data
Handle
573275
Attached To
rINP In-Portal
in-portal
View Options
Index: branches/5.2.x/core/units/helpers/cron_helper.php
===================================================================
--- branches/5.2.x/core/units/helpers/cron_helper.php (revision 16768)
+++ branches/5.2.x/core/units/helpers/cron_helper.php (revision 16769)
@@ -1,680 +1,346 @@
<?php
/**
* @version $Id$
* @package In-Portal
* @copyright Copyright (C) 1997 - 2009 Intechnic. All rights reserved.
* @license GNU/GPL
* In-Portal is Open Source software.
* This means that this software may have been modified pursuant
* the GNU General Public License, and as distributed it includes
* or is derivative of works licensed under the GNU General Public License
* or other free or open source software licenses.
* See http://www.in-portal.org/license for copyright notices and details.
*/
+use Cron\CronExpression;
+use Cron\FieldFactory;
+use Cron\FieldInterface;
+
defined('FULL_PATH') or die('restricted access!');
class kCronHelper extends kHelper {
const COMMON = 0;
const MINUTE = 1;
const HOUR = 2;
const DAY = 3;
const MONTH = 4;
const WEEKDAY = 5;
/**
+ * Field factory.
+ *
+ * @var FieldFactory
+ */
+ protected $fieldFactory;
+
+ /**
+ * Creates an instance of kCronHelper class.
+ */
+ public function __construct()
+ {
+ parent::__construct();
+
+ $this->fieldFactory = new FieldFactory();
+ }
+
+ /**
* Defines possible cron fields and their matching priority
*
* @var Array
* @access protected
*/
protected $fieldTypes = Array (self::MONTH, self::DAY, self::WEEKDAY, self::HOUR, self::MINUTE);
protected $commonSettings = Array (
'* * * * *' => 'la_opt_CronEveryMinute',
'*/5 * * * *' => 'la_opt_CronEveryFiveMinutes',
'0,30 * * * *' => 'la_opt_CronTwiceAnHour',
'0 * * * *' => 'la_opt_CronOnceAnHour',
'0 0,12 * * *' => 'la_opt_CronTwiceADay',
'0 0 * * *' => 'la_opt_CronOnceADay',
'0 0 * * 0' => 'la_opt_CronOnceAWeek',
'0 0 1,15 * *' => 'la_opt_CronTwiceAMonth',
'0 0 1 * *' => 'la_opt_CronOnceAMonth',
'0 0 1 1 *' => 'la_opt_CronOnceAYear',
);
protected $minuteSettings = Array (
'*' => 'la_opt_CronEveryMinute',
'*/2' => 'la_opt_CronEveryOtherMinute',
'*/5' => 'la_opt_CronEveryFiveMinutes',
'*/10' => 'la_opt_CronEveryTenMinutes',
'*/15' => 'la_opt_CronEveryFifteenMinutes',
'0,30' => 'la_opt_CronEveryThirtyMinutes',
'--' => 'la_opt_CronMinutes',
// minutes added dynamically later
);
protected $hourSettings = Array (
'*' => 'la_opt_CronEveryHour',
'*/2' => 'la_opt_CronEveryOtherHour',
'*/3' => 'la_opt_CronEveryThreeHours',
'*/4' => 'la_opt_CronEveryFourHours',
'*/6' => 'la_opt_CronEverySixHours',
'0,12' => 'la_opt_CronEveryTwelveHours',
'--' => 'la_opt_CronHours',
// hours added dynamically later
);
protected $daySettings = Array (
'*' => 'la_opt_CronEveryDay',
'*/2' => 'la_opt_CronEveryOtherDay',
'1,15' => 'la_opt_CronTwiceAMonth',
'--' => 'la_opt_CronDays',
// days added dynamically later
);
protected $monthSettings = Array (
'*' => 'la_opt_CronEveryMonth',
'*/2' => 'la_opt_CronEveryOtherMonth',
'*/4' => 'la_opt_CronEveryThreeMonths',
'1,7' => 'la_opt_CronEverySixMonths',
'--' => 'la_opt_CronMonths',
'1' => 'la_opt_January',
'2' => 'la_opt_February',
'3' => 'la_opt_March',
'4' => 'la_opt_April',
'5' => 'la_opt_May',
'6' => 'la_opt_June',
'7' => 'la_opt_July',
'8' => 'la_opt_August',
'9' => 'la_opt_September',
'10' => 'la_opt_October',
'11' => 'la_opt_November',
'12' => 'la_opt_December',
);
protected $weekdaySettings = Array (
'*' => 'la_opt_CronEveryWeekday',
'1-5' => 'la_opt_CronMondayThroughFriday',
'0,6' => 'la_opt_CronSaturdayAndSunday',
'1,3,5' => 'la_opt_CronMondayWednesdayAndFriday',
'2,4' => 'la_opt_CronTuesdayAndThursday',
'--' => 'la_opt_CronWeekdays',
'0' => 'la_opt_Sunday',
'1' => 'la_opt_Monday',
'2' => 'la_opt_Tuesday',
'3' => 'la_opt_Wednesday',
'4' => 'la_opt_Thursday',
'5' => 'la_opt_Friday',
'6' => 'la_opt_Saturday',
);
/**
* Returns possible field options by type
*
* @param int $field_type
* @return Array
*/
public function getOptions($field_type)
{
$mapping = Array (
self::COMMON => $this->commonSettings,
self::MINUTE => $this->minuteSettings,
self::HOUR => $this->hourSettings,
self::DAY => $this->daySettings,
self::MONTH => $this->monthSettings,
self::WEEKDAY => $this->weekdaySettings,
);
/** @var Array $ret */
$ret = $mapping[$field_type];
foreach ($ret as $option_key => $option_title) {
$option_title = substr($option_title, 0, 1) == '+' ? substr($option_title, 1) : $this->Application->Phrase($option_title);
$ret[$option_key] = $option_title;
if ( "$option_key" !== '--' ) {
$ret[$option_key] .= ' (' . $option_key . ')';
}
}
if ( $field_type == self::MINUTE ) {
for ($i = 0; $i <= 59; $i++) {
$ret[$i] = ':' . str_pad($i, 2, '0', STR_PAD_LEFT) . ' (' . $i . ')';
}
}
elseif ( $field_type == self::HOUR ) {
/** @var LanguagesItem $language */
$language = $this->Application->recallObject('lang.current');
$short_time_format = str_replace(':s', '', $language->GetDBField('TimeFormat'));
for ($i = 0; $i <= 23; $i++) {
$ret[$i] = adodb_date($short_time_format, adodb_mktime($i, 0, 0)) . ' (' . $i . ')';
}
}
elseif ( $field_type == self::DAY ) {
/** @var kMultiLanguageHelper $ml_helper */
$ml_helper = $this->Application->recallObject('kMultiLanguageHelper');
$forms = Array (
'phrase1' => 'la_NumberSuffixSt', 'phrase2' => 'la_NumberSuffixNd', 'phrase3' => 'la_NumberSuffixRd',
'phrase4' => 'la_NumberSuffixTh', 'phrase5' => 'la_NumberSuffixTh'
);
for ($i = 1; $i <= 31; $i++) {
$ret[$i] = $i . $ml_helper->getPluralPhrase($i, $forms) . ' (' . $i . ')';
}
}
return $ret;
}
/**
* Returns field name by type
*
* @param int $field_type
* @param string $field_prefix
* @return string
* @access protected
*/
protected function _getFieldNameByType($field_type, $field_prefix)
{
$field_mapping = Array (
self::MINUTE => 'Minute',
self::HOUR => 'Hour',
self::DAY => 'Day',
self::MONTH => 'Month',
self::WEEKDAY => 'Weekday',
);
return $field_prefix . $field_mapping[$field_type];
}
/**
+ * 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
* @param string $field_prefix
* @return void
* @access public
*/
public function initUnit($prefix, $field_prefix = '')
{
$virtual_fields = $this->Application->getUnitOption($prefix, 'VirtualFields', Array ());
$virtual_fields[$field_prefix . 'CommonHints'] = Array (
'type' => 'string',
'formatter' => 'kOptionsFormatter', 'options' => $this->getOptions(self::COMMON),
'default' => ''
);
foreach ($this->fieldTypes as $field_type) {
$field_name = $this->_getFieldNameByType($field_type, $field_prefix);
$virtual_fields[$field_name] = Array ('type' => 'string', 'max_len' => 30, 'default' => '*');
$virtual_fields[$field_name . 'Hints'] = Array (
'type' => 'string',
'formatter' => 'kOptionsFormatter', 'options' => $this->getOptions($field_type),
'default' => ''
);
}
$this->Application->setUnitOption($prefix, 'VirtualFields', $virtual_fields);
}
/**
* Loads schedule values from database into virtual fields
*
* @param kDBItem $object
* @param string $field_prefix
*/
public function load(kDBItem $object, $field_prefix = '')
{
$combined_value = explode(' ', $object->GetDBField($field_prefix));
foreach ($this->fieldTypes as $field_type) {
$field_name = $this->_getFieldNameByType($field_type, $field_prefix);
$object->SetDBField($field_name, $combined_value[$field_type - 1]);
}
}
/**
* Validates schedule values and saves them to database
*
* @param kDBItem $object
* @param string $field_prefix
* @return bool
* @access public
*/
public function validateAndSave(kDBItem $object, $field_prefix = '')
{
$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 {
$validated = false;
$object->SetError($field_name, 'invalid_format');
}
$combined_value[$field_type] = $value;
}
ksort($combined_value);
$object->SetDBField($field_prefix, implode(' ', $combined_value));
return $validated;
}
/**
- * 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
* @param int $date
* @param bool $inverse
* @param bool $allow_current_date
* @return int
* @access public
* @throws RuntimeException
*/
public function getMatch($expression, $date = NULL, $inverse = false, $allow_current_date = false)
{
if ( !isset($date) ) {
$date = TIMENOW;
}
- $next_run = strtotime('-' . (int)adodb_date('s', $date) . ' seconds', $date);
- $expression_parts = explode(' ', $expression);
-
- $cron_field = new kCronField();
-
- // 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;
- }
-
- throw new RuntimeException('Impossible CRON expression');
- }
-}
-
-
-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)adodb_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];
- }
+ $cron = CronExpression::factory($expression);
- /**
- * 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;
+ $date_formatted = date('Y-m-d H:i:s', $date);
- if ( $parts[0] == '*' || $parts[0] == 0 ) {
- return (int)$date_value % $stepSize == 0;
+ if ( $inverse ) {
+ return $cron->getPreviousRunDate($date_formatted, 0, $allow_current_date)->format('U');
}
- $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;
+ return $cron->getNextRunDate($date_formatted, 0, $allow_current_date)->format('U');
}
- /**
- * 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(adodb_date('Y-m-d 23:59:59', $date));
- // set time 23:59:00
- }
- else {
- // set time 00:00:00
- $date = strtotime(adodb_date('Y-m-d 00:00:00', $date));
- }
- }
- elseif ( $field_type == kCronHelper::HOUR ) {
- if ( $inverse ) {
- // set time <current_hour>:59:00
- $date = strtotime(adodb_date('Y-m-d H:59:59', $date));
- }
- else {
- // set time <current_hour>:00:00
- $date = strtotime(adodb_date('Y-m-d H:00:00', $date));
- }
- }
-
- return $date;
- }
-}
\ No newline at end of file
+}
Index: branches/5.2.x/composer.json
===================================================================
--- branches/5.2.x/composer.json (revision 16768)
+++ branches/5.2.x/composer.json (revision 16769)
@@ -1,22 +1,30 @@
{
"name": "intechnic/in-portal",
"require": {
- "php": ">=5.4.0",
+ "php": ">=5.4.7",
"paragonie/random_compat": "^2.0",
"symfony/polyfill-php55": "^1.19",
- "symfony/polyfill-php56": "^1.19"
+ "symfony/polyfill-php56": "^1.19",
+ "mtdowling/cron-expression": "dev-master"
},
"require-dev": {
"behat/mink": "^1.7",
"aik099/phpunit-mink": "^2.2",
"yoast/phpunit-polyfills": "^1.1",
"qa-tools/qa-tools": "^1.2",
"phpspec/prophecy": "^1.10",
"aik099/coding-standard": "dev-in-portal"
},
+ "repositories": [
+ {
+ "type": "vcs",
+ "url": "https://github.com/in-portal/cron-expression",
+ "no-api": true
+ }
+ ],
"config": {
"platform": {
- "php": "5.4.0"
+ "php": "5.4.7"
}
}
}
Index: branches/5.2.x/composer.lock
===================================================================
--- branches/5.2.x/composer.lock (revision 16768)
+++ branches/5.2.x/composer.lock (revision 16769)
@@ -1,2208 +1,2260 @@
{
"_readme": [
"This file locks the dependencies of your project to a known state",
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "982948269c77150f85ea5efd93aef365",
+ "content-hash": "e44d657cbe6f1c15496b087609a60d98",
"packages": [
{
"name": "ircmaxell/password-compat",
"version": "v1.0.4",
"source": {
"type": "git",
"url": "https://github.com/ircmaxell/password_compat.git",
"reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ircmaxell/password_compat/zipball/5c5cde8822a69545767f7c7f3058cb15ff84614c",
"reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c",
"shasum": ""
},
"require-dev": {
"phpunit/phpunit": "4.*"
},
"type": "library",
"autoload": {
"files": [
"lib/password.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Anthony Ferrara",
"email": "ircmaxell@php.net",
"homepage": "http://blog.ircmaxell.com"
}
],
"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",
"keywords": [
"hashing",
"password"
],
"support": {
"issues": "https://github.com/ircmaxell/password_compat/issues",
"source": "https://github.com/ircmaxell/password_compat/tree/v1.0"
},
"time": "2014-11-20T16:49:30+00:00"
},
{
+ "name": "mtdowling/cron-expression",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/in-portal/cron-expression",
+ "reference": "c4dda94f8f13f5447aa82e9b9528de1115448c74"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/in-portal/cron-expression/zipball/c4dda94f8f13f5447aa82e9b9528de1115448c74",
+ "reference": "c4dda94f8f13f5447aa82e9b9528de1115448c74",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.4.7"
+ },
+ "require-dev": {
+ "yoast/phpunit-polyfills": "^1.0"
+ },
+ "default-branch": true,
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Cron\\": "src/Cron/"
+ }
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "Tests\\": "tests/Cron/"
+ }
+ },
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ }
+ ],
+ "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due",
+ "keywords": [
+ "cron",
+ "schedule"
+ ],
+ "abandoned": "dragonmantank/cron-expression",
+ "time": "2022-11-08T11:57:39+00:00"
+ },
+ {
"name": "paragonie/random_compat",
"version": "v2.0.21",
"source": {
"type": "git",
"url": "https://github.com/paragonie/random_compat.git",
"reference": "96c132c7f2f7bc3230723b66e89f8f150b29d5ae"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/paragonie/random_compat/zipball/96c132c7f2f7bc3230723b66e89f8f150b29d5ae",
"reference": "96c132c7f2f7bc3230723b66e89f8f150b29d5ae",
"shasum": ""
},
"require": {
"php": ">=5.2.0"
},
"require-dev": {
"phpunit/phpunit": "*"
},
"suggest": {
"ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
},
"type": "library",
"autoload": {
"files": [
"lib/random.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Paragon Initiative Enterprises",
"email": "security@paragonie.com",
"homepage": "https://paragonie.com"
}
],
"description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
"keywords": [
"csprng",
"polyfill",
"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"
},
{
"name": "symfony/polyfill-php55",
"version": "v1.19.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php55.git",
"reference": "248a5c9877b126493abb661e4fb47792e418035b"
},
"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"
],
"support": {
"source": "https://github.com/symfony/polyfill-php55/tree/v1.19.0"
},
"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-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"
],
"support": {
"source": "https://github.com/symfony/polyfill-php56/tree/v1.19.0"
},
"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"
],
"support": {
"source": "https://github.com/symfony/polyfill-util/tree/v1.19.0"
},
"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"
}
],
"packages-dev": [
{
"name": "aik099/coding-standard",
"version": "dev-in-portal",
"source": {
"type": "git",
"url": "https://github.com/aik099/CodingStandard.git",
"reference": "26b67b43b3cb4d57a68a472170bf6fab07334c18"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/aik099/CodingStandard/zipball/26b67b43b3cb4d57a68a472170bf6fab07334c18",
"reference": "26b67b43b3cb4d57a68a472170bf6fab07334c18",
"shasum": ""
},
"require-dev": {
"squizlabs/php_codesniffer": "^3.0",
"yoast/phpunit-polyfills": "^1.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0.x-dev"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Alexander Obuhovich",
"email": "aik.bold@gmail.com"
}
],
"description": "The PHP_CodeSniffer coding standard I'm using on all of my projects.",
"keywords": [
"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.3.0",
"source": {
"type": "git",
"url": "https://github.com/minkphp/phpunit-mink.git",
- "reference": "68b94432ac12ad4f714ef540037396aeb369e230"
+ "reference": "2f80d83eb1ed7da1c5c96b1eb7bab6687193493e"
},
"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/2f80d83eb1ed7da1c5c96b1eb7bab6687193493e",
+ "reference": "2f80d83eb1ed7da1c5c96b1eb7bab6687193493e",
"shasum": ""
},
"require": {
"behat/mink": "~1.6@dev",
"behat/mink-selenium2-driver": "~1.2",
- "php": ">=5.3.2",
- "phpunit/phpunit": "~4|~5",
+ "php": ">=5.4.7",
+ "phpunit/phpunit": ">=4.8.35 <5|>=5.4.3",
"symfony/event-dispatcher": "~2.4|~3.0"
},
"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"
}
},
"autoload": {
"psr-4": {
"aik099\\PHPUnit\\": "library/aik099/PHPUnit",
"PimpleCopy\\Pimple\\": "library/PimpleCopy/Pimple"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Alexander Obuhovich",
"email": "aik.bold@gmail.com"
}
],
"description": "Library for using Mink in PHPUnit tests. Supports session sharing between tests in a test case.",
"homepage": "http://github.com/minkphp/phpunit-mink",
"keywords": [
"BrowserStack",
"Mink",
"Sauce",
"SauceLabs",
"phpunit",
"selenium",
"tests"
],
"support": {
"issues": "https://github.com/minkphp/phpunit-mink/issues",
- "source": "https://github.com/minkphp/phpunit-mink/tree/v2.2.0"
+ "source": "https://github.com/minkphp/phpunit-mink/tree/v2.3.0"
},
- "time": "2016-06-26T09:07:47+00:00"
+ "time": "2022-11-24T15:03:10+00:00"
},
{
"name": "behat/mink",
"version": "v1.9.0",
"source": {
"type": "git",
"url": "https://github.com/minkphp/Mink.git",
"reference": "e35f4695de8800fc776af34ebf665ad58ebdd996"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/minkphp/Mink/zipball/e35f4695de8800fc776af34ebf665ad58ebdd996",
"reference": "e35f4695de8800fc776af34ebf665ad58ebdd996",
"shasum": ""
},
"require": {
"php": ">=5.4",
"symfony/css-selector": "^2.7|^3.0|^4.0|^5.0"
},
"require-dev": {
"phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5 || ^9.5",
"symfony/debug": "^2.7|^3.0|^4.0|^5.0",
"symfony/phpunit-bridge": "^3.4.38 || ^4.4 || ^5.0.5",
"yoast/phpunit-polyfills": "^1.0"
},
"suggest": {
"behat/mink-browserkit-driver": "extremely fast headless driver for Symfony\\Kernel-based apps (Sf2, Silex)",
"behat/mink-goutte-driver": "fast headless driver for any app without JS emulation",
"behat/mink-selenium2-driver": "slow, but JS-enabled driver for any app (requires Selenium2)",
"behat/mink-zombie-driver": "fast and JS-enabled headless driver for any app (requires node.js)",
"dmore/chrome-mink-driver": "fast and JS-enabled driver for any app (requires chromium or google chrome)"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.x-dev"
}
},
"autoload": {
"psr-4": {
"Behat\\Mink\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Konstantin Kudryashov",
"email": "ever.zet@gmail.com",
"homepage": "http://everzet.com"
}
],
"description": "Browser controller/emulator abstraction for PHP",
"homepage": "https://mink.behat.org/",
"keywords": [
"browser",
"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"
},
{
"name": "behat/mink-selenium2-driver",
"version": "v1.5.0",
"source": {
"type": "git",
"url": "https://github.com/minkphp/MinkSelenium2Driver.git",
"reference": "0dee8cceed7e198bf130b4af0fab0ffab6dab47f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/minkphp/MinkSelenium2Driver/zipball/0dee8cceed7e198bf130b4af0fab0ffab6dab47f",
"reference": "0dee8cceed7e198bf130b4af0fab0ffab6dab47f",
"shasum": ""
},
"require": {
"behat/mink": "~1.7@dev",
"instaclick/php-webdriver": "~1.1",
"php": ">=5.4"
},
"require-dev": {
"mink/driver-testsuite": "dev-master"
},
"type": "mink-driver",
"extra": {
"branch-alias": {
"dev-master": "1.x-dev"
}
},
"autoload": {
"psr-4": {
"Behat\\Mink\\Driver\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Pete Otaqui",
"email": "pete@otaqui.com",
"homepage": "https://github.com/pete-otaqui"
},
{
"name": "Konstantin Kudryashov",
"email": "ever.zet@gmail.com",
"homepage": "http://everzet.com"
}
],
"description": "Selenium2 (WebDriver) driver for Mink framework",
"homepage": "https://mink.behat.org/",
"keywords": [
"ajax",
"browser",
"javascript",
"selenium",
"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": "doctrine/instantiator",
"version": "1.0.5",
"source": {
"type": "git",
"url": "https://github.com/doctrine/instantiator.git",
"reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
"reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
"shasum": ""
},
"require": {
"php": ">=5.3,<8.0-DEV"
},
"require-dev": {
"athletic/athletic": "~0.1.8",
"ext-pdo": "*",
"ext-phar": "*",
"phpunit/phpunit": "~4.0",
"squizlabs/php_codesniffer": "~2.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Marco Pivetta",
"email": "ocramius@gmail.com",
"homepage": "http://ocramius.github.com/"
}
],
"description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
"homepage": "https://github.com/doctrine/instantiator",
"keywords": [
"constructor",
"instantiate"
],
"support": {
"issues": "https://github.com/doctrine/instantiator/issues",
"source": "https://github.com/doctrine/instantiator/tree/1.0.5"
},
"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"
}
],
"time": "2015-06-14T21:17:01+00:00"
},
{
"name": "instaclick/php-webdriver",
"version": "1.4.16",
"source": {
"type": "git",
"url": "https://github.com/instaclick/php-webdriver.git",
"reference": "a39a1f6dc0f4ddd8b2438fa5eb1f67755730d606"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/instaclick/php-webdriver/zipball/a39a1f6dc0f4ddd8b2438fa5eb1f67755730d606",
"reference": "a39a1f6dc0f4ddd8b2438fa5eb1f67755730d606",
"shasum": ""
},
"require": {
"ext-curl": "*",
"php": ">=5.3.2"
},
"require-dev": {
"phpunit/phpunit": "^8.5 || ^9.5",
"satooshi/php-coveralls": "^1.0 || ^2.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.4.x-dev"
}
},
"autoload": {
"psr-0": {
"WebDriver": "lib/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"Apache-2.0"
],
"authors": [
{
"name": "Justin Bishop",
"email": "jubishop@gmail.com",
"role": "Developer"
},
{
"name": "Anthon Pang",
"email": "apang@softwaredevelopment.ca",
"role": "Fork Maintainer"
}
],
"description": "PHP WebDriver for Selenium 2",
"homepage": "http://instaclick.com/",
"keywords": [
"browser",
"selenium",
"webdriver",
"webtest"
],
"support": {
"issues": "https://github.com/instaclick/php-webdriver/issues",
"source": "https://github.com/instaclick/php-webdriver/tree/1.4.16"
},
"time": "2022-10-28T13:30:35+00:00"
},
{
"name": "mindplay/annotations",
"version": "1.3.3",
"source": {
"type": "git",
"url": "https://github.com/php-annotations/php-annotations.git",
"reference": "d314832b338b88299c4108361c858b0590798d2c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-annotations/php-annotations/zipball/d314832b338b88299c4108361c858b0590798d2c",
"reference": "d314832b338b88299c4108361c858b0590798d2c",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"phpunit/php-code-coverage": "~1.2.1",
"phpunit/php-file-iterator": ">=1.3.0@stable <2.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.3.x-dev"
}
},
"autoload": {
"psr-4": {
"mindplay\\annotations\\": "src\\annotations"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"LGPL-3.0+"
],
"authors": [
{
"name": "Rasmus Schultz",
"email": "rasmus@mindplay.dk"
}
],
"description": "Industrial-strength annotations for PHP",
"homepage": "http://blog.mindplay.dk/",
"keywords": [
"annotations",
"framework"
],
"support": {
"issues": "https://github.com/php-annotations/php-annotations/issues",
"source": "https://github.com/php-annotations/php-annotations/tree/1.3.3"
},
"time": "2022-07-16T15:11:03+00:00"
},
{
"name": "phpdocumentor/reflection-docblock",
"version": "2.0.5",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
"reference": "e6a969a640b00d8daa3c66518b0405fb41ae0c4b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/e6a969a640b00d8daa3c66518b0405fb41ae0c4b",
"reference": "e6a969a640b00d8daa3c66518b0405fb41ae0c4b",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"phpunit/phpunit": "~4.0"
},
"suggest": {
"dflydev/markdown": "~1.0",
"erusev/parsedown": "~1.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0.x-dev"
}
},
"autoload": {
"psr-0": {
"phpDocumentor": [
"src/"
]
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Mike van Riel",
"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"
},
{
"name": "phpspec/prophecy",
"version": "v1.10.3",
"source": {
"type": "git",
"url": "https://github.com/phpspec/prophecy.git",
"reference": "451c3cd1418cf640de218914901e51b064abb093"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093",
"reference": "451c3cd1418cf640de218914901e51b064abb093",
"shasum": ""
},
"require": {
"doctrine/instantiator": "^1.0.2",
"php": "^5.3|^7.0",
"phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0",
"sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0",
"sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0"
},
"require-dev": {
"phpspec/phpspec": "^2.5 || ^3.2",
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.10.x-dev"
}
},
"autoload": {
"psr-4": {
"Prophecy\\": "src/Prophecy"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Konstantin Kudryashov",
"email": "ever.zet@gmail.com",
"homepage": "http://everzet.com"
},
{
"name": "Marcello Duarte",
"email": "marcello.duarte@gmail.com"
}
],
"description": "Highly opinionated mocking framework for PHP 5.3+",
"homepage": "https://github.com/phpspec/prophecy",
"keywords": [
"Double",
"Dummy",
"fake",
"mock",
"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"
},
{
"name": "phpunit/php-code-coverage",
"version": "2.2.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
"reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979",
"reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979",
"shasum": ""
},
"require": {
"php": ">=5.3.3",
"phpunit/php-file-iterator": "~1.3",
"phpunit/php-text-template": "~1.2",
"phpunit/php-token-stream": "~1.3",
"sebastian/environment": "^1.3.2",
"sebastian/version": "~1.0"
},
"require-dev": {
"ext-xdebug": ">=2.1.4",
"phpunit/phpunit": "~4"
},
"suggest": {
"ext-dom": "*",
"ext-xdebug": ">=2.2.1",
"ext-xmlwriter": "*"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.2.x-dev"
}
},
"autoload": {
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sb@sebastian-bergmann.de",
"role": "lead"
}
],
"description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
"homepage": "https://github.com/sebastianbergmann/php-code-coverage",
"keywords": [
"coverage",
"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"
},
{
"name": "phpunit/php-file-iterator",
"version": "1.4.5",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
"reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4",
"reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.4.x-dev"
}
},
"autoload": {
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sb@sebastian-bergmann.de",
"role": "lead"
}
],
"description": "FilterIterator implementation that filters files based on a list of suffixes.",
"homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
"keywords": [
"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"
},
{
"name": "phpunit/php-text-template",
"version": "1.2.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-text-template.git",
"reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
"reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"type": "library",
"autoload": {
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sebastian@phpunit.de",
"role": "lead"
}
],
"description": "Simple template engine.",
"homepage": "https://github.com/sebastianbergmann/php-text-template/",
"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"
},
{
"name": "phpunit/php-timer",
"version": "1.0.9",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-timer.git",
"reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
"reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
"shasum": ""
},
"require": {
"php": "^5.3.3 || ^7.0"
},
"require-dev": {
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0-dev"
}
},
"autoload": {
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sb@sebastian-bergmann.de",
"role": "lead"
}
],
"description": "Utility class for timing",
"homepage": "https://github.com/sebastianbergmann/php-timer/",
"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"
},
{
"name": "phpunit/php-token-stream",
"version": "1.4.12",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-token-stream.git",
"reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1ce90ba27c42e4e44e6d8458241466380b51fa16",
"reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16",
"shasum": ""
},
"require": {
"ext-tokenizer": "*",
"php": ">=5.3.3"
},
"require-dev": {
"phpunit/phpunit": "~4.2"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.4-dev"
}
},
"autoload": {
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sebastian@phpunit.de"
}
],
"description": "Wrapper around PHP's tokenizer extension.",
"homepage": "https://github.com/sebastianbergmann/php-token-stream/",
"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"
},
{
"name": "phpunit/phpunit",
"version": "4.8.36",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "46023de9a91eec7dfb06cc56cb4e260017298517"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/46023de9a91eec7dfb06cc56cb4e260017298517",
"reference": "46023de9a91eec7dfb06cc56cb4e260017298517",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-json": "*",
"ext-pcre": "*",
"ext-reflection": "*",
"ext-spl": "*",
"php": ">=5.3.3",
"phpspec/prophecy": "^1.3.1",
"phpunit/php-code-coverage": "~2.1",
"phpunit/php-file-iterator": "~1.4",
"phpunit/php-text-template": "~1.2",
"phpunit/php-timer": "^1.0.6",
"phpunit/phpunit-mock-objects": "~2.3",
"sebastian/comparator": "~1.2.2",
"sebastian/diff": "~1.2",
"sebastian/environment": "~1.3",
"sebastian/exporter": "~1.2",
"sebastian/global-state": "~1.0",
"sebastian/version": "~1.0",
"symfony/yaml": "~2.1|~3.0"
},
"suggest": {
"phpunit/php-invoker": "~1.1"
},
"bin": [
"phpunit"
],
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "4.8.x-dev"
}
},
"autoload": {
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sebastian@phpunit.de",
"role": "lead"
}
],
"description": "The PHP Unit Testing framework.",
"homepage": "https://phpunit.de/",
"keywords": [
"phpunit",
"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"
},
{
"name": "phpunit/phpunit-mock-objects",
"version": "2.3.8",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
"reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983",
"reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983",
"shasum": ""
},
"require": {
"doctrine/instantiator": "^1.0.2",
"php": ">=5.3.3",
"phpunit/php-text-template": "~1.2",
"sebastian/exporter": "~1.2"
},
"require-dev": {
"phpunit/phpunit": "~4.4"
},
"suggest": {
"ext-soap": "*"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.3.x-dev"
}
},
"autoload": {
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sb@sebastian-bergmann.de",
"role": "lead"
}
],
"description": "Mock Object library for PHPUnit",
"homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
"keywords": [
"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"
},
{
"name": "pimple/pimple",
"version": "v3.2.3",
"source": {
"type": "git",
"url": "https://github.com/silexphp/Pimple.git",
"reference": "9e403941ef9d65d20cba7d54e29fe906db42cf32"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/silexphp/Pimple/zipball/9e403941ef9d65d20cba7d54e29fe906db42cf32",
"reference": "9e403941ef9d65d20cba7d54e29fe906db42cf32",
"shasum": ""
},
"require": {
"php": ">=5.3.0",
"psr/container": "^1.0"
},
"require-dev": {
"symfony/phpunit-bridge": "^3.2"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.2.x-dev"
}
},
"autoload": {
"psr-0": {
"Pimple": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
}
],
"description": "Pimple, a simple Dependency Injection Container",
"homepage": "http://pimple.sensiolabs.org",
"keywords": [
"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"
},
{
"name": "psr/container",
"version": "1.0.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/container.git",
"reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
"reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Container\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common Container Interface (PHP FIG PSR-11)",
"homepage": "https://github.com/php-fig/container",
"keywords": [
"PSR-11",
"container",
"container-interface",
"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"
},
{
"name": "qa-tools/qa-tools",
"version": "v1.2.1",
"source": {
"type": "git",
"url": "https://github.com/qa-tools/qa-tools.git",
"reference": "505b14a7766daa718cad21bdb7bcb404cabaa1fc"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/qa-tools/qa-tools/zipball/505b14a7766daa718cad21bdb7bcb404cabaa1fc",
"reference": "505b14a7766daa718cad21bdb7bcb404cabaa1fc",
"shasum": ""
},
"require": {
"behat/mink": "~1.6",
"mindplay/annotations": "~1.2",
"php": ">=5.3.2",
"pimple/pimple": "^2.0|^3.0"
},
"replace": {
"aik099/qa-tools": "self.version"
},
"require-dev": {
"aik099/coding-standard": "dev-master",
"behat/mink-selenium2-driver": "~1.2",
"mockery/mockery": "~0.9",
"symfony/phpunit-bridge": "^3.1"
},
"suggest": {
"qa-tools/phpunit-extension": "PHPUnit extension for QA-Tools"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.2.x-dev"
}
},
"autoload": {
"psr-0": {
"QATools\\QATools\\": "./library/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Alexander Obuhovich",
"email": "aik.bold@gmail.com"
},
{
"name": "Dmitry Kushnikov",
"email": "dkushnikov@gmail.com"
},
{
"name": "Michael Geppert",
"email": "evangelion1204@aol.com"
}
],
"description": "Library that provides easy-to-use way of interaction with web-page elements in functional tests using PageObject pattern.",
"keywords": [
"BEM",
"HtmlElements",
"Mink",
"PageObject",
"acceptance",
"functional",
"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"
},
{
"name": "sebastian/comparator",
"version": "1.2.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git",
"reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
"reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
"shasum": ""
},
"require": {
"php": ">=5.3.3",
"sebastian/diff": "~1.2",
"sebastian/exporter": "~1.2 || ~2.0"
},
"require-dev": {
"phpunit/phpunit": "~4.4"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.2.x-dev"
}
},
"autoload": {
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Jeff Welch",
"email": "whatthejeff@gmail.com"
},
{
"name": "Volker Dusch",
"email": "github@wallbash.com"
},
{
"name": "Bernhard Schussek",
"email": "bschussek@2bepublished.at"
},
{
"name": "Sebastian Bergmann",
"email": "sebastian@phpunit.de"
}
],
"description": "Provides the functionality to compare PHP values for equality",
"homepage": "http://www.github.com/sebastianbergmann/comparator",
"keywords": [
"comparator",
"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"
},
{
"name": "sebastian/diff",
"version": "1.4.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
"reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4",
"reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4",
"shasum": ""
},
"require": {
"php": "^5.3.3 || ^7.0"
},
"require-dev": {
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.4-dev"
}
},
"autoload": {
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Kore Nordmann",
"email": "mail@kore-nordmann.de"
},
{
"name": "Sebastian Bergmann",
"email": "sebastian@phpunit.de"
}
],
"description": "Diff implementation",
"homepage": "https://github.com/sebastianbergmann/diff",
"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"
},
{
"name": "sebastian/environment",
"version": "1.3.8",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
"reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/be2c607e43ce4c89ecd60e75c6a85c126e754aea",
"reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea",
"shasum": ""
},
"require": {
"php": "^5.3.3 || ^7.0"
},
"require-dev": {
"phpunit/phpunit": "^4.8 || ^5.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.3.x-dev"
}
},
"autoload": {
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sebastian@phpunit.de"
}
],
"description": "Provides functionality to handle HHVM/PHP environments",
"homepage": "http://www.github.com/sebastianbergmann/environment",
"keywords": [
"Xdebug",
"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"
},
{
"name": "sebastian/exporter",
"version": "1.2.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
"reference": "42c4c2eec485ee3e159ec9884f95b431287edde4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4",
"reference": "42c4c2eec485ee3e159ec9884f95b431287edde4",
"shasum": ""
},
"require": {
"php": ">=5.3.3",
"sebastian/recursion-context": "~1.0"
},
"require-dev": {
"ext-mbstring": "*",
"phpunit/phpunit": "~4.4"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.3.x-dev"
}
},
"autoload": {
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Jeff Welch",
"email": "whatthejeff@gmail.com"
},
{
"name": "Volker Dusch",
"email": "github@wallbash.com"
},
{
"name": "Bernhard Schussek",
"email": "bschussek@2bepublished.at"
},
{
"name": "Sebastian Bergmann",
"email": "sebastian@phpunit.de"
},
{
"name": "Adam Harvey",
"email": "aharvey@php.net"
}
],
"description": "Provides the functionality to export PHP variables for visualization",
"homepage": "http://www.github.com/sebastianbergmann/exporter",
"keywords": [
"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"
},
{
"name": "sebastian/global-state",
"version": "1.1.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/global-state.git",
"reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4",
"reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"phpunit/phpunit": "~4.2"
},
"suggest": {
"ext-uopz": "*"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0-dev"
}
},
"autoload": {
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sebastian@phpunit.de"
}
],
"description": "Snapshotting of global state",
"homepage": "http://www.github.com/sebastianbergmann/global-state",
"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"
},
{
"name": "sebastian/recursion-context",
"version": "1.0.5",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/recursion-context.git",
"reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/b19cc3298482a335a95f3016d2f8a6950f0fbcd7",
"reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"phpunit/phpunit": "~4.4"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Jeff Welch",
"email": "whatthejeff@gmail.com"
},
{
"name": "Sebastian Bergmann",
"email": "sebastian@phpunit.de"
},
{
"name": "Adam Harvey",
"email": "aharvey@php.net"
}
],
"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"
},
{
"name": "sebastian/version",
"version": "1.0.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/version.git",
"reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
"reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
"shasum": ""
},
"type": "library",
"autoload": {
"classmap": [
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
"email": "sebastian@phpunit.de",
"role": "lead"
}
],
"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"
},
{
"name": "symfony/css-selector",
"version": "v2.8.52",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
"reference": "7b1692e418d7ccac24c373528453bc90e42797de"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/css-selector/zipball/7b1692e418d7ccac24c373528453bc90e42797de",
"reference": "7b1692e418d7ccac24c373528453bc90e42797de",
"shasum": ""
},
"require": {
"php": ">=5.3.9"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.8-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Component\\CssSelector\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Jean-François Simon",
"email": "jeanfrancois.simon@sensiolabs.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"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",
"support": {
"source": "https://github.com/symfony/event-dispatcher/tree/v2.8.50"
},
"time": "2018-11-21T14:20:20+00:00"
},
{
"name": "symfony/polyfill-ctype",
"version": "v1.19.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
"reference": "aed596913b70fae57be53d86faa2e9ef85a2297b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/aed596913b70fae57be53d86faa2e9ef85a2297b",
"reference": "aed596913b70fae57be53d86faa2e9ef85a2297b",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"suggest": {
"ext-ctype": "For best performance"
},
"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\\Ctype\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Gert de Pagter",
"email": "BackEndTea@gmail.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill for ctype functions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"ctype",
"polyfill",
"portable"
],
"support": {
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.19.0"
},
"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/yaml",
"version": "v2.8.52",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
"reference": "02c1859112aa779d9ab394ae4f3381911d84052b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/yaml/zipball/02c1859112aa779d9ab394ae4f3381911d84052b",
"reference": "02c1859112aa779d9ab394ae4f3381911d84052b",
"shasum": ""
},
"require": {
"php": ">=5.3.9",
"symfony/polyfill-ctype": "~1.8"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.8-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Component\\Yaml\\": ""
},
"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 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.4.0"
+ "php": ">=5.4.7"
},
"platform-dev": [],
"platform-overrides": {
- "php": "5.4.0"
+ "php": "5.4.7"
},
"plugin-api-version": "2.2.0"
}
Event Timeline
Log In to Comment