Example #1
0
 public static function create($name, array $props)
 {
     if (!isset($props["type"])) {
         $message = __METHOD__ . "() must set column 'type'.";
         throw new Sabel_Exception_Runtime($message);
     }
     $self = new self();
     $self->name = $name;
     $self->type = $props["type"];
     if ($self->isNumeric()) {
         switch ($self->type) {
             case Sabel_Db_Type::INT:
                 $self->max = isset($props["max"]) ? $props["max"] : PHP_INT_MAX;
                 $self->min = isset($props["min"]) ? $props["min"] : -PHP_INT_MAX - 1;
                 break;
             case Sabel_Db_Type::SMALLINT:
                 $self->max = isset($props["max"]) ? $props["max"] : 32767;
                 $self->min = isset($props["min"]) ? $props["min"] : -32768;
                 break;
             case Sabel_Db_Type::BIGINT:
                 $self->max = isset($props["max"]) ? $props["max"] : 9.223372036854776E+18;
                 $self->min = isset($props["min"]) ? $props["min"] : -9.223372036854776E+18;
                 break;
             case Sabel_Db_Type::FLOAT:
                 $self->max = isset($props["max"]) ? $props["max"] : 3.4028235E+38;
                 $self->min = isset($props["min"]) ? $props["min"] : -3.4028235E+38;
                 break;
             case Sabel_Db_Type::DOUBLE:
                 $self->max = isset($props["max"]) ? $props["max"] : 1.79769E+308;
                 $self->min = isset($props["min"]) ? $props["min"] : -1.79769E+308;
                 break;
         }
     } elseif ($self->isString()) {
         $self->max = isset($props["max"]) ? $props["max"] : 255;
         $self->min = isset($props["min"]) ? $props["min"] : 0;
     }
     $self->increment = isset($props["increment"]) && $props["increment"];
     $self->primary = isset($props["primary"]) && $props["primary"];
     $self->nullable = isset($props["nullable"]) && $props["nullable"];
     $self->default = isset($props["default"]) ? $props["default"] : null;
     return $self;
 }