Skip to content

Commit 6ce1e15

Browse files
authored
Added polyfills for php7.4-8.1 (#2946)
1 parent c891fac commit 6ce1e15

File tree

3 files changed

+85
-112
lines changed

3 files changed

+85
-112
lines changed

app/code/core/Mage/Core/functions.php

Lines changed: 0 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -327,113 +327,3 @@ function is_dir_writeable($dir)
327327
}
328328
return false;
329329
}
330-
331-
if (!function_exists('sys_get_temp_dir')) {
332-
// Based on http://www.phpit.net/
333-
// article/creating-zip-tar-archives-dynamically-php/2/
334-
/**
335-
* @return bool|string
336-
*/
337-
function sys_get_temp_dir()
338-
{
339-
// Try to get from environment variable
340-
if (!empty($_ENV['TMP'])) {
341-
return realpath($_ENV['TMP']);
342-
} elseif (!empty($_ENV['TMPDIR'])) {
343-
return realpath($_ENV['TMPDIR']);
344-
} elseif (!empty($_ENV['TEMP'])) {
345-
return realpath($_ENV['TEMP']);
346-
} else {
347-
// Try to use system's temporary directory
348-
// as random name shouldn't exist
349-
$temp_file = tempnam(md5(uniqid(rand(), true)), '');
350-
if ($temp_file) {
351-
$temp_dir = realpath(dirname($temp_file));
352-
unlink($temp_file);
353-
return $temp_dir;
354-
} else {
355-
return false;
356-
}
357-
}
358-
}
359-
}
360-
361-
if (!function_exists('hash_equals')) {
362-
/**
363-
* Compares two strings using the same time whether they're equal or not.
364-
* A difference in length will leak
365-
*
366-
* @param string $known_string
367-
* @param string $user_string
368-
* @return bool Returns true when the two strings are equal, false otherwise.
369-
*/
370-
function hash_equals($known_string, $user_string)
371-
{
372-
$result = 0;
373-
374-
if (!is_string($known_string)) {
375-
trigger_error("hash_equals(): Expected known_string to be a string", E_USER_WARNING);
376-
return false;
377-
}
378-
379-
if (!is_string($user_string)) {
380-
trigger_error("hash_equals(): Expected user_string to be a string", E_USER_WARNING);
381-
return false;
382-
}
383-
384-
if (strlen($known_string) != strlen($user_string)) {
385-
return false;
386-
}
387-
388-
for ($i = 0; $i < strlen($known_string); $i++) {
389-
$result |= (ord($known_string[$i]) ^ ord($user_string[$i]));
390-
}
391-
392-
return $result === 0;
393-
}
394-
}
395-
396-
/**
397-
* polyfill for PHP 8.0 function "str_contains"
398-
*/
399-
if (!function_exists('str_contains')) {
400-
/**
401-
* @param string $haystack
402-
* @param string $needle
403-
* @return bool
404-
*/
405-
function str_contains($haystack, $needle)
406-
{
407-
return $needle === '' || strpos($haystack, $needle) !== false;
408-
}
409-
}
410-
411-
/**
412-
* polyfill for PHP 8.0 function "str_starts_with"
413-
*/
414-
if (!function_exists('str_starts_with')) {
415-
/**
416-
* @param string $haystack
417-
* @param string $needle
418-
* @return bool
419-
*/
420-
function str_starts_with($haystack, $needle)
421-
{
422-
return strncmp($haystack, $needle, \strlen($needle)) === 0;
423-
}
424-
}
425-
426-
/**
427-
* polyfill for PHP 8.0 function "str_ends_with"
428-
*/
429-
if (!function_exists('str_ends_with')) {
430-
/**
431-
* @param string $haystack
432-
* @param string $needle
433-
* @return bool
434-
*/
435-
function str_ends_with($haystack, $needle)
436-
{
437-
return $needle === '' || ($haystack !== '' && substr_compare($haystack, $needle, -\strlen($needle)) === 0);
438-
}
439-
}

composer.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,10 @@
2929
"pelago/emogrifier": "^7.0",
3030
"phpseclib/mcrypt_compat": "^2.0.3",
3131
"phpseclib/phpseclib": "^3.0.14",
32-
"shardj/zf1-future": "^1.21"
32+
"shardj/zf1-future": "^1.21",
33+
"symfony/polyfill-php74": "^1.27",
34+
"symfony/polyfill-php80": "^1.27",
35+
"symfony/polyfill-php81": "^1.27"
3336
},
3437
"require-dev": {
3538
"dealerdirect/phpcodesniffer-composer-installer": "^1.0.0",

composer.lock

Lines changed: 81 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)