]> Kevux Git Server - koopa/commitdiff
Update: refactor the c_base_rfc_string and c_base_rfc_char into traits
authorKevin Day <thekevinday@gmail.com>
Thu, 22 Feb 2018 02:58:17 +0000 (20:58 -0600)
committerKevin Day <thekevinday@gmail.com>
Thu, 22 Feb 2018 02:58:17 +0000 (20:58 -0600)
These make more sense when implemented as traits.
Classes that extended this and had no expectation of a return value are now extended c_base_return.
All others are set to their most appropriate return type, such as c_base_return_string.

common/base/classes/base_array.php
common/base/classes/base_email.php
common/base/classes/base_http.php
common/base/classes/base_markup.php
common/base/classes/base_menu.php
common/base/classes/base_path.php
common/base/traits/base_rfc_char.php [moved from common/base/classes/base_rfc_char.php with 97% similarity]
common/base/traits/base_rfc_string.php [moved from common/base/classes/base_rfc_string.php with 98% similarity]
common/view/classes/view_log_users_self.php

index b3be57aef95bf9dbc5df902312303a7b95ec7a5b..d416dc422b5741e328c0116a49f87be957aea4b7 100644 (file)
@@ -12,7 +12,8 @@ namespace n_koopa;
 
 require_once('common/base/classes/base_error.php');
 require_once('common/base/classes/base_return.php');
-require_once('common/base/classes/base_rfc_string.php');
+
+require_once('common/base/traits/base_rfc_string.php');
 
 /**
  * A generic class for providing classes that support a single array value.
@@ -22,9 +23,11 @@ require_once('common/base/classes/base_rfc_string.php');
  *
  * This does not use the traits t_base_return_value_exact or t_base_return_value because this is non-confirming to those traits.
  *
- * @require class c_base_rfc_string
+ * @require class c_base_return_array
  */
-class c_base_array extends c_base_rfc_string {
+class c_base_array extends c_base_return {
+  use t_base_rfc_string;
+
   protected $items;
 
   /**
@@ -46,27 +49,6 @@ class c_base_array extends c_base_rfc_string {
   }
 
   /**
-   * @see: t_base_return_value::p_s_new()
-   */
-  public static function s_new($value) {
-    return self::p_s_new($value, __CLASS__);
-  }
-
-  /**
-   * @see: t_base_return_value::p_s_value()
-   */
-  public static function s_value($return) {
-    return self::p_s_value($return, __CLASS__);
-  }
-
-  /**
-   * @see: t_base_return_value_exact::p_s_value_exact()
-   */
-  public static function s_value_exact($return) {
-    return self::p_s_value_exact($return, __CLASS__, '');
-  }
-
-  /**
    * Assign the array.
    *
    * @param array $array
index a7069673100fa2271c2e0f63722fb77148ec4531..bcd32b5afe9b6b02f28e1d80d16892df349a9dc6 100644 (file)
@@ -8,7 +8,8 @@ namespace n_koopa;
 require_once('common/base/classes/base_error.php');
 require_once('common/base/classes/base_return.php');
 require_once('common/base/classes/base_ascii.php');
-require_once('common/base/classes/base_rfc_string.php');
+
+require_once('common/base/traits/base_rfc_string.php');
 
 /**
  * A generic class for managing the e-mail related functionality.
@@ -23,12 +24,11 @@ require_once('common/base/classes/base_rfc_string.php');
  * @see: https://tools.ietf.org/html/rfc6854
  * @see: https://tools.ietf.org/html/rfc7231#section-5.5.1
  *
- * @require class c_base_rfc_string
  * @require class c_base_ascii
  * @require class c_base_utf8
  */
-class c_base_email extends c_base_rfc_string {
-  use t_base_return_value_exact;
+class c_base_email extends c_base_return_string {
+  use t_base_rfc_string;
 
   const LINE_LENGTH_LIMIT_SOFT = 78;
   const LINE_LENGTH_LIMIT_HARD = 998;
@@ -56,54 +56,6 @@ class c_base_email extends c_base_rfc_string {
   }
 
   /**
-   * Assign the value.
-   *
-   * @param DOMNode $value
-   *   Any value so long as it is a DOMNode.
-   *   NULL is not allowed.
-   *
-   * @return bool
-   *   TRUE on success.
-   *   FALSE with error bit set is returned on error.
-   */
-  public function set_value($value) {
-    if (!is_string($value)) {
-      return FALSE;
-    }
-
-    $this->value = $value;
-    return TRUE;
-  }
-
-  /**
-   * Return the value.
-   *
-   * @return string|null $value
-   *   The value array stored within this class.
-   */
-  public function get_value() {
-    if (!is_string($this->value)) {
-      return NULL;
-    }
-
-    return $this->value;
-  }
-
-  /**
-   * Return the value of the expected type.
-   *
-   * @return DOMNode $value
-   *   The value DOMNode stored within this class.
-   */
-  public function get_value_exact() {
-    if (!is_string($this->value)) {
-      return '';
-    }
-
-    return $this->value;
-  }
-
-  /**
    * Decode and check that the given e-mail address is valid.
    *
    * Validation is done according to rfc5322, rfc6854, and rfc7231.
index 827ba3573d3932ac7c41b0aba0c0b4eeb6d91cb6..718c2973eee7a1679b7c4ed991d2ba0c9b83562a 100644 (file)
@@ -8,13 +8,14 @@ namespace n_koopa;
 require_once('common/base/classes/base_error.php');
 require_once('common/base/classes/base_return.php');
 require_once('common/base/classes/base_charset.php');
-require_once('common/base/classes/base_rfc_string.php');
 require_once('common/base/classes/base_utf8.php');
 require_once('common/base/classes/base_languages.php');
 require_once('common/base/classes/base_http_status.php');
 require_once('common/base/classes/base_cookie.php');
 require_once('common/base/classes/base_mime.php');
 
+require_once('common/base/traits/base_rfc_string.php');
+
 /**
  * A generic class for managing the HTTP protocol.
  *
@@ -25,7 +26,9 @@ require_once('common/base/classes/base_mime.php');
  * @require class base_rfc_string
  * @require class base_utf8
  */
-class c_base_http extends c_base_rfc_string {
+class c_base_http extends c_base_return {
+  use t_base_rfc_string;
+
   // standard request headers
   const REQUEST_NONE                           = 0;
   const REQUEST_ACCEPT                         = 1;
@@ -297,27 +300,6 @@ class c_base_http extends c_base_rfc_string {
   }
 
   /**
-   * @see: t_base_return_value::p_s_new()
-   */
-  public static function s_new($value) {
-    return self::p_s_new($value, __CLASS__);
-  }
-
-  /**
-   * @see: t_base_return_value::p_s_value()
-   */
-  public static function s_value($return) {
-    return self::p_s_value($return, __CLASS__);
-  }
-
-  /**
-   * @see: t_base_return_value_exact::p_s_value_exact()
-   */
-  public static function s_value_exact($return) {
-    return self::p_s_value_exact($return, __CLASS__, '');
-  }
-
-  /**
    * Returns a list of HTTP headers that can be used as an HTML meta tag.
    *
    * The HTML language supports HTTP headers as HTML tags.
index 540195491527f66dd615874ee9dbfa0d46c6cca4..297242fce15c10ee753d7043cd88ec1c686e9885 100644 (file)
@@ -9,7 +9,8 @@ require_once('common/base/classes/base_error.php');
 require_once('common/base/classes/base_return.php');
 require_once('common/base/classes/base_mime.php');
 require_once('common/base/classes/base_charset.php');
-require_once('common/base/classes/base_rfc_string.php');
+
+require_once('common/base/traits/base_rfc_string.php');
 
 /**
  * A generic class for html attribute types.
@@ -374,7 +375,9 @@ class c_base_markup_filters {
  *
  * @todo: add support for non-standard tag attributes, which will just be a string or NULL.
  */
-class c_base_markup_tag extends c_base_rfc_string {
+class c_base_markup_tag extends c_base_return {
+  use t_base_rfc_string;
+
   const TYPE_NONE                       = 0;
   const TYPE_A                          = 1;
   const TYPE_ABBR                       = 2;
@@ -574,27 +577,6 @@ class c_base_markup_tag extends c_base_rfc_string {
   }
 
   /**
-   * @see: t_base_return_value::p_s_new()
-   */
-  public static function s_new($value) {
-    return self::p_s_new($value, __CLASS__);
-  }
-
-  /**
-   * @see: t_base_return_value::p_s_value()
-   */
-  public static function s_value($return) {
-    return self::p_s_value($return, __CLASS__);
-  }
-
-  /**
-   * @see: t_base_return_value_exact::p_s_value_exact()
-   */
-  public static function s_value_exact($return) {
-    return self::p_s_value_exact($return, __CLASS__, '');
-  }
-
-  /**
    * Assign the specified tag.
    *
    * @param int $attribute
index 51006cf83f3478e7a768457699a4e1b59cfa8251..3636efcbbf4099c85eea9c16bac874a757ad5c85 100644 (file)
@@ -7,39 +7,20 @@ namespace n_koopa;
 
 require_once('common/base/classes/base_error.php');
 require_once('common/base/classes/base_return.php');
-require_once('common/base/classes/base_rfc_string.php');
 require_once('common/base/classes/base_http.php');
 require_once('common/base/classes/base_database.php');
 require_once('common/base/classes/base_session.php');
 require_once('common/base/classes/base_array.php');
 
+require_once('common/base/traits/base_rfc_string.php');
+
 /**
  * A generic class for managing a menu.
  *
  * This can be converted to HTML <nav>, <menu>, or even breadcrumbs.
  */
-class c_base_menu extends c_base_rfc_string {
-
-  /**
-   * @see: t_base_return_value::p_s_new()
-   */
-  public static function s_new($value) {
-    return self::p_s_new($value, __CLASS__);
-  }
-
-  /**
-   * @see: t_base_return_value::p_s_value()
-   */
-  public static function s_value($return) {
-    return self::p_s_value($return, __CLASS__);
-  }
-
-  /**
-   * @see: t_base_return_value_exact::p_s_value_exact()
-   */
-  public static function s_value_exact($return) {
-    return self::p_s_value_exact($return, __CLASS__, '');
-  }
+class c_base_menu extends c_base_return {
+  use t_base_rfc_string;
 
   /**
    * Build the menu structure.
index c0266d8acceab197a369aef76a51e0d37745dd07..f66031735faa230e3907059e4f115be65a5cbe49 100644 (file)
@@ -24,6 +24,8 @@ require_once('common/base/classes/base_http.php');
 require_once('common/base/classes/base_cookie.php');
 require_once('common/base/classes/base_array.php');
 
+require_once('common/base/traits/base_rfc_string.php');
+
 /**
  * A generic class for managing paths information.
  *
@@ -62,8 +64,8 @@ require_once('common/base/classes/base_array.php');
  *
  * // c_base_utf8::s_substring($path_string, 0, 1);
  */
-class c_base_path extends c_base_rfc_string {
-  use t_base_return_value_exact;
+class c_base_path extends c_base_return_string {
+  use t_base_rfc_string;
 
   private const p_DEFAULT_ALLOWED_METHODS = [
     c_base_http::HTTP_METHOD_GET => c_base_http::HTTP_METHOD_GET,
similarity index 97%
rename from common/base/classes/base_rfc_char.php
rename to common/base/traits/base_rfc_char.php
index bc11f74deb308681a72dae3d0d2b01dfd8d5d45d..90d52b175c577aa902c2018af246992f3cc1f936 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /**
  * @file
- * Provides a class for managing common rfc character testing cases.
+ * Provides a trait for managing common rfc character testing cases.
  */
 namespace n_koopa;
 
@@ -11,7 +11,7 @@ require_once('common/base/classes/base_utf8.php');
 
 
 /**
- * A class for managing common rfc character testing cases.
+ * A trait for managing common rfc character testing cases.
  *
  * This currently utilizes some of the rules defined in the following rfcs:
  * - rfc 4234
@@ -42,28 +42,7 @@ require_once('common/base/classes/base_utf8.php');
  * @require class c_base_ascii
  * @require class c_base_utf8
  */
-abstract class c_base_rfc_char extends c_base_return {
-
-  /**
-   * @see: t_base_return_value::p_s_new()
-   */
-  public static function s_new($value) {
-    return self::p_s_new($value, __CLASS__);
-  }
-
-  /**
-   * @see: t_base_return_value::p_s_value()
-   */
-  public static function s_value($return) {
-    return self::p_s_value($return, __CLASS__);
-  }
-
-  /**
-   * @see: t_base_return_value_exact::p_s_value_exact()
-   */
-  public static function s_value_exact($return) {
-    return self::p_s_value_exact($return, __CLASS__, NULL);
-  }
+trait t_base_rfc_char {
 
   /**
    * Check to see if character is: text.
similarity index 98%
rename from common/base/classes/base_rfc_string.php
rename to common/base/traits/base_rfc_string.php
index b3bbe8fb7e2571b56f46f9dcc1c81d5403d12be7..02a0d32171d31322504df7fb83b642d8cbdda9da 100644 (file)
@@ -1,17 +1,18 @@
 <?php
 /**
  * @file
- * Provides a class for managing common rfc string testing cases.
+ * Provides a trait for managing common rfc string testing cases.
  */
 namespace n_koopa;
 
 require_once('common/base/classes/base_return.php');
 require_once('common/base/classes/base_ascii.php');
 require_once('common/base/classes/base_utf8.php');
-require_once('common/base/classes/base_rfc_char.php');
+
+require_once('common/base/traits/base_rfc_char.php');
 
 /**
- * A class for managing common rfc string testing cases.
+ * A trait for managing common rfc string testing cases.
  *
  * This checks a a string of characters.
  * The c_base_rf_string_is_* functions that require specific characters to start, such as DQUOTE, assume that the start position is after the initial special character, such as DQUOTE.
@@ -40,31 +41,9 @@ require_once('common/base/classes/base_rfc_char.php');
  *
  * @require class c_base_ascii
  * @require class c_base_utf8
- * @require class c_base_rfc_char
  */
-abstract class c_base_rfc_string extends c_base_rfc_char {
-  const STOP_AT_CLOSING_CHARACTER = -1;
-
-  /**
-   * @see: t_base_return_value::p_s_new()
-   */
-  public static function s_new($value) {
-    return self::p_s_new($value, __CLASS__);
-  }
-
-  /**
-   * @see: t_base_return_value::p_s_value()
-   */
-  public static function s_value($return) {
-    return self::p_s_value($return, __CLASS__);
-  }
-
-  /**
-   * @see: t_base_return_value_exact::p_s_value_exact()
-   */
-  public static function s_value_exact($return) {
-    return self::p_s_value_exact($return, __CLASS__, NULL);
-  }
+trait t_base_rfc_string {
+  use t_base_rfc_char;
 
   /**
    * Converts a string into a ordinals array and a characters array.
@@ -169,7 +148,7 @@ abstract class c_base_rfc_string extends c_base_rfc_char {
    * @param int|null $stop
    *   (optional) The position in the arrays to stop checking.
    *   If NULL, then the entire string is processed.
-   *   If self::STOP_AT_CLOSING_CHARACTER, then stop at the end of a double quote and do no further processing.
+   *   If -1, then stop at the end of a double quote and do no further processing.
    *
    * @return array
    *   The processed information, with comments separated:
@@ -197,7 +176,7 @@ abstract class c_base_rfc_string extends c_base_rfc_char {
 
     $stop_at_closing_quote = FALSE;
     if ($stop < 0) {
-      if ($stop == static::STOP_AT_CLOSING_CHARACTER) {
+      if ($stop == -1) {
         $stop_at_closing_quote = TRUE;
       }
 
@@ -736,7 +715,7 @@ abstract class c_base_rfc_string extends c_base_rfc_char {
           break;
         }
 
-        $parsed = $this->pr_rfc_string_is_quoted_string($ordinals, $characters, $result['current'], static::STOP_AT_CLOSING_CHARACTER);
+        $parsed = $this->pr_rfc_string_is_quoted_string($ordinals, $characters, $result['current'], -1);
         $result['current'] = $parsed['current'];
 
         if ($parsed['invalid']) {
@@ -909,7 +888,7 @@ abstract class c_base_rfc_string extends c_base_rfc_char {
           return $result;
         }
 
-        $parsed = $this->pr_rfc_string_is_quoted_string($ordinals, $characters, $result['current'], static::STOP_AT_CLOSING_CHARACTER);
+        $parsed = $this->pr_rfc_string_is_quoted_string($ordinals, $characters, $result['current'], -1);
         $result['current'] = $parsed['current'];
 
         if ($parsed['invalid']) {
@@ -1788,7 +1767,7 @@ abstract class c_base_rfc_string extends c_base_rfc_char {
                 break;
               }
 
-              $parsed = $this->pr_rfc_string_is_quoted_string($ordinals, $characters, $result['current'], static::STOP_AT_CLOSING_CHARACTER);
+              $parsed = $this->pr_rfc_string_is_quoted_string($ordinals, $characters, $result['current'], -1);
               $result['current'] = $parsed['current'];
 
               if ($parsed['invalid']) {
@@ -2071,7 +2050,7 @@ abstract class c_base_rfc_string extends c_base_rfc_char {
           break;
         }
 
-        $parsed = $this->pr_rfc_string_is_quoted_string($ordinals, $characters, $result['current'], static::STOP_AT_CLOSING_CHARACTER);
+        $parsed = $this->pr_rfc_string_is_quoted_string($ordinals, $characters, $result['current'], -1);
         $result['current'] = $parsed['current'];
 
         if ($parsed['invalid']) {
@@ -2271,7 +2250,7 @@ abstract class c_base_rfc_string extends c_base_rfc_char {
           break;
         }
 
-        $parsed = $this->pr_rfc_string_is_quoted_string($ordinals, $characters, $result['current'], static::STOP_AT_CLOSING_CHARACTER);
+        $parsed = $this->pr_rfc_string_is_quoted_string($ordinals, $characters, $result['current'], -1);
         $result['current'] = $parsed['current'];
 
         if ($parsed['invalid']) {
index f120a79b47d9f9a0116eb3acbfab3c22cb597f38..e9428d9b176713b602f6f83f90f208bd523d2457 100644 (file)
@@ -13,8 +13,6 @@ require_once('common/base/classes/base_view.php');
 
 /**
  * A specific class for processing view results: v_log_users_self.
- *
- * @require class c_base_rfc_string
  */
 class c_view_log_users_self extends c_base_view {