Пример #1
0
        // jesli rozszerzono prototyp - zabron
        if (count($item) !== $countPrototype) {
            throw new \InvalidArgumentException("Too many fields!");
        }
        // jesli nie podano nazwy - zabron
        if (array_key_exists("name", $item) && $item["name"] === "") {
            throw new \InvalidArgumentException("Empty name is forbidden!");
        }
        //W values przy sprawdzaniu czy wybrano jedna z opcji sprawdzamy przez == a nie === - mozemy ustawic wartosc jako int'a, a w formularzu przekazuje sie string.
        //By nie bylo problemu na pustym stringu (0 == "") zabraniam podawac wartosci "" jako wartosc przy select/radio/checkbox.
        //Byc moze w przyszlosci zostanie to poprawione i bedziemy rozrozniac "0" !== "" - wymaga to konwersji kluczy do int'a. Do rozwazenia i przemyslenia. Przy PHP 5.2 byly przy takim podejsciu jakies problemy, nie pamietam niestety jakie :(
        if (array_key_exists("values", $item) && is_array($item["values"]) && array_key_exists("", $item["values"])) {
            throw new \InvalidArgumentException("Empty value for select/radio/checkbox is forbidden!");
        }
        return $item;
    }
    public function __toString()
    {
        return parent::__toString();
    }
    public function isStringType()
    {
        return $this->inArray(array(self::text, self::password, self::textarea));
    }
    public function isTextType()
    {
        return $this->inArray(array(self::text, self::textarea));
    }
}
FormType::__constructStatic();