From 8d5850fef5474045fab88084780c0f19aba4a5f9 Mon Sep 17 00:00:00 2001 From: Jaakko Lehtonen Date: Wed, 4 Dec 2024 13:34:13 +0200 Subject: [PATCH 1/2] Refactor set_step method to support float step sizes and enforce positive values --- src/Field/Number.php | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/Field/Number.php b/src/Field/Number.php index 6364240..0919f95 100644 --- a/src/Field/Number.php +++ b/src/Field/Number.php @@ -42,10 +42,20 @@ class Number extends \Geniem\ACF\Field { /** * Set step size * - * @param integer $step Step size. + * @param integer|float $step Step size. * @return self */ - public function set_step( int $step ) { + public function set_step( $step ) { + // Validate that the step is numeric + if ( ! is_numeric( $step ) ) { + throw new \Geniem\ACF\Exception( 'Geniem\ACF\Field\Number: set_step() only accepts numeric values' ); + } + + // Ensure the step is positive + if ( $step <= 0 ) { + throw new \Geniem\ACF\Exception( 'Geniem\ACF\Field\Number: set_step() only accepts positive values' ); + } + $this->step = $step; return $this; @@ -54,7 +64,7 @@ public function set_step( int $step ) { /** * Get step size * - * @return integer + * @return integer|float */ public function get_step() { return $this->step; From d09ff6e408526744109dbfbbd0cddc4c0a63b2f4 Mon Sep 17 00:00:00 2001 From: Jaakko Lehtonen Date: Wed, 4 Dec 2024 15:41:54 +0200 Subject: [PATCH 2/2] More strict value validation (avoid accepting numeric strings) --- src/Field/Number.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Field/Number.php b/src/Field/Number.php index 0919f95..a29241d 100644 --- a/src/Field/Number.php +++ b/src/Field/Number.php @@ -46,9 +46,9 @@ class Number extends \Geniem\ACF\Field { * @return self */ public function set_step( $step ) { - // Validate that the step is numeric - if ( ! is_numeric( $step ) ) { - throw new \Geniem\ACF\Exception( 'Geniem\ACF\Field\Number: set_step() only accepts numeric values' ); + // Validate that the step is an integer or a float + if ( ! is_int( $step ) && ! is_float( $step ) ) { + throw new \Geniem\ACF\Exception( 'Geniem\ACF\Field\Number: set_step() only accepts integers or floats' ); } // Ensure the step is positive