]> Kevux Git Server - koopa/commitdiff
Update: provide custom error returning static function for NULL returns
authorKevin Day <thekevinday@gmail.com>
Sun, 18 Feb 2018 00:12:53 +0000 (18:12 -0600)
committerKevin Day <thekevinday@gmail.com>
Sun, 18 Feb 2018 00:12:53 +0000 (18:12 -0600)
NULL does not need any values assigned so provide a static alternative to the by value error return.

common/base/classes/base_path.php
common/base/classes/base_return.php

index 10545a001a03ac8b720e5f4fb3d844a3009295d2..a4d3ab8fbf1932f5c85d0f8da9e899644fdcd221 100644 (file)
@@ -1340,12 +1340,12 @@ class c_base_path extends c_base_rfc_string {
   protected function pr_sanitize($id, $type, $type_sub = NULL) {
     if (!is_string($id) && mb_strlen($id) > 0) {
       $error = c_base_error::s_log(NULL, ['arguments' => [':{argument_name}' => 'id', ':{function_name}' => __CLASS__ . '->' . __FUNCTION__]], i_base_error_messages::INVALID_ARGUMENT);
-      return c_base_return_error::s_value(NULL, 'c_base_return_null', $error);
+      return c_base_return_error::s_null($error);
     }
 
     if (!is_int($type)) {
       $error = c_base_error::s_log(NULL, ['arguments' => [':{argument_name}' => 'type', ':{function_name}' => __CLASS__ . '->' . __FUNCTION__]], i_base_error_messages::INVALID_ARGUMENT);
-      return c_base_return_error::s_value(NULL, 'c_base_return_null', $error);
+      return c_base_return_error::s_null($error);
     }
 
     if (!is_array($_POST) || !array_key_exists($id, $_POST)) {
index a71c330d78095c074e7c755bd38fcd5c473d58fb..56189205fd2def2ac81bec89625a8732b86074d7 100644 (file)
@@ -1663,6 +1663,37 @@ class c_base_return_error {
   }
 
   /**
+   * Creates a return NULL with the error value populated.
+   *
+   * @param c_base_error|array|null $error
+   *   (optional) a custom error setting.
+   *   Can be an array of c_base_error for returning multiple errors.
+   *   When NULL, no errors are defined.
+   *
+   * @return c_base_return_false
+   *   A c_base_return_null object with the error value populated.
+   */
+  public static function s_null($error = NULL) {
+    $object_return = new c_base_return_null();
+
+    if (is_null($error)) {
+      $object_return->set_error(null);
+    }
+    elseif (is_array($error)) {
+      foreach ($error as $delta => $value) {
+        $object_return->set_error($error, $delta);
+      }
+      unset($delta);
+      unset($value);
+    }
+    else {
+      $object_return->set_error($error);
+    }
+
+    return $object_return;
+  }
+
+  /**
    * Creates a return boolean TRUE with the error value populated.
    *
    * This will assign a value to the class.