client icon indicating copy to clipboard operation
client copied to clipboard

isArrayOf should be divided into different isArrayOf methods

Open peter279k opened this issue 7 years ago • 1 comments

Firstly, we can consider the following code snippet in IOTA\Util\ValidatorUtil class:

    public static function isArrayOf(array $items, string $type): bool
    {
        foreach ($items as $item) {
            if (false === ($item instanceof $type)) {
                return false;
            }
        }

        return true;
    }

According to the old iota.lib.js, the related isArrayOf method has four methods. The methods are as follows:

  • isArrayOfAttachedTrytes
  • isArrayOfHashes
  • isArrayOfTrytes
  • isArrayOfTxObjects

I think it should be divided into different methods because the isArrayOf is not good enough to handle different arrays. It's not proper to use the instanceof approach to validate other non-class types.

Another approach is: enhancing the isArrayOf and let this method can support validating the different methods.

peter279k avatar Aug 25 '18 17:08 peter279k

You can keep the one we have now and add the others if applicable.

Techworker avatar Aug 25 '18 19:08 Techworker