/** * @static * @param AbstractProtoClass $proto * @param array $fields * @return Form */ public static function makeForm(AbstractProtoClass $proto, array $fields) { $form = Form::create(); foreach ($fields as $field) { try { $property = self::getProperty($proto, $field); } catch (MissingElementException $e) { continue; //skip } $prefix = strrev(strrchr(strrev($field), '.')); $property->fillForm($form, $prefix); $primitive = $form->get($field); if ($primitive instanceof PrimitiveString) { if ($property->getMax()) { $primitive->setImportFilter(Filter::chain()->add(Filter::trim()->setBoth())->add(Filter::safeUtf8())->add(Filter::htmlSpecialChars())); } else { $primitive->setImportFilter(Filter::chain()->add(Filter::trim()->setBoth())->add(Filter::safeUtf8())->add(Filter::htmlSpecialChars())->add(Filter::replaceSymbols("\r", ''))->add(Filter::replaceSymbols("\n", ' '))); } } } return $form; }
/** * @return FilterChain **/ public static function textImport() { return FilterChain::create()->add(Filter::stripTags())->add(Filter::trim()); }