コード例 #1
0
 public static function compareColumns(Column $fromColumn, Column $toColumn)
 {
     $changedProperties = array();
     // compare column types
     $fromDomain = $fromColumn->getDomain();
     $toDomain = $toColumn->getDomain();
     if ($fromDomain->getType() != $toDomain->getType()) {
         if ($toColumn->getType() == PropelTypes::ENUM && $toColumn->getPhpType() == 'string') {
             // use MySQL native ENUM support
         } else {
             $changedProperties['type'] = array($fromDomain->getType(), $toDomain->getType());
         }
     }
     if ($fromDomain->getScale() != $toDomain->getScale()) {
         $changedProperties['scale'] = array($fromDomain->getScale(), $toDomain->getScale());
     }
     if ($fromDomain->getSize() != $toDomain->getSize()) {
         $changedProperties['size'] = array($fromDomain->getSize(), $toDomain->getSize());
     }
     if (strtoupper($fromDomain->getSqlType()) != strtoupper($toDomain->getSqlType())) {
         $changedProperties['sqlType'] = array($fromDomain->getSqlType(), $toDomain->getSqlType());
     }
     if ($fromColumn->isNotNull() != $toColumn->isNotNull()) {
         $changedProperties['notNull'] = array($fromColumn->isNotNull(), $toColumn->isNotNull());
     }
     // compare column default value
     $fromDefaultValue = $fromColumn->getDefaultValue();
     $toDefaultValue = $toColumn->getDefaultValue();
     if ($fromDefaultValue && !$toDefaultValue) {
         $changedProperties['defaultValueType'] = array($fromDefaultValue->getType(), null);
         $changedProperties['defaultValueValue'] = array($fromDefaultValue->getValue(), null);
     } elseif (!$fromDefaultValue && $toDefaultValue) {
         $changedProperties['defaultValueType'] = array(null, $toDefaultValue->getType());
         $changedProperties['defaultValueValue'] = array(null, $toDefaultValue->getValue());
     } elseif ($fromDefaultValue && $toDefaultValue) {
         if (!$fromDefaultValue->equals($toDefaultValue)) {
             if ($fromDefaultValue->getType() != $toDefaultValue->getType()) {
                 $changedProperties['defaultValueType'] = array($fromDefaultValue->getType(), $toDefaultValue->getType());
             }
             if ($fromDefaultValue->getValue() != $toDefaultValue->getValue()) {
                 $changedProperties['defaultValueValue'] = array($fromDefaultValue->getValue(), $toDefaultValue->getValue());
             }
         }
     }
     if ($fromColumn->isAutoIncrement() != $toColumn->isAutoIncrement()) {
         $changedProperties['autoIncrement'] = array($fromColumn->isAutoIncrement(), $toColumn->isAutoIncrement());
     }
     return $changedProperties;
 }
コード例 #2
0
ファイル: PHP5ObjectBuilder.php プロジェクト: halfer/Meshing
 /**
  * Adds the comment for a mutator
  * @param      string &$script The script will be modified in this method.
  * @param      Column $col The current column.
  * @see        addMutatorOpen()
  **/
 public function addMutatorComment(&$script, Column $col)
 {
     $clo = strtolower($col->getName());
     $script .= "\n\t/**\n\t * Set the value of [{$clo}] column.\n\t * " . $col->getDescription() . "\n\t * @param      " . $col->getPhpType() . " \$v new value\n\t * @return     " . $this->getObjectClassname() . " The current object (for fluent API support)\n\t */";
 }
コード例 #3
0
 /**
  * Adds a setter for Enum columns.
  * @param string &$script The script will be modified in this method.
  * @param Column $col The current column.
  * @see        parent::addColumnMutators()
  */
 protected function addEnumMutator(&$script, Column $col)
 {
     $clo = strtolower($col->getName());
     $script .= "\n    /**\n     * Set the value of [{$clo}] column.\n     * " . $col->getDescription() . "\n     * @param " . $col->getPhpType() . " \$v new value\n     * @return " . $this->getObjectClassname() . " The current object (for fluent API support)\n     * @throws PropelException - if the value is not accepted by this enum.\n     */";
     $this->addMutatorOpenOpen($script, $col);
     $this->addMutatorOpenBody($script, $col);
     $script .= "\n        if (\$v !== null) {\n            \$valueSet = " . $this->getPeerClassname() . "::getValueSet(" . $this->getColumnConstant($col) . ");\n            if (!in_array(\$v, \$valueSet)) {\n                throw new PropelException(sprintf('Value \"%s\" is not accepted in this enumerated column', \$v));\n            }\n            \$v = array_search(\$v, \$valueSet);\n        }\n\n        if (\$this->{$clo} !== \$v) {\n            \$this->{$clo} = \$v;\n            \$this->modifiedColumns[] = " . $this->getColumnConstant($col) . ";\n        }\n";
     $this->addMutatorClose($script, $col);
 }
コード例 #4
0
	/**
	 * Adds the comment for a mutator
	 * @param      string &$script The script will be modified in this method.
	 * @param      Column $col The current column.
	 * @see        addMutatorOpen()
	 **/
	protected function addMutatorComment(&$script, Column $col) {
		$clo = strtolower($col->getName());
		$script .= "
	/**
	 * Set the value of [$clo] column.
	 * ".$col->getDescription()."
	 * @param      ".$col->getPhpType()." \$v new value
	 * @return     ".$this->getObjectClassname()." The current object (for fluent API support)
	 */";
	}
コード例 #5
0
ファイル: DefaultPlatform.php プロジェクト: rozwell/Propel
 /**
  * Returns the SQL for the default value of a Column object
  *
  * @return string
  */
 public function getColumnDefaultValueDDL(Column $col)
 {
     $default = '';
     $defaultValue = $col->getDefaultValue();
     if ($defaultValue !== null) {
         $default .= 'DEFAULT ';
         if ($defaultValue->isExpression()) {
             $default .= $defaultValue->getValue();
         } else {
             if ($col->isTextType()) {
                 $default .= $this->quote($defaultValue->getValue());
             } elseif ($col->getType() == PropelTypes::BOOLEAN || $col->getType() == PropelTypes::BOOLEAN_EMU) {
                 $default .= $this->getBooleanString($defaultValue->getValue());
             } elseif ($col->getType() == PropelTypes::ENUM) {
                 $v = array_search($defaultValue->getValue(), $col->getValueSet());
                 if ($col->getPhpType() == 'string') {
                     $v = "'{$v}'";
                 }
                 $default .= $v;
             } elseif ($col->isPhpArrayType()) {
                 $value = $this->getPhpArrayString($defaultValue->getValue());
                 if (null === $value) {
                     $default = '';
                 } else {
                     $default .= $value;
                 }
             } else {
                 $default .= $defaultValue->getValue();
             }
         }
     }
     return $default;
 }