Compare commits

...

2 Commits

Author SHA1 Message Date
Clemens Schwaighofer
1379cf1519 Add print bool in logging class 2022-05-26 14:31:48 +09:00
Clemens Schwaighofer
2d15b78d21 Composer update 2022-05-26 09:52:37 +09:00
22 changed files with 243 additions and 125 deletions

View File

@@ -8,6 +8,9 @@ for file in $(ls -1 ${base_folder}../4dev/locale/*.po); do
echo "Translate language ${file}"; echo "Translate language ${file}";
locale=$(echo "${file}" | cut -d "-" -f 1); locale=$(echo "${file}" | cut -d "-" -f 1);
domain=$(echo "${file}" | cut -d "-" -f 2); domain=$(echo "${file}" | cut -d "-" -f 2);
if [ ! -d "${base_folder}/includes/locale/${locale}/LC_MESSAGES/" ]; then
mkdir -p "${base_folder}/includes/locale/${locale}/LC_MESSAGES/";
fi;
msgfmt -o ${base_folder}/includes/locale/${locale}/LC_MESSAGES/${domain}.mo ${base_folder}../4dev/locale/${locale}-${domain}.po; msgfmt -o ${base_folder}/includes/locale/${locale}/LC_MESSAGES/${domain}.mo ${base_folder}../4dev/locale/${locale}-${domain}.po;
done; done;

View File

@@ -181,6 +181,10 @@ $debug->debug('TEST PER LEVEL', 'Per level test');
$debug->debug('()', 'Per level test: invalid chars'); $debug->debug('()', 'Per level test: invalid chars');
$debug->setLogPer('level', false); $debug->setLogPer('level', false);
$ar = ['A', 1, ['B' => 'D']];
$debug->debug('ARRAY', 'Array: ' . $debug->prAr($ar));
$debug->debug('BOOL', 'True: ' . $debug->prBl(true) . ', False: ' . $debug->prBl(false));
// error message // error message
// future DEPRECATED // future DEPRECATED
// $debug->debug('BASIC CLASS', 'Debug test'); // $debug->debug('BASIC CLASS', 'Debug test');

38
www/composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "fb2235a66a37d89e7941a863843d2e15", "content-hash": "a71e6f4fbc06f0efb6ad34538b515c53",
"packages": [], "packages": [],
"packages-dev": [ "packages-dev": [
{ {
@@ -415,16 +415,16 @@
}, },
{ {
"name": "phpdocumentor/type-resolver", "name": "phpdocumentor/type-resolver",
"version": "1.6.0", "version": "1.6.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpDocumentor/TypeResolver.git", "url": "https://github.com/phpDocumentor/TypeResolver.git",
"reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706" "reference": "77a32518733312af16a44300404e945338981de3"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/93ebd0014cab80c4ea9f5e297ea48672f1b87706", "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/77a32518733312af16a44300404e945338981de3",
"reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706", "reference": "77a32518733312af16a44300404e945338981de3",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -459,9 +459,9 @@
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
"support": { "support": {
"issues": "https://github.com/phpDocumentor/TypeResolver/issues", "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
"source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.0" "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.1"
}, },
"time": "2022-01-04T19:58:01+00:00" "time": "2022-03-15T21:29:03+00:00"
}, },
{ {
"name": "phpspec/prophecy", "name": "phpspec/prophecy",
@@ -850,16 +850,16 @@
}, },
{ {
"name": "phpunit/phpunit", "name": "phpunit/phpunit",
"version": "9.5.19", "version": "9.5.20",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git", "url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "35ea4b7f3acabb26f4bb640f8c30866c401da807" "reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/35ea4b7f3acabb26f4bb640f8c30866c401da807", "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/12bc8879fb65aef2138b26fc633cb1e3620cffba",
"reference": "35ea4b7f3acabb26f4bb640f8c30866c401da807", "reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -937,7 +937,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues", "issues": "https://github.com/sebastianbergmann/phpunit/issues",
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.19" "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.20"
}, },
"funding": [ "funding": [
{ {
@@ -949,7 +949,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2022-03-15T09:57:31+00:00" "time": "2022-04-01T12:37:26+00:00"
}, },
{ {
"name": "sebastian/cli-parser", "name": "sebastian/cli-parser",
@@ -1317,16 +1317,16 @@
}, },
{ {
"name": "sebastian/environment", "name": "sebastian/environment",
"version": "5.1.3", "version": "5.1.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/environment.git", "url": "https://github.com/sebastianbergmann/environment.git",
"reference": "388b6ced16caa751030f6a69e588299fa09200ac" "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac", "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/1b5dff7bb151a4db11d49d90e5408e4e938270f7",
"reference": "388b6ced16caa751030f6a69e588299fa09200ac", "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1368,7 +1368,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/environment/issues", "issues": "https://github.com/sebastianbergmann/environment/issues",
"source": "https://github.com/sebastianbergmann/environment/tree/5.1.3" "source": "https://github.com/sebastianbergmann/environment/tree/5.1.4"
}, },
"funding": [ "funding": [
{ {
@@ -1376,7 +1376,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2020-09-28T05:52:38+00:00" "time": "2022-04-03T09:37:03+00:00"
}, },
{ {
"name": "sebastian/exporter", "name": "sebastian/exporter",

View File

@@ -19,15 +19,17 @@ if (!empty($DEBUG_ALL) && !empty($ENABLE_ERROR_HANDLING)) {
//------------------------------ library include start //------------------------------ library include start
// set output to quiet for load of classes & session settings // set output to quiet for load of classes & session settings
ob_start(); ob_start();
// set the session name
$SET_SESSION_NAME = EDIT_SESSION_NAME;
$LOG_FILE_ID = BASE_NAME . 'Admin';
//------------------------------ library include end //------------------------------ library include end
//------------------------------ basic variable settings start //------------------------------ basic variable settings start
// set the session name
$SET_SESSION_NAME = EDIT_SESSION_NAME;
$LOG_FILE_ID = BASE_NAME . 'Admin';
// ajax page flag
if (!isset($AJAX_PAGE)) { if (!isset($AJAX_PAGE)) {
$AJAX_PAGE = false; $AJAX_PAGE = false;
} }
// zip download flag
if (!isset($ZIP_STREAM)) { if (!isset($ZIP_STREAM)) {
$ZIP_STREAM = false; $ZIP_STREAM = false;
} }
@@ -48,7 +50,7 @@ if ($AJAX_PAGE && !$ZIP_STREAM) {
// start session // start session
$session = new \CoreLibs\Create\Session($SET_SESSION_NAME); $session = new \CoreLibs\Create\Session($SET_SESSION_NAME);
// create logger // create logger
$log = new CoreLibs\Debug\Logging([ $log = new \CoreLibs\Debug\Logging([
'log_folder' => BASE . LOG, 'log_folder' => BASE . LOG,
'file_id' => $LOG_FILE_ID, 'file_id' => $LOG_FILE_ID,
'print_file_date' => true, 'print_file_date' => true,
@@ -69,9 +71,9 @@ if (
} }
} }
// db config with logger // db config with logger
$db = new CoreLibs\DB\IO(DB_CONFIG, $log); $db = new \CoreLibs\DB\IO(DB_CONFIG, $log);
// login & page access check // login & page access check
$login = new CoreLibs\ACL\Login($db, $log, $session); $login = new \CoreLibs\ACL\Login($db, $log, $session);
// lang, path, domain // lang, path, domain
// pre auto detect language after login // pre auto detect language after login
$locale = \CoreLibs\Language\GetLocale::setLocale(); $locale = \CoreLibs\Language\GetLocale::setLocale();
@@ -82,9 +84,9 @@ $l10n = new \CoreLibs\Language\L10n(
$locale['path'], $locale['path'],
); );
// create smarty object // create smarty object
$smarty = new CoreLibs\Template\SmartyExtend($l10n, $locale); $smarty = new \CoreLibs\Template\SmartyExtend($l10n, $locale);
// create new Backend class with db and loger attached // create new Backend class with db and loger attached
$cms = new CoreLibs\Admin\Backend($db, $log, $session, $l10n, $locale); $cms = new \CoreLibs\Admin\Backend($db, $log, $session, $l10n, $locale);
// the menu show flag (what menu to show) // the menu show flag (what menu to show)
$cms->menu_show_flag = 'main'; $cms->menu_show_flag = 'main';
// db info // db info

View File

@@ -310,6 +310,7 @@ class Logging
* Needs debug/echo/print ad target for which of the debug flag groups we check * Needs debug/echo/print ad target for which of the debug flag groups we check
* also needs level string to check in the per level output flag check. * also needs level string to check in the per level output flag check.
* In case we have invalid target it will return false * In case we have invalid target it will return false
*
* @param string $target target group to check debug/echo/print * @param string $target target group to check debug/echo/print
* @param string $level level to check in detailed level flag * @param string $level level to check in detailed level flag
* @return bool true on access allowed or false on no access * @return bool true on access allowed or false on no access
@@ -332,6 +333,7 @@ class Logging
/** /**
* writes error msg data to file for current level * writes error msg data to file for current level
*
* @param string $level the level to write * @param string $level the level to write
* @param string $error_string error string to write * @param string $error_string error string to write
* @return bool True if message written, FAlse if not * @return bool True if message written, FAlse if not
@@ -412,6 +414,7 @@ class Logging
/** /**
* Temporary method to read all class variables for testing purpose * Temporary method to read all class variables for testing purpose
*
* @param string $name what variable to return * @param string $name what variable to return
* @return mixed can be anything, bool, string, int, array * @return mixed can be anything, bool, string, int, array
*/ */
@@ -425,6 +428,7 @@ class Logging
* sets the internal log file prefix id * sets the internal log file prefix id
* string must be a alphanumeric string * string must be a alphanumeric string
* if non valid string is given it returns the previous set one only * if non valid string is given it returns the previous set one only
*
* @param string $string log file id string value * @param string $string log file id string value
* @return string returns the set log file id string * @return string returns the set log file id string
* @deprecated Use $log->setLogId() * @deprecated Use $log->setLogId()
@@ -438,6 +442,7 @@ class Logging
* sets the internal log file prefix id * sets the internal log file prefix id
* string must be a alphanumeric string * string must be a alphanumeric string
* if non valid string is given it returns the previous set one only * if non valid string is given it returns the previous set one only
*
* @param string $string log file id string value * @param string $string log file id string value
* @return string returns the set log file id string * @return string returns the set log file id string
*/ */
@@ -460,6 +465,7 @@ class Logging
/** /**
* old name for setLogLevel * old name for setLogLevel
*
* @param string $type debug, echo, print * @param string $type debug, echo, print
* @param string $flag on/off * @param string $flag on/off
* array $array of levels to turn on/off debug * array $array of levels to turn on/off debug
@@ -475,6 +481,7 @@ class Logging
/** /**
* set log level settings for All types * set log level settings for All types
* if invalid type, skip * if invalid type, skip
*
* @param string $type Type to get: debug, echo, print * @param string $type Type to get: debug, echo, print
* @param bool $set True or False * @param bool $set True or False
* @return bool Return false if type invalid * @return bool Return false if type invalid
@@ -491,6 +498,7 @@ class Logging
/** /**
* get the current log level setting for All level blocks * get the current log level setting for All level blocks
*
* @param string $type Type to get: debug, echo, print * @param string $type Type to get: debug, echo, print
* @return bool False on failure, or the boolean flag from the all var * @return bool False on failure, or the boolean flag from the all var
*/ */
@@ -506,6 +514,7 @@ class Logging
/** /**
* passes list of level names, to turn on debug * passes list of level names, to turn on debug
* eg $foo->debugFor('print', 'on', ['LOG', 'DEBUG', 'INFO']); * eg $foo->debugFor('print', 'on', ['LOG', 'DEBUG', 'INFO']);
*
* @param string $type debug, echo, print * @param string $type debug, echo, print
* @param string $flag on/off * @param string $flag on/off
* @param array<mixed> $debug_on Array of levels to turn on/off debug * @param array<mixed> $debug_on Array of levels to turn on/off debug
@@ -541,6 +550,7 @@ class Logging
/** /**
* return the log level for the array type normal and not (disable) * return the log level for the array type normal and not (disable)
*
* @param string $type debug, echo, print * @param string $type debug, echo, print
* @param string $flag on/off * @param string $flag on/off
* @param string|null $level if not null then check if this array entry is set * @param string|null $level if not null then check if this array entry is set
@@ -572,6 +582,7 @@ class Logging
* - class: split by class * - class: split by class
* - page: split per page called * - page: split per page called
* - run: for each run * - run: for each run
*
* @param string $type Type to get: level, class, page, run * @param string $type Type to get: level, class, page, run
* @param bool $set True or False * @param bool $set True or False
* @return bool Return false if type invalid * @return bool Return false if type invalid
@@ -587,6 +598,7 @@ class Logging
/** /**
* return current set log per flag in bool * return current set log per flag in bool
*
* @param string $type Type to get: level, class, page, run * @param string $type Type to get: level, class, page, run
* @return bool True of false for turned on or off * @return bool True of false for turned on or off
*/ */
@@ -601,6 +613,7 @@ class Logging
/** /**
* Set or get the log file date extension flag * Set or get the log file date extension flag
* if null or empty parameter gets current flag * if null or empty parameter gets current flag
*
* @param boolean|null $set Set the date suffix for log files * @param boolean|null $set Set the date suffix for log files
* If set to null return current set * If set to null return current set
* @return boolean Current set flag * @return boolean Current set flag
@@ -615,6 +628,7 @@ class Logging
/** /**
* Return current set log file name * Return current set log file name
*
* @return string Filename set set after the last time debug was called * @return string Filename set set after the last time debug was called
*/ */
public function getLogFileName(): string public function getLogFileName(): string
@@ -628,6 +642,7 @@ class Logging
* It uses some special code sets so we can convert that to pre flags * It uses some special code sets so we can convert that to pre flags
* for echo output {##HTMLPRE##} ... {##/HTMLPRE##} * for echo output {##HTMLPRE##} ... {##/HTMLPRE##}
* Do not use this without using it in a string in debug function * Do not use this without using it in a string in debug function
*
* @param array<mixed> $a Array to format * @param array<mixed> $a Array to format
* @return string print_r formated * @return string print_r formated
*/ */
@@ -636,14 +651,32 @@ class Logging
return '##HTMLPRE##' . print_r($a, true) . '##/HTMLPRE##'; return '##HTMLPRE##' . print_r($a, true) . '##/HTMLPRE##';
} }
/**
* Convert bool value to string value
*
* @param bool $bool Bool value to be transformed
* @param string $true Override default string 'true'
* @param string $false Override default string 'false'
* @return string $true or $false string for true/false bool
*/
public function prBl(
bool $bool,
string $true = 'true',
string $false = 'false'
): string {
return $bool ? $true : $false;
}
/** /**
* write debug data to error_msg array * write debug data to error_msg array
*
* @param string $level id for error message, groups messages together * @param string $level id for error message, groups messages together
* @param string $string the actual error message * @param string $string the actual error message
* @param bool $strip default on false, if set to true, * @param bool $strip default on false, if set to true,
* all html tags will be stripped and <br> changed to \n * all html tags will be stripped and <br> changed to \n
* this is only used for debug output * this is only used for debug output
* @param string $prefix Attach some block before $string. Will not be stripped even * @param string $prefix Attach some block before $string.
* Will not be stripped even
* when strip is true * when strip is true
* if strip is false, recommended to add that to $string * if strip is false, recommended to add that to $string
* @return bool True if logged, false if not logged * @return bool True if logged, false if not logged
@@ -729,6 +762,7 @@ class Logging
/** /**
* for ECHO ON only * for ECHO ON only
* returns error data as string so it can be echoed out * returns error data as string so it can be echoed out
*
* @param string $header_prefix prefix string for header * @param string $header_prefix prefix string for header
* @return string error msg for all levels * @return string error msg for all levels
*/ */
@@ -780,6 +814,7 @@ class Logging
* unsests the error message array * unsests the error message array
* can be used if writing is primary to file * can be used if writing is primary to file
* if no level given resets all * if no level given resets all
*
* @param string $level optional level * @param string $level optional level
* @return void has no return * @return void has no return
*/ */
@@ -795,6 +830,7 @@ class Logging
/** /**
* for ECHO ON only * for ECHO ON only
* Get current error message array * Get current error message array
*
* @return array<mixed> error messages collected * @return array<mixed> error messages collected
*/ */
public function getErrorMsg(): array public function getErrorMsg(): array
@@ -806,6 +842,7 @@ class Logging
* for ECHO ON only * for ECHO ON only
* merges the given error array with the one from this class * merges the given error array with the one from this class
* only merges visible ones * only merges visible ones
*
* @param array<mixed> $error_msg error array * @param array<mixed> $error_msg error array
* @return void has no return * @return void has no return
*/ */

View File

@@ -179,7 +179,6 @@ return array(
'PHPUnit\\Framework\\MockObject\\MockObject' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockObject.php', 'PHPUnit\\Framework\\MockObject\\MockObject' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockObject.php',
'PHPUnit\\Framework\\MockObject\\MockTrait' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockTrait.php', 'PHPUnit\\Framework\\MockObject\\MockTrait' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockTrait.php',
'PHPUnit\\Framework\\MockObject\\MockType' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockType.php', 'PHPUnit\\Framework\\MockObject\\MockType' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockType.php',
'PHPUnit\\Framework\\MockObject\\MockedCloneMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Api/MockedCloneMethod.php',
'PHPUnit\\Framework\\MockObject\\OriginalConstructorInvocationRequiredException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/OriginalConstructorInvocationRequiredException.php', 'PHPUnit\\Framework\\MockObject\\OriginalConstructorInvocationRequiredException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/OriginalConstructorInvocationRequiredException.php',
'PHPUnit\\Framework\\MockObject\\ReflectionException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/ReflectionException.php', 'PHPUnit\\Framework\\MockObject\\ReflectionException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/ReflectionException.php',
'PHPUnit\\Framework\\MockObject\\ReturnValueNotConfiguredException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/ReturnValueNotConfiguredException.php', 'PHPUnit\\Framework\\MockObject\\ReturnValueNotConfiguredException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/ReturnValueNotConfiguredException.php',
@@ -210,7 +209,6 @@ return array(
'PHPUnit\\Framework\\MockObject\\UnknownClassException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownClassException.php', 'PHPUnit\\Framework\\MockObject\\UnknownClassException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownClassException.php',
'PHPUnit\\Framework\\MockObject\\UnknownTraitException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownTraitException.php', 'PHPUnit\\Framework\\MockObject\\UnknownTraitException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownTraitException.php',
'PHPUnit\\Framework\\MockObject\\UnknownTypeException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownTypeException.php', 'PHPUnit\\Framework\\MockObject\\UnknownTypeException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownTypeException.php',
'PHPUnit\\Framework\\MockObject\\UnmockedCloneMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Api/UnmockedCloneMethod.php',
'PHPUnit\\Framework\\MockObject\\Verifiable' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Verifiable.php', 'PHPUnit\\Framework\\MockObject\\Verifiable' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Verifiable.php',
'PHPUnit\\Framework\\NoChildTestSuiteException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/NoChildTestSuiteException.php', 'PHPUnit\\Framework\\NoChildTestSuiteException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/NoChildTestSuiteException.php',
'PHPUnit\\Framework\\OutputError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/OutputError.php', 'PHPUnit\\Framework\\OutputError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/OutputError.php',

View File

@@ -244,7 +244,6 @@ class ComposerStaticInit10fe8fe2ec4017b8644d2b64bcf398b9
'PHPUnit\\Framework\\MockObject\\MockObject' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockObject.php', 'PHPUnit\\Framework\\MockObject\\MockObject' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockObject.php',
'PHPUnit\\Framework\\MockObject\\MockTrait' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockTrait.php', 'PHPUnit\\Framework\\MockObject\\MockTrait' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockTrait.php',
'PHPUnit\\Framework\\MockObject\\MockType' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockType.php', 'PHPUnit\\Framework\\MockObject\\MockType' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockType.php',
'PHPUnit\\Framework\\MockObject\\MockedCloneMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Api/MockedCloneMethod.php',
'PHPUnit\\Framework\\MockObject\\OriginalConstructorInvocationRequiredException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/OriginalConstructorInvocationRequiredException.php', 'PHPUnit\\Framework\\MockObject\\OriginalConstructorInvocationRequiredException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/OriginalConstructorInvocationRequiredException.php',
'PHPUnit\\Framework\\MockObject\\ReflectionException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/ReflectionException.php', 'PHPUnit\\Framework\\MockObject\\ReflectionException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/ReflectionException.php',
'PHPUnit\\Framework\\MockObject\\ReturnValueNotConfiguredException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/ReturnValueNotConfiguredException.php', 'PHPUnit\\Framework\\MockObject\\ReturnValueNotConfiguredException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/ReturnValueNotConfiguredException.php',
@@ -275,7 +274,6 @@ class ComposerStaticInit10fe8fe2ec4017b8644d2b64bcf398b9
'PHPUnit\\Framework\\MockObject\\UnknownClassException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownClassException.php', 'PHPUnit\\Framework\\MockObject\\UnknownClassException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownClassException.php',
'PHPUnit\\Framework\\MockObject\\UnknownTraitException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownTraitException.php', 'PHPUnit\\Framework\\MockObject\\UnknownTraitException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownTraitException.php',
'PHPUnit\\Framework\\MockObject\\UnknownTypeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownTypeException.php', 'PHPUnit\\Framework\\MockObject\\UnknownTypeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownTypeException.php',
'PHPUnit\\Framework\\MockObject\\UnmockedCloneMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Api/UnmockedCloneMethod.php',
'PHPUnit\\Framework\\MockObject\\Verifiable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Verifiable.php', 'PHPUnit\\Framework\\MockObject\\Verifiable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Verifiable.php',
'PHPUnit\\Framework\\NoChildTestSuiteException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/NoChildTestSuiteException.php', 'PHPUnit\\Framework\\NoChildTestSuiteException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/NoChildTestSuiteException.php',
'PHPUnit\\Framework\\OutputError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/OutputError.php', 'PHPUnit\\Framework\\OutputError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/OutputError.php',

View File

@@ -429,17 +429,17 @@
}, },
{ {
"name": "phpdocumentor/type-resolver", "name": "phpdocumentor/type-resolver",
"version": "1.6.0", "version": "1.6.1",
"version_normalized": "1.6.0.0", "version_normalized": "1.6.1.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpDocumentor/TypeResolver.git", "url": "https://github.com/phpDocumentor/TypeResolver.git",
"reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706" "reference": "77a32518733312af16a44300404e945338981de3"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/93ebd0014cab80c4ea9f5e297ea48672f1b87706", "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/77a32518733312af16a44300404e945338981de3",
"reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706", "reference": "77a32518733312af16a44300404e945338981de3",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -450,7 +450,7 @@
"ext-tokenizer": "*", "ext-tokenizer": "*",
"psalm/phar": "^4.8" "psalm/phar": "^4.8"
}, },
"time": "2022-01-04T19:58:01+00:00", "time": "2022-03-15T21:29:03+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -476,7 +476,7 @@
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
"support": { "support": {
"issues": "https://github.com/phpDocumentor/TypeResolver/issues", "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
"source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.0" "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.1"
}, },
"install-path": "../phpdocumentor/type-resolver" "install-path": "../phpdocumentor/type-resolver"
}, },
@@ -885,17 +885,17 @@
}, },
{ {
"name": "phpunit/phpunit", "name": "phpunit/phpunit",
"version": "9.5.19", "version": "9.5.20",
"version_normalized": "9.5.19.0", "version_normalized": "9.5.20.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git", "url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "35ea4b7f3acabb26f4bb640f8c30866c401da807" "reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/35ea4b7f3acabb26f4bb640f8c30866c401da807", "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/12bc8879fb65aef2138b26fc633cb1e3620cffba",
"reference": "35ea4b7f3acabb26f4bb640f8c30866c401da807", "reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -936,7 +936,7 @@
"ext-soap": "*", "ext-soap": "*",
"ext-xdebug": "*" "ext-xdebug": "*"
}, },
"time": "2022-03-15T09:57:31+00:00", "time": "2022-04-01T12:37:26+00:00",
"bin": [ "bin": [
"phpunit" "phpunit"
], ],
@@ -975,7 +975,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues", "issues": "https://github.com/sebastianbergmann/phpunit/issues",
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.19" "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.20"
}, },
"funding": [ "funding": [
{ {
@@ -1373,17 +1373,17 @@
}, },
{ {
"name": "sebastian/environment", "name": "sebastian/environment",
"version": "5.1.3", "version": "5.1.4",
"version_normalized": "5.1.3.0", "version_normalized": "5.1.4.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/environment.git", "url": "https://github.com/sebastianbergmann/environment.git",
"reference": "388b6ced16caa751030f6a69e588299fa09200ac" "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac", "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/1b5dff7bb151a4db11d49d90e5408e4e938270f7",
"reference": "388b6ced16caa751030f6a69e588299fa09200ac", "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1395,7 +1395,7 @@
"suggest": { "suggest": {
"ext-posix": "*" "ext-posix": "*"
}, },
"time": "2020-09-28T05:52:38+00:00", "time": "2022-04-03T09:37:03+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -1427,7 +1427,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/environment/issues", "issues": "https://github.com/sebastianbergmann/environment/issues",
"source": "https://github.com/sebastianbergmann/environment/tree/5.1.3" "source": "https://github.com/sebastianbergmann/environment/tree/5.1.4"
}, },
"funding": [ "funding": [
{ {

View File

@@ -5,8 +5,8 @@
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../../', 'install_path' => __DIR__ . '/../../',
'aliases' => array(), 'aliases' => array(),
'reference' => 'b075ee3dc5654a33da9e41fab338edb536695a25', 'reference' => NULL,
'name' => 'gullevek/corelibs', 'name' => 'gullevek/corelibs-dev',
'dev' => true, 'dev' => true,
), ),
'versions' => array( 'versions' => array(
@@ -19,13 +19,13 @@
'reference' => '10dcfce151b967d20fde1b34ae6640712c3891bc', 'reference' => '10dcfce151b967d20fde1b34ae6640712c3891bc',
'dev_requirement' => true, 'dev_requirement' => true,
), ),
'gullevek/corelibs' => array( 'gullevek/corelibs-dev' => array(
'pretty_version' => 'dev-master', 'pretty_version' => 'dev-master',
'version' => 'dev-master', 'version' => 'dev-master',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../../', 'install_path' => __DIR__ . '/../../',
'aliases' => array(), 'aliases' => array(),
'reference' => 'b075ee3dc5654a33da9e41fab338edb536695a25', 'reference' => NULL,
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'myclabs/deep-copy' => array( 'myclabs/deep-copy' => array(
@@ -83,12 +83,12 @@
'dev_requirement' => true, 'dev_requirement' => true,
), ),
'phpdocumentor/type-resolver' => array( 'phpdocumentor/type-resolver' => array(
'pretty_version' => '1.6.0', 'pretty_version' => '1.6.1',
'version' => '1.6.0.0', 'version' => '1.6.1.0',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../phpdocumentor/type-resolver', 'install_path' => __DIR__ . '/../phpdocumentor/type-resolver',
'aliases' => array(), 'aliases' => array(),
'reference' => '93ebd0014cab80c4ea9f5e297ea48672f1b87706', 'reference' => '77a32518733312af16a44300404e945338981de3',
'dev_requirement' => true, 'dev_requirement' => true,
), ),
'phpspec/prophecy' => array( 'phpspec/prophecy' => array(
@@ -146,12 +146,12 @@
'dev_requirement' => true, 'dev_requirement' => true,
), ),
'phpunit/phpunit' => array( 'phpunit/phpunit' => array(
'pretty_version' => '9.5.19', 'pretty_version' => '9.5.20',
'version' => '9.5.19.0', 'version' => '9.5.20.0',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../phpunit/phpunit', 'install_path' => __DIR__ . '/../phpunit/phpunit',
'aliases' => array(), 'aliases' => array(),
'reference' => '35ea4b7f3acabb26f4bb640f8c30866c401da807', 'reference' => '12bc8879fb65aef2138b26fc633cb1e3620cffba',
'dev_requirement' => true, 'dev_requirement' => true,
), ),
'sebastian/cli-parser' => array( 'sebastian/cli-parser' => array(
@@ -209,12 +209,12 @@
'dev_requirement' => true, 'dev_requirement' => true,
), ),
'sebastian/environment' => array( 'sebastian/environment' => array(
'pretty_version' => '5.1.3', 'pretty_version' => '5.1.4',
'version' => '5.1.3.0', 'version' => '5.1.4.0',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../sebastian/environment', 'install_path' => __DIR__ . '/../sebastian/environment',
'aliases' => array(), 'aliases' => array(),
'reference' => '388b6ced16caa751030f6a69e588299fa09200ac', 'reference' => '1b5dff7bb151a4db11d49d90e5408e4e938270f7',
'dev_requirement' => true, 'dev_requirement' => true,
), ),
'sebastian/exporter' => array( 'sebastian/exporter' => array(

View File

@@ -550,7 +550,7 @@ final class TypeResolver
); );
} }
if (!$minValue || !$maxValue || $tokenCounter > 4) { if ($minValue === null || $maxValue === null || $tokenCounter > 4) {
throw new RuntimeException( throw new RuntimeException(
'int<min,max> has not the correct format' 'int<min,max> has not the correct format'
); );

View File

@@ -2,6 +2,18 @@
All notable changes of the PHPUnit 8.5 release series are documented in this file using the [Keep a CHANGELOG](https://keepachangelog.com/) principles. All notable changes of the PHPUnit 8.5 release series are documented in this file using the [Keep a CHANGELOG](https://keepachangelog.com/) principles.
## [8.5.26] - 2022-04-01
### Fixed
* [#4938](https://github.com/sebastianbergmann/phpunit/issues/4938): Test Double code generator does not handle `void` return type declaration on `__clone()` methods
## [8.5.25] - 2022-03-16
### Fixed
* [#4934](https://github.com/sebastianbergmann/phpunit/issues/4934): Code Coverage does not work with PHPUnit 8.5.24 PHAR on PHP 7
## [8.5.24] - 2022-03-05 - #StandWithUkraine ## [8.5.24] - 2022-03-05 - #StandWithUkraine
### Changed ### Changed
@@ -207,6 +219,8 @@ All notable changes of the PHPUnit 8.5 release series are documented in this fil
* [#3967](https://github.com/sebastianbergmann/phpunit/issues/3967): Cannot double interface that extends interface that extends `\Throwable` * [#3967](https://github.com/sebastianbergmann/phpunit/issues/3967): Cannot double interface that extends interface that extends `\Throwable`
* [#3968](https://github.com/sebastianbergmann/phpunit/pull/3968): Test class run in a separate PHP process are passing when `exit` called inside * [#3968](https://github.com/sebastianbergmann/phpunit/pull/3968): Test class run in a separate PHP process are passing when `exit` called inside
[8.5.26]: https://github.com/sebastianbergmann/phpunit/compare/8.5.25...8.5.26
[8.5.25]: https://github.com/sebastianbergmann/phpunit/compare/8.5.24...8.5.25
[8.5.24]: https://github.com/sebastianbergmann/phpunit/compare/8.5.23...8.5.24 [8.5.24]: https://github.com/sebastianbergmann/phpunit/compare/8.5.23...8.5.24
[8.5.23]: https://github.com/sebastianbergmann/phpunit/compare/8.5.22...8.5.23 [8.5.23]: https://github.com/sebastianbergmann/phpunit/compare/8.5.22...8.5.23
[8.5.22]: https://github.com/sebastianbergmann/phpunit/compare/8.5.21...8.5.22 [8.5.22]: https://github.com/sebastianbergmann/phpunit/compare/8.5.21...8.5.22

View File

@@ -2,6 +2,13 @@
All notable changes of the PHPUnit 9.5 release series are documented in this file using the [Keep a CHANGELOG](https://keepachangelog.com/) principles. All notable changes of the PHPUnit 9.5 release series are documented in this file using the [Keep a CHANGELOG](https://keepachangelog.com/) principles.
## [9.5.20] - 2022-04-01
### Fixed
* [#4938](https://github.com/sebastianbergmann/phpunit/issues/4938): Test Double code generator does not handle `void` return type declaration on `__clone()` methods
* [#4947](https://github.com/sebastianbergmann/phpunit/issues/4947): Test annotated with `@coversNothing` may lead to files missing from code coverage report
## [9.5.19] - 2022-03-15 ## [9.5.19] - 2022-03-15
### Fixed ### Fixed
@@ -150,6 +157,7 @@ All notable changes of the PHPUnit 9.5 release series are documented in this fil
* [#4535](https://github.com/sebastianbergmann/phpunit/issues/4535): `getMockFromWsdl()` does not handle methods that do not have parameters correctly * [#4535](https://github.com/sebastianbergmann/phpunit/issues/4535): `getMockFromWsdl()` does not handle methods that do not have parameters correctly
[9.5.20]: https://github.com/sebastianbergmann/phpunit/compare/9.5.19...9.5.20
[9.5.19]: https://github.com/sebastianbergmann/phpunit/compare/9.5.18...9.5.19 [9.5.19]: https://github.com/sebastianbergmann/phpunit/compare/9.5.18...9.5.19
[9.5.18]: https://github.com/sebastianbergmann/phpunit/compare/9.5.17...9.5.18 [9.5.18]: https://github.com/sebastianbergmann/phpunit/compare/9.5.17...9.5.18
[9.5.17]: https://github.com/sebastianbergmann/phpunit/compare/9.5.16...9.5.17 [9.5.17]: https://github.com/sebastianbergmann/phpunit/compare/9.5.16...9.5.17

View File

@@ -1,21 +0,0 @@
<?php declare(strict_types=1);
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\MockObject;
/**
* @internal This trait is not covered by the backward compatibility promise for PHPUnit
*/
trait MockedCloneMethod
{
public function __clone()
{
$this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationHandler();
}
}

View File

@@ -1,23 +0,0 @@
<?php declare(strict_types=1);
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\MockObject;
/**
* @internal This trait is not covered by the backward compatibility promise for PHPUnit
*/
trait UnmockedCloneMethod
{
public function __clone()
{
$this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationHandler();
parent::__clone();
}
}

View File

@@ -60,6 +60,58 @@ use Traversable;
*/ */
final class Generator final class Generator
{ {
private const MOCKED_CLONE_METHOD_WITH_VOID_RETURN_TYPE_TRAIT = <<<'EOT'
namespace PHPUnit\Framework\MockObject;
trait MockedCloneMethodWithVoidReturnType
{
public function __clone(): void
{
$this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationHandler();
}
}
EOT;
private const MOCKED_CLONE_METHOD_WITHOUT_RETURN_TYPE_TRAIT = <<<'EOT'
namespace PHPUnit\Framework\MockObject;
trait MockedCloneMethodWithoutReturnType
{
public function __clone()
{
$this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationHandler();
}
}
EOT;
private const UNMOCKED_CLONE_METHOD_WITH_VOID_RETURN_TYPE_TRAIT = <<<'EOT'
namespace PHPUnit\Framework\MockObject;
trait UnmockedCloneMethodWithVoidReturnType
{
public function __clone(): void
{
$this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationHandler();
parent::__clone();
}
}
EOT;
private const UNMOCKED_CLONE_METHOD_WITHOUT_RETURN_TYPE_TRAIT = <<<'EOT'
namespace PHPUnit\Framework\MockObject;
trait UnmockedCloneMethodWithoutReturnType
{
public function __clone()
{
$this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationHandler();
parent::__clone();
}
}
EOT;
/** /**
* @var array * @var array
*/ */
@@ -913,11 +965,11 @@ final class Generator
$cloneTrait = ''; $cloneTrait = '';
if ($mockedCloneMethod) { if ($mockedCloneMethod) {
$cloneTrait = PHP_EOL . ' use \PHPUnit\Framework\MockObject\MockedCloneMethod;'; $cloneTrait = $this->mockedCloneMethod();
} }
if ($unmockedCloneMethod) { if ($unmockedCloneMethod) {
$cloneTrait = PHP_EOL . ' use \PHPUnit\Framework\MockObject\UnmockedCloneMethod;'; $cloneTrait = $this->unmockedCloneMethod();
} }
$classTemplate->setVar( $classTemplate->setVar(
@@ -1062,4 +1114,38 @@ final class Generator
return $methodName === $className; return $methodName === $className;
} }
private function mockedCloneMethod(): string
{
if (PHP_MAJOR_VERSION >= 8) {
if (!trait_exists('\PHPUnit\Framework\MockObject\MockedCloneMethodWithVoidReturnType')) {
eval(self::MOCKED_CLONE_METHOD_WITH_VOID_RETURN_TYPE_TRAIT);
}
return PHP_EOL . ' use \PHPUnit\Framework\MockObject\MockedCloneMethodWithVoidReturnType;';
}
if (!trait_exists('\PHPUnit\Framework\MockObject\MockedCloneMethodWithoutReturnType')) {
eval(self::MOCKED_CLONE_METHOD_WITHOUT_RETURN_TYPE_TRAIT);
}
return PHP_EOL . ' use \PHPUnit\Framework\MockObject\MockedCloneMethodWithoutReturnType;';
}
private function unmockedCloneMethod(): string
{
if (PHP_MAJOR_VERSION >= 8) {
if (!trait_exists('\PHPUnit\Framework\MockObject\UnmockedCloneMethodWithVoidReturnType')) {
eval(self::UNMOCKED_CLONE_METHOD_WITH_VOID_RETURN_TYPE_TRAIT);
}
return PHP_EOL . ' use \PHPUnit\Framework\MockObject\UnmockedCloneMethodWithVoidReturnType;';
}
if (!trait_exists('\PHPUnit\Framework\MockObject\UnmockedCloneMethodWithoutReturnType')) {
eval(self::UNMOCKED_CLONE_METHOD_WITHOUT_RETURN_TYPE_TRAIT);
}
return PHP_EOL . ' use \PHPUnit\Framework\MockObject\UnmockedCloneMethodWithoutReturnType;';
}
} }

View File

@@ -41,7 +41,7 @@ final class Version
} }
if (self::$version === '') { if (self::$version === '') {
self::$version = (new VersionId('9.5.19', dirname(__DIR__, 2)))->getVersion(); self::$version = (new VersionId('9.5.20', dirname(__DIR__, 2)))->getVersion();
} }
return self::$version; return self::$version;

View File

@@ -150,7 +150,8 @@ final class Test
// If there is no @covers annotation but a @coversNothing annotation on // If there is no @covers annotation but a @coversNothing annotation on
// the test method then code coverage data does not need to be collected // the test method then code coverage data does not need to be collected
if (isset($annotations['method']['coversNothing'])) { if (isset($annotations['method']['coversNothing'])) {
return false; // @see https://github.com/sebastianbergmann/phpunit/issues/4947#issuecomment-1084480950
// return false;
} }
// If there is at least one @covers annotation then // If there is at least one @covers annotation then
@@ -162,7 +163,8 @@ final class Test
// If there is no @covers annotation but a @coversNothing annotation // If there is no @covers annotation but a @coversNothing annotation
// then code coverage data does not need to be collected // then code coverage data does not need to be collected
if (isset($annotations['class']['coversNothing'])) { if (isset($annotations['class']['coversNothing'])) {
return false; // @see https://github.com/sebastianbergmann/phpunit/issues/4947#issuecomment-1084480950
// return false;
} }
// If there is no @coversNothing annotation then // If there is no @coversNothing annotation then

View File

@@ -2,6 +2,12 @@
All notable changes in `sebastianbergmann/environment` are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. All notable changes in `sebastianbergmann/environment` are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
## [5.1.4] - 2022-04-03
### Fixed
* [#63](https://github.com/sebastianbergmann/environment/pull/63): `Runtime::getCurrentSettings()` does not correctly process INI settings
## [5.1.3] - 2020-09-28 ## [5.1.3] - 2020-09-28
### Changed ### Changed
@@ -145,6 +151,7 @@ All notable changes in `sebastianbergmann/environment` are documented in this fi
* This component is no longer supported on PHP 5.6 * This component is no longer supported on PHP 5.6
[5.1.4]: https://github.com/sebastianbergmann/environment/compare/5.1.3...5.1.4
[5.1.3]: https://github.com/sebastianbergmann/environment/compare/5.1.2...5.1.3 [5.1.3]: https://github.com/sebastianbergmann/environment/compare/5.1.2...5.1.3
[5.1.2]: https://github.com/sebastianbergmann/environment/compare/5.1.1...5.1.2 [5.1.2]: https://github.com/sebastianbergmann/environment/compare/5.1.1...5.1.2
[5.1.1]: https://github.com/sebastianbergmann/environment/compare/5.1.0...5.1.1 [5.1.1]: https://github.com/sebastianbergmann/environment/compare/5.1.0...5.1.1

View File

@@ -1,6 +1,6 @@
sebastian/environment sebastian/environment
Copyright (c) 2014-2020, Sebastian Bergmann <sebastian@phpunit.de>. Copyright (c) 2014-2022, Sebastian Bergmann <sebastian@phpunit.de>.
All rights reserved. All rights reserved.
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without

View File

@@ -1,7 +1,6 @@
# sebastian/environment # sebastian/environment
[![Latest Stable Version](https://img.shields.io/packagist/v/sebastian/environment.svg?style=flat-square)](https://packagist.org/packages/sebastian/environment) [![Latest Stable Version](https://img.shields.io/packagist/v/sebastian/environment.svg?style=flat-square)](https://packagist.org/packages/sebastian/environment)
[![Minimum PHP Version](https://img.shields.io/badge/php-%3E%3D%207.1-8892BF.svg?style=flat-square)](https://php.net/)
[![CI Status](https://github.com/sebastianbergmann/environment/workflows/CI/badge.svg)](https://github.com/sebastianbergmann/environment/actions) [![CI Status](https://github.com/sebastianbergmann/environment/workflows/CI/badge.svg)](https://github.com/sebastianbergmann/environment/actions)
[![Type Coverage](https://shepherd.dev/github/sebastianbergmann/environment/coverage.svg)](https://shepherd.dev/github/sebastianbergmann/environment) [![Type Coverage](https://shepherd.dev/github/sebastianbergmann/environment/coverage.svg)](https://shepherd.dev/github/sebastianbergmann/environment)

View File

@@ -34,7 +34,7 @@ final class Console
/** /**
* @var int * @var int
*/ */
public const STDIN = 0; public const STDIN = 0;
/** /**
* @var int * @var int
@@ -60,10 +60,10 @@ final class Console
if ($this->isWindows()) { if ($this->isWindows()) {
// @codeCoverageIgnoreStart // @codeCoverageIgnoreStart
return (defined('STDOUT') && function_exists('sapi_windows_vt100_support') && @sapi_windows_vt100_support(STDOUT)) return (defined('STDOUT') && function_exists('sapi_windows_vt100_support') && @sapi_windows_vt100_support(STDOUT)) ||
|| false !== getenv('ANSICON') false !== getenv('ANSICON') ||
|| 'ON' === getenv('ConEmuANSI') 'ON' === getenv('ConEmuANSI') ||
|| 'xterm' === getenv('TERM'); 'xterm' === getenv('TERM');
// @codeCoverageIgnoreEnd // @codeCoverageIgnoreEnd
} }

View File

@@ -289,8 +289,12 @@ final class Runtime
foreach ($values as $value) { foreach ($values as $value) {
$set = ini_get($value); $set = ini_get($value);
if (isset($config[$value]) && $set != $config[$value]) { if (empty($set)) {
$diff[] = sprintf('%s=%s', $value, $set); continue;
}
if ((!isset($config[$value]) || ($set !== $config[$value]))) {
$diff[$value] = sprintf('%s=%s', $value, $set);
} }
} }
} }