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()]); }
/** * 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 {"; }
/** * 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 {"; }
/** * 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()); }
/** * 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 {"; }