Browse Source

Remove deprecations

mscherer 4 years ago
parent
commit
d01eb335d1

+ 8 - 8
src/Model/Table/Table.php

@@ -2,10 +2,10 @@
 
 namespace Tools\Model\Table;
 
+use Cake\I18n\FrozenTime;
 use Cake\Routing\Router;
 use Cake\Validation\Validation;
 use Shim\Model\Table\Table as ShimTable;
-use Tools\Utility\Time;
 use Tools\Utility\Utility;
 
 /**
@@ -314,10 +314,10 @@ class Table extends ShimTable {
 		}
 		$format = !empty($options['dateFormat']) ? $options['dateFormat'] : 'ymd';
 
-		/** @var \Cake\I18n\Time $time */
+		/** @var \Cake\Chronos\ChronosInterface $time */
 		$time = $value;
 		if (!is_object($value)) {
-			$time = new Time($value);
+			$time = new FrozenTime($value);
 		}
 		$pieces = $time->format(FORMAT_DB_DATETIME);
 		$dateTime = explode(' ', $pieces, 2);
@@ -335,7 +335,7 @@ class Table extends ShimTable {
 				if (!is_object($options['after']) && isset($context['data'][$options['after']])) {
 					$options['after'] = $context['data'][$options['after']];
 					if (!is_object($options['after'])) {
-						$options['after'] = new Time($options['after']);
+						$options['after'] = new FrozenTime($options['after']);
 					}
 				} elseif (!is_object($options['after'])) {
 					return false;
@@ -345,7 +345,7 @@ class Table extends ShimTable {
 				if (!is_object($options['before']) && isset($context['data'][$options['before']])) {
 					$options['before'] = $context['data'][$options['before']];
 					if (!is_object($options['before'])) {
-						$options['before'] = new Time($options['before']);
+						$options['before'] = new FrozenTime($options['before']);
 					}
 				} elseif (!is_object($options['before'])) {
 					return false;
@@ -410,7 +410,7 @@ class Table extends ShimTable {
 
 		$dateTime = $value;
 		if (!is_object($value)) {
-			$dateTime = new Time($value);
+			$dateTime = new FrozenTime($value);
 		}
 		if (!empty($options['allowEmpty']) && empty($dateTime)) {
 			return true;
@@ -424,7 +424,7 @@ class Table extends ShimTable {
 				/** @var \Cake\I18n\Time $after */
 				$after = $context['data'][$options['after']];
 				if (!is_object($after)) {
-					$after = new Time($after);
+					$after = new FrozenTime($after);
 				}
 				if ($after->gt($compare)) {
 					return false;
@@ -435,7 +435,7 @@ class Table extends ShimTable {
 				/** @var \Cake\I18n\Time $before */
 				$before = $context['data'][$options['before']];
 				if (!is_object($before)) {
-					$before = new Time($before);
+					$before = new FrozenTime($before);
 				}
 				if ($before->lt($compare)) {
 					return false;

File diff suppressed because it is too large
+ 1383 - 0
src/Utility/FrozenTime.php


+ 23 - 19
src/Utility/Time.php

@@ -2,9 +2,11 @@
 
 namespace Tools\Utility;
 
+use Cake\Chronos\Date;
 use Cake\Chronos\MutableDate;
 use Cake\Core\Configure;
-use Cake\I18n\Date;
+use Cake\I18n\FrozenDate;
+use Cake\I18n\FrozenTime;
 use Cake\I18n\Time as CakeTime;
 use DateInterval;
 use DateTime;
@@ -13,6 +15,8 @@ use DateTimeInterface;
 /**
  * Extend CakeTime with a few important improvements:
  * - correct timezones for date only input and therefore unchanged day here
+ *
+ * @deprecated Use FrozenTime instead.
  */
 class Time extends CakeTime {
 
@@ -58,11 +62,11 @@ class Time extends CakeTime {
 	public function hasDaylightSavingTime($timezone = null) {
 		$timezone = $this->safeCreateDateTimeZone($timezone);
 		// a date outside of DST
-		$offset = $timezone->getOffset(new CakeTime('@' . mktime(0, 0, 0, 2, 1, (int)date('Y'))));
+		$offset = $timezone->getOffset(new FrozenTime('@' . mktime(0, 0, 0, 2, 1, (int)date('Y'))));
 		$offset = $offset / HOUR;
 
 		// a date inside of DST
-		$offset2 = $timezone->getOffset(new CakeTime('@' . mktime(0, 0, 0, 8, 1, (int)date('Y'))));
+		$offset2 = $timezone->getOffset(new FrozenTime('@' . mktime(0, 0, 0, 8, 1, (int)date('Y'))));
 		$offset2 = $offset2 / HOUR;
 
 		return abs($offset2 - $offset) > 0;
@@ -115,12 +119,12 @@ class Time extends CakeTime {
 
 		$startDate = $start;
 		if (!is_object($start)) {
-			$startDate = new CakeTime($start);
+			$startDate = new FrozenTime($start);
 		}
 
 		$endDate = $end;
 		if (!is_object($end)) {
-			$endDate = new CakeTime($end);
+			$endDate = new FrozenTime($end);
 		}
 
 		if ($startDate > $endDate) {
@@ -334,9 +338,9 @@ class Time extends CakeTime {
 	public function incrementDate($startDate, $years = 0, $months = 0, $days = 0, $timezone = null) {
 		$dateTime = $startDate;
 		if (!is_object($startDate)) {
-			$dateTime = new CakeTime($startDate);
+			$dateTime = new FrozenTime($startDate);
 			if ($timezone) {
-				$dateTime->setTimezone($this->safeCreateDateTimeZone($timezone));
+				$dateTime = $dateTime->setTimezone($this->safeCreateDateTimeZone($timezone));
 			}
 		}
 		$startingTimeStamp = $dateTime->getTimestamp();
@@ -371,7 +375,7 @@ class Time extends CakeTime {
 			$secondAge = $firstAge;
 		}
 		//TODO: other relative time then today should work as well
-		$date = new CakeTime($relativeTime ?? 'now');
+		$date = new FrozenTime($relativeTime ?? 'now');
 
 		$max = mktime(23, 23, 59, (int)$date->format('m'), (int)$date->format('d'), (int)$date->format('Y') - $firstAge);
 		$min = mktime(0, 0, 1, (int)$date->format('m'), (int)$date->format('d') + 1, (int)$date->format('Y') - $secondAge - 1);
@@ -423,7 +427,7 @@ class Time extends CakeTime {
 		if ($options['timezone']) {
 			$options['timezone'] = static::safeCreateDateTimeZone($options['timezone']);
 		}
-		$date = new CakeTime($dateString, $options['timezone']);
+		$date = new FrozenTime($dateString, $options['timezone']);
 		$date = $date->format('U');
 
 		if ($date <= 0) {
@@ -509,16 +513,16 @@ class Time extends CakeTime {
 
 		if (!is_object($dateString)) {
 			if (strlen($dateString) === 10) {
-				$date = new Date($dateString);
+				$date = new FrozenDate($dateString);
 			} else {
-				$date = new CakeTime($dateString);
+				$date = new FrozenTime($dateString);
 			}
 		} else {
 			$date = $dateString;
 		}
 
 		if ($format === null) {
-			if ($date instanceof MutableDate) {
+			if ($date instanceof MutableDate || $date instanceof Date) {
 				$format = FORMAT_NICE_YMD;
 			} else {
 				$format = FORMAT_NICE_YMDHM;
@@ -990,7 +994,7 @@ class Time extends CakeTime {
 	 * @return bool True if datetime is not today AND is in the future
 	 */
 	public static function isNotTodayAndInTheFuture($dateString, $timezone = null) {
-		$date = new CakeTime($dateString, $timezone);
+		$date = new FrozenTime($dateString, $timezone);
 		$date = $date->format('U');
 
 		return date(FORMAT_DB_DATE, (int)$date) > date(FORMAT_DB_DATE, time());
@@ -1005,7 +1009,7 @@ class Time extends CakeTime {
 	 */
 	public static function isInTheFuture($date, $timezone = null) {
 		if (!($date instanceof DateTimeInterface)) {
-			$date = new CakeTime($date, $timezone);
+			$date = new FrozenTime($date, $timezone);
 		}
 		$date = $date->format('U');
 
@@ -1124,9 +1128,9 @@ class Time extends CakeTime {
 	 * @return string Partial SQL string.
 	 */
 	public static function daysAsSql($begin, $end, $fieldName, $timezone = null) {
-		$begin = new CakeTime($begin, $timezone);
+		$begin = new FrozenTime($begin, $timezone);
 		$begin = $begin->format('U');
-		$end = new CakeTime($end, $timezone);
+		$end = new FrozenTime($end, $timezone);
 		$end = $end->format('U');
 		$begin = date('Y-m-d', (int)$begin) . ' 00:00:00';
 		$end = date('Y-m-d', (int)$end) . ' 23:59:59';
@@ -1279,9 +1283,9 @@ class Time extends CakeTime {
 	 */
 	public static function duration($duration, $format = '%h:%I:%S') {
 		if (!$duration instanceof \DateInterval) {
-			$d1 = new CakeTime();
-			$d2 = new CakeTime();
-			$d2->add(new DateInterval('PT' . $duration . 'S'));
+			$d1 = new FrozenTime();
+			$d2 = new FrozenTime();
+			$d2 = $d2->add(new DateInterval('PT' . $duration . 'S'));
 
 			$duration = $d2->diff($d1);
 		}

+ 1 - 1
src/View/Helper/TimeHelper.php

@@ -27,7 +27,7 @@ class TimeHelper extends CakeTimeHelper {
 	 * @var array<string, mixed>
 	 */
 	protected $_defaultConfig = [
-		'engine' => 'Tools\Utility\Time',
+		'engine' => 'Tools\Utility\Time', // Deprecated, use Tools\Utility\FrozenTime instead
 	];
 
 	/**

File diff suppressed because it is too large
+ 1100 - 0
tests/TestCase/Utility/FrozenTimeTest.php


+ 1 - 1
tests/TestCase/Utility/TimeTest.php

@@ -31,7 +31,7 @@ class TimeTest extends TestCase {
 	 */
 	public function testObject() {
 		$this->assertTrue(is_object($this->Time));
-		$this->assertInstanceOf('Tools\Utility\Time', $this->Time);
+		$this->assertInstanceOf(Time::class, $this->Time);
 	}
 
 	/**