Example #1
0
 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));
 }
Example #2
0
 /**
  * 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);
     }
 }
Example #3
0
 public function testSetDefaultPhpNamingMethodStrategy()
 {
     $database = new Database();
     $database->setDefaultPhpNamingMethod('foo');
     $this->assertSame('foo', $database->getDefaultPhpNamingMethod());
 }