public function setupObject() { parent::setupObject(); $this->commonName = $this->originCommonName = $this->getAttribute('name'); // retrieves the method for converting from specified name to a PHP name. $this->phpNamingMethod = $this->getAttribute('phpNamingMethod', $this->database->getDefaultPhpNamingMethod()); $this->phpName = $this->getAttribute('phpName', $this->buildPhpName($this->getStdSeparatedName())); if ($this->database->getTablePrefix()) { $this->commonName = $this->database->getTablePrefix() . $this->commonName; } $this->idMethod = $this->getAttribute('idMethod', $this->database->getDefaultIdMethod()); $this->allowPkInsert = $this->booleanValue($this->getAttribute('allowPkInsert')); $this->skipSql = $this->booleanValue($this->getAttribute('skipSql')); $this->readOnly = $this->booleanValue($this->getAttribute('readOnly')); $this->isAbstract = $this->booleanValue($this->getAttribute('abstract')); $this->baseClass = $this->getAttribute('baseClass'); $this->alias = $this->getAttribute('alias'); $this->heavyIndexing = $this->booleanValue($this->getAttribute('heavyIndexing')) || 'false' !== $this->getAttribute('heavyIndexing') && $this->database->isHeavyIndexing(); if ($this->getAttribute('identifierQuoting')) { $this->identifierQuoting = $this->booleanValue($this->getAttribute('identifierQuoting')); } $this->description = $this->getAttribute('description'); $this->interface = $this->getAttribute('interface'); // sic ('interface' is reserved word) $this->reloadOnInsert = $this->booleanValue($this->getAttribute('reloadOnInsert')); $this->reloadOnUpdate = $this->booleanValue($this->getAttribute('reloadOnUpdate')); $this->isCrossRef = $this->booleanValue($this->getAttribute('isCrossRef', false)); $this->defaultStringFormat = $this->getAttribute('defaultStringFormat'); $this->defaultAccessorVisibility = $this->getAttribute('defaultAccessorVisibility', $this->database->getAttribute('defaultAccessorVisibility', static::VISIBILITY_PUBLIC)); $this->defaultMutatorVisibility = $this->getAttribute('defaultMutatorVisibility', $this->database->getAttribute('defaultMutatorVisibility', static::VISIBILITY_PUBLIC)); }
/** * Appends the generated <database> XML node to its parent node. * * @param Database $database The Database model instance * @param \DOMNode $parentNode The parent DOMNode object */ private function appendDatabaseNode(Database $database, \DOMNode $parentNode) { $databaseNode = $parentNode->appendChild($this->document->createElement('database')); $databaseNode->setAttribute('name', $database->getName()); $databaseNode->setAttribute('defaultIdMethod', $database->getDefaultIdMethod()); if ($package = $database->getPackage()) { $databaseNode->setAttribute('package', $package); } if ($schema = $database->getSchema()) { $databaseNode->setAttribute('schema', $schema); } if ($namespace = $database->getNamespace()) { $databaseNode->setAttribute('namespace', $namespace); } if ($baseClass = $database->getBaseClass()) { $databaseNode->setAttribute('baseClass', $baseClass); } if ($baseQueryClass = $database->getBaseQueryClass()) { $databaseNode->setAttribute('baseQueryClass', $baseQueryClass); } if ($defaultNamingMethod = $database->getDefaultPhpNamingMethod()) { $databaseNode->setAttribute('defaultPhpNamingMethod', $defaultNamingMethod); } $defaultAccessorVisibility = $database->getDefaultAccessorVisibility(); if ($defaultAccessorVisibility !== Database::VISIBILITY_PUBLIC) { $databaseNode->setAttribute('defaultAccessorVisibility', $defaultAccessorVisibility); } $defaultMutatorVisibility = $database->getDefaultMutatorVisibility(); if ($defaultMutatorVisibility !== Database::VISIBILITY_PUBLIC) { $databaseNode->setAttribute('defaultMutatorVisibility', $defaultMutatorVisibility); } $defaultStringFormat = $database->getDefaultStringFormat(); if (Database::DEFAULT_STRING_FORMAT !== $defaultStringFormat) { $databaseNode->setAttribute('defaultStringFormat', $defaultStringFormat); } if ($database->isHeavyIndexing()) { $databaseNode->setAttribute('heavyIndexing', 'true'); } if ($tablePrefix = $database->getTablePrefix()) { $databaseNode->setAttribute('tablePrefix', $tablePrefix); } if ($database->isIdentifierQuotingEnabled()) { $databaseNode->setAttribute('identifierQuoting', 'true'); } /* FIXME - Before we can add support for domains in the schema, we need to have a method of the Column that indicates whether the column was mapped to a SPECIFIC domain (since Column->getDomain() will always return a Domain object) foreach ($this->domainMap as $domain) { $this->appendDomainNode($databaseNode); } */ foreach ($database->getVendorInformation() as $vendorInformation) { $this->appendVendorInformationNode($vendorInformation, $databaseNode); } foreach ($database->getTables() as $table) { $this->appendTableNode($table, $databaseNode); } }
public function testSetDefaultPhpNamingMethodStrategy() { $database = new Database(); $database->setDefaultPhpNamingMethod('foo'); $this->assertSame('foo', $database->getDefaultPhpNamingMethod()); }