protected function addTranslatedColumnSetter(Column $column)
 {
     $visibility = $column->getTable()->isReadOnly() ? 'protected' : $column->getMutatorVisibility();
     $typeHint = '';
     $null = '';
     if ($column->getTypeHint()) {
         $typeHint = $column->getTypeHint();
         if ('array' !== $typeHint) {
             $typeHint = $this->declareClass($typeHint);
         }
         $typeHint .= ' ';
         if (!$column->isNotNull()) {
             $null = ' = null';
         }
     }
     $typeHint = "{$typeHint}\$v{$null}";
     $i18nTablePhpName = $this->builder->getClassNameFromBuilder($this->builder->getNewStubObjectBuilder($this->behavior->getI18nTable()));
     $tablePhpName = $this->builder->getObjectClassName();
     $objectBuilder = $this->builder->getNewObjectBuilder($this->behavior->getI18nTable());
     $comment = '';
     if ($this->isDateType($column->getType())) {
         $objectBuilder->addTemporalMutatorComment($comment, $column);
     } else {
         $objectBuilder->addMutatorComment($comment, $column);
     }
     $comment = preg_replace('/^\\t/m', '', $comment);
     $comment = str_replace('@return     $this|' . $i18nTablePhpName, '@return     $this|' . $tablePhpName, $comment);
     return $this->renderTemplate('objectTranslatedColumnSetter', ['comment' => $comment, 'column' => $column, 'visibility' => $visibility, 'typeHint' => $typeHint, 'columnPhpName' => $column->getPhpName(), 'localeColumnName' => $this->behavior->getLocaleColumn()->getPhpName()]);
 }
Ejemplo n.º 2
0
 /**
  * Adds the mutator function declaration.
  *
  * @param string &$script
  * @param Column $column
  */
 public function addMutatorOpenOpen(&$script, Column $column)
 {
     $cfc = $column->getPhpName();
     $visibility = $this->getTable()->isReadOnly() ? 'protected' : $column->getMutatorVisibility();
     $typeHint = '';
     $null = '';
     if ($column->getTypeHint()) {
         $typeHint = $column->getTypeHint();
         if ('array' !== $typeHint) {
             $typeHint = $this->declareClass($typeHint);
         }
         $typeHint .= ' ';
         if (!$column->isNotNull()) {
             $null = ' = null';
         }
     }
     $script .= "\n    " . $visibility . " function set{$cfc}({$typeHint}\$v{$null})\n    {";
 }
Ejemplo n.º 3
0
 /**
  * Adds the mutator function declaration.
  *
  * @param string &$script
  * @param Column $column
  */
 public function addMutatorOpenOpen(&$script, Column $column)
 {
     $cfc = $column->getPhpName();
     $visibility = $this->getTable()->isReadOnly() ? 'protected' : $column->getMutatorVisibility();
     $script .= "\n    " . $visibility . " function set{$cfc}(\$v)\n    {";
 }
Ejemplo n.º 4
0
 /**
  * Adds a setter method for date/time/timestamp columns.
  * @param      string &$script The script will be modified in this method.
  * @param      Column $col The current column.
  * @see        parent::addColumnMutators()
  */
 protected function addTemporalMutator(&$script, Column $col)
 {
     $cfc = $col->getPhpName();
     $clo = strtolower($col->getName());
     $visibility = $col->getMutatorVisibility();
     $dateTimeClass = $this->getBuildProperty('dateTimeClass');
     if (!$dateTimeClass) {
         $dateTimeClass = '\\DateTime';
     }
     $this->declareClasses($dateTimeClass, '\\DateTimeZone', '\\Propel\\Runtime\\Util\\PropelDateTime');
     $this->addTemporalMutatorComment($script, $col);
     $this->addMutatorOpenOpen($script, $col);
     $this->addMutatorOpenBody($script, $col);
     $fmt = var_export($this->getTemporalFormatter($col), true);
     $script .= "\n        \$dt = PropelDateTime::newInstance(\$v, null, '{$dateTimeClass}');\n        if (\$this->{$clo} !== null || \$dt !== null) {";
     if (($def = $col->getDefaultValue()) !== null && !$def->isExpression()) {
         $defaultValue = $this->getDefaultValueString($col);
         $script .= "\n            if ( (\$dt != \$this->{$clo}) // normalized values don't match\n                || (\$dt->format({$fmt}) === {$defaultValue}) // or the entered value matches the default\n                 ) {";
     } else {
         $script .= "\n            if (\$dt !== \$this->{$clo}) {";
     }
     $script .= "\n                \$this->{$clo} = \$dt;\n                \$this->modifiedColumns[] = " . $this->getColumnConstant($col) . ";\n            }\n        } // if either are not null\n";
     $this->addMutatorClose($script, $col);
 }
 public function testSetMutatorAndAccessorMethodsVisibility()
 {
     $column = new Column();
     $column->setAccessorVisibility('private');
     $column->setMutatorVisibility('private');
     $this->assertSame('private', $column->getAccessorVisibility());
     $this->assertSame('private', $column->getMutatorVisibility());
 }
Ejemplo n.º 6
0
 /**
  * Adds the mutator function declaration.
  *
  * @param string &$script
  * @param Column $column
  */
 public function addMutatorOpenOpen(&$script, Column $column)
 {
     $cfc = $column->getPhpName();
     $visibility = $column->getMutatorVisibility();
     $script .= "\n    " . $visibility . " function set{$cfc}(\$v)\n    {";
 }