/** * Returns a sfValidator class name for a given column. * * @param sfDoctrineColumn $column * @return string The name of a subclass of sfValidator */ public function getValidatorClassForColumn($column) { $class = parent::getValidatorClassForColumn($column); if ('sfValidatorDateRange' == $class) { $class = 'sfValidatorChoice'; } return $class; }
/** * Returns a sfValidator class name for a given column. * * @param sfDoctrineColumn $column * @return string The name of a subclass of sfValidator */ public function getValidatorClassForColumn($column) { $class = parent::getValidatorClassForColumn($column); if ('sfValidatorDateRange' == $class) { return 'sfValidatorChoice'; } switch ($column->getDoctrineType()) { case 'boolean': $validatorSubclass = 'Boolean'; break; case 'string': if ($column->getDefinitionKey('email')) { $validatorSubclass = 'Email'; } elseif ($column->getDefinitionKey('regexp')) { $validatorSubclass = 'Regex'; } elseif ($column->getTable()->isLinkColumn($column->getName())) { $validatorClass = 'dmValidatorLinkUrl'; } else { $validatorSubclass = 'String'; } break; case 'clob': case 'blob': $validatorSubclass = 'String'; break; case 'float': case 'decimal': $validatorSubclass = 'Number'; break; case 'integer': if (!$column->isPrimaryKey()) { $validatorSubclass = 'Integer'; } break; case 'date': $validatorClass = 'dmValidatorDate'; break; case 'time': $validatorSubclass = 'Time'; break; case 'timestamp': $validatorSubclass = 'DateTime'; break; case 'enum': $validatorSubclass = 'Choice'; break; default: $validatorSubclass = 'Pass'; } if ($column->isPrimaryKey() || $column->isForeignKey()) { $validatorSubclass = 'DoctrineChoice'; } $validatorClass = isset($validatorClass) ? $validatorClass : sprintf('sfValidator%s', $validatorSubclass); $validatorClass = $this->getGeneratorManager()->getConfiguration()->getEventDispatcher()->filter(new sfEvent($this, 'dm.form_generator.validator_class', array('column' => $column)), $validatorClass)->getReturnValue(); return $validatorClass; }