From ef0bce6498f673308cfa223df57da76bdb1707de Mon Sep 17 00:00:00 2001 From: Diego Surita Date: Thu, 18 Jan 2024 11:57:59 -0300 Subject: [PATCH 1/2] Fix PHP 8.1 deprecation warnings on Helper and FormHelper - fix deprecation warning when Helper::_entityPath is null - fix `strftime` function deprecation warning on FormHelper::_getDateTimeValue method ref: ARCH-11 --- lib/Cake/View/Helper.php | 2 +- lib/Cake/View/Helper/FormHelper.php | 28 ++++++++++++++++++++++++++-- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/lib/Cake/View/Helper.php b/lib/Cake/View/Helper.php index 5ed869461a..7512e5c899 100644 --- a/lib/Cake/View/Helper.php +++ b/lib/Cake/View/Helper.php @@ -632,7 +632,7 @@ public function setEntity($entity, $setScope = false) { * @return array An array containing the identity elements of an entity */ public function entity() { - return explode('.', $this->_entityPath); + return explode('.', (string)$this->_entityPath); } /** diff --git a/lib/Cake/View/Helper/FormHelper.php b/lib/Cake/View/Helper/FormHelper.php index 376ce8d39d..9cbc156db8 100644 --- a/lib/Cake/View/Helper/FormHelper.php +++ b/lib/Cake/View/Helper/FormHelper.php @@ -2767,7 +2767,19 @@ protected function _getDateTimeValue($value, $timeFormat) { } if (is_numeric($value)) { - $value = strftime('%Y-%m-%d %H:%M:%S', $value); + try { + $value = datefmt_format( + datefmt_create( + locale: setLocale(LC_TIME, 0), + dateType: \IntlDateFormatter::FULL, + timeType: \IntlDateFormatter::FULL, + pattern: 'yyyy-MM-dd HH:mm:SS' + ), + $value + ); + } catch (\Error) { + $value = date('Y-m-d H:i:s', $value); + } } $meridian = 'am'; $pos = strpos($value, '-'); @@ -3021,7 +3033,19 @@ protected function _generateOptions($name, $options = array()) { $data = $options['monthNames']; } else { for ($m = 1; $m <= 12; $m++) { - $data[sprintf("%02s", $m)] = strftime("%m", mktime(1, 1, 1, $m, 1, 1999)); + try { + $data[sprintf("%02s", $m)] = datefmt_format( + datefmt_create( + locale: setLocale(LC_TIME, 0), + dateType: \IntlDateFormatter::FULL, + timeType: \IntlDateFormatter::FULL, + pattern: 'MM' + ), + mktime(1, 1, 1, $m, 1, 1999) + ); + } catch (\Error) { + $data[sprintf("%02s", $m)] = date('m', mktime(1, 1, 1, $m, 1, 1999)); + } } } break; From 6fc46bff97918eb3b2003a512e2890f0a4ef65b6 Mon Sep 17 00:00:00 2001 From: Diego Surita Date: Fri, 19 Jan 2024 15:18:32 -0300 Subject: [PATCH 2/2] Roll back the use of strftime ref: ARCH-11 --- lib/Cake/View/Helper/FormHelper.php | 28 ++-------------------------- 1 file changed, 2 insertions(+), 26 deletions(-) diff --git a/lib/Cake/View/Helper/FormHelper.php b/lib/Cake/View/Helper/FormHelper.php index 9cbc156db8..376ce8d39d 100644 --- a/lib/Cake/View/Helper/FormHelper.php +++ b/lib/Cake/View/Helper/FormHelper.php @@ -2767,19 +2767,7 @@ protected function _getDateTimeValue($value, $timeFormat) { } if (is_numeric($value)) { - try { - $value = datefmt_format( - datefmt_create( - locale: setLocale(LC_TIME, 0), - dateType: \IntlDateFormatter::FULL, - timeType: \IntlDateFormatter::FULL, - pattern: 'yyyy-MM-dd HH:mm:SS' - ), - $value - ); - } catch (\Error) { - $value = date('Y-m-d H:i:s', $value); - } + $value = strftime('%Y-%m-%d %H:%M:%S', $value); } $meridian = 'am'; $pos = strpos($value, '-'); @@ -3033,19 +3021,7 @@ protected function _generateOptions($name, $options = array()) { $data = $options['monthNames']; } else { for ($m = 1; $m <= 12; $m++) { - try { - $data[sprintf("%02s", $m)] = datefmt_format( - datefmt_create( - locale: setLocale(LC_TIME, 0), - dateType: \IntlDateFormatter::FULL, - timeType: \IntlDateFormatter::FULL, - pattern: 'MM' - ), - mktime(1, 1, 1, $m, 1, 1999) - ); - } catch (\Error) { - $data[sprintf("%02s", $m)] = date('m', mktime(1, 1, 1, $m, 1, 1999)); - } + $data[sprintf("%02s", $m)] = strftime("%m", mktime(1, 1, 1, $m, 1, 1999)); } } break;