Changeset 491
- Timestamp:
- 15.11.2006 19:27:13 (4 years ago)
- Location:
- branches/1.3/generator
- Files:
-
- 6 modified
-
classes/propel/engine/builder/om/php5/PHP5BasicObjectBuilder.php (modified) (1 diff)
-
classes/propel/engine/builder/om/php5/PHP5BasicPeerBuilder.php (modified) (2 diffs)
-
classes/propel/engine/builder/om/php5/PHP5ComplexObjectBuilder.php (modified) (1 diff)
-
projects/bookstore/schema.xml (modified) (5 diffs)
-
test/classes/bookstore/BookstoreDataPopulator.php (modified) (5 diffs)
-
test/classes/propel/GeneratedPeerTest.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/1.3/generator/classes/propel/engine/builder/om/php5/PHP5BasicObjectBuilder.php
r481 r491 981 981 \$affectedRows += ".$this->getPeerClassname()."::doUpdate(\$this, \$con); 982 982 } 983 \$this->resetModified(); // [HL] After being saved an object is no longer 'modified' 983 \$this->resetModified(); // [HL] After being saved an object is no longer 'modified' 984 ".$this->getPeerClassname()."::addInstanceToPool(\$this); 984 985 } // if \$this->isModified() 985 986 -
branches/1.3/generator/classes/propel/engine/builder/om/php5/PHP5BasicPeerBuilder.php
r481 r491 619 619 public static function addInstanceToPool(".$this->getObjectClassname()." \$obj) 620 620 { 621 // print \"+Adding (by rel) \" . get_class(\$obj) . \" \" . var_export(\$obj->getPrimaryKey(),true) . \" to instance pool.\\n\";621 // print \"+Adding (by addInstanceToPool()) \" . get_class(\$obj) . \" \" . var_export(\$obj->getPrimaryKey(),true) . \" to instance pool.\\n\"; 622 622 "; 623 623 $pk = $this->getTable()->getPrimaryKey(); 624 if ( $pk > 0) {624 if (count($pk) > 1) { 625 625 $script .= " 626 626 \$key = serialize(\$obj->getPrimaryKey());"; … … 740 740 { 741 741 if (isset(self::\$instances[\$key])) { 742 //print \" <- -Found ".$this->getObjectClassname()." \" . self::\$instances[\$key] . \" in instance pool.\\n\";742 //print \" <-Found ".$this->getObjectClassname()." \" . self::\$instances[\$key] . \" in instance pool.\\n\"; 743 743 return self::\$instances[\$key]; 744 744 } else { -
branches/1.3/generator/classes/propel/engine/builder/om/php5/PHP5ComplexObjectBuilder.php
r481 r491 1023 1023 \$affectedRows = \$this->doSave(\$con); 1024 1024 \$con->commit(); 1025 ".$this->getPeerClassname()."::addInstanceToPool(\$this); 1025 1026 return \$affectedRows; 1026 1027 } catch (PropelException \$e) { -
branches/1.3/generator/projects/bookstore/schema.xml
r481 r491 22 22 phpName="ISBN" 23 23 description="ISBN Number"/> 24 <column 25 name="price" 26 required="false" 27 type="FLOAT" 28 description="Price of the book."/> 24 29 <column 25 30 name="publisher_id" … … 257 262 </table> 258 263 259 <!-- test self-referencing foreign keys -->264 <!-- test self-referencing foreign keys and inheritance--> 260 265 <table name="bookstore_employee" description="Hierarchical table to represent employees of a bookstore."> 261 266 <column … … 265 270 autoIncrement="true" 266 271 description="Employee ID number"/> 272 <column name="class_key" type="INTEGER" required="true" default="0" inheritance="single"> 273 <inheritance key="0" class="BookstoreEmployee"/> 274 <inheritance key="1" class="BookstoreManager" extends="BookstoreEmployee"/> 275 <inheritance key="2" class="BookstoreCashier" extends="BookstoreEmployee"/> 276 </column> 267 277 <column 268 278 name="name" … … 284 294 </table> 285 295 286 <!-- test one-to-one server-->296 <!-- Test one-to-one relationship --> 287 297 <table name="bookstore_employee_account" description="A table that represents a bookstore employees login credentials."> 288 298 <column … … 304 314 </foreign-key> 305 315 </table> 306 316 307 317 </database> -
branches/1.3/generator/test/classes/bookstore/BookstoreDataPopulator.php
r483 r491 28 28 require_once 'bookstore/BookListRel.php'; 29 29 require_once 'bookstore/BookstoreEmployee.php'; 30 require_once 'bookstore/BookstoreManager.php'; 31 require_once 'bookstore/BookstoreCashier.php'; 30 32 require_once 'bookstore/BookstoreEmployeeAccount.php'; 31 33 … … 122 124 $phoenix->setAuthor($rowling); 123 125 $phoenix->setPublisher($scholastic); 126 $phoenix->setPrice(10.99); 124 127 $phoenix->save(); 125 128 $phoenix_id = $phoenix->getId(); … … 131 134 $qs->setISBN("0380977427"); 132 135 $qs->setTitle("Quicksilver"); 136 $qs->setPrice(11.99); 133 137 $qs->setAuthor($stephenson); 134 138 $qs->setPublisher($morrow); … … 140 144 $dj->setISBN("0140422161"); 141 145 $dj->setTitle("Don Juan"); 146 $dj->setPrice(12.99); 142 147 $dj->setAuthor($byron); 143 148 $dj->setPublisher($penguin); … … 149 154 $td->setISBN("067972575X"); 150 155 $td->setTitle("The Tin Drum"); 156 $td->setPrice(13.99); 151 157 $td->setAuthor($grass); 152 158 $td->setPublisher($vintage); -
branches/1.3/generator/test/classes/propel/GeneratedPeerTest.php
r483 r491 342 342 } 343 343 } 344 344 345 346 // 5) test creating a new object, saving it, and then retrieving that object (should all be same instance) 347 $b = new BookstoreEmployee(); 348 $b->setName("Testing"); 349 $b->setJobTitle("Testing"); 350 $b->save(); 351 352 $empId = $b->getId(); 353 354 $this->assertSame($b, BookstoreEmployeePeer::retrieveByPK($empId), "Expected newly saved object to be same instance as pooled."); 355 356 } 357 358 /** 359 * Test inheritance features. 360 */ 361 public function testInheritance() 362 { 363 $manager = new BookstoreManager(); 364 $manager->setName("Manager 1"); 365 $manager->setJobTitle("Warehouse Manager"); 366 $manager->save(); 367 $managerId = $manager->getId(); 368 369 $employee = new BookstoreEmployee(); 370 $employee->setName("Employee 1"); 371 $employee->setJobTitle("Janitor"); 372 $employee->setSupervisorId($managerId); 373 $employee->save(); 374 $empId = $employee->getId(); 375 376 $cashier = new BookstoreCashier(); 377 $cashier->setName("Cashier 1"); 378 $cashier->setJobTitle("Cashier"); 379 $cashier->save(); 380 $cashierId = $cashier->getId(); 381 382 // 1) test the pooled instances' 383 $c = new Criteria(); 384 $c->add(BookstoreEmployeePeer::ID, array($managerId, $empId, $cashierId), Criteria::IN); 385 $c->addAscendingOrderByColumn(BookstoreEmployeePeer::ID); 386 387 $objects = BookstoreEmployeePeer::doSelect($c); 388 389 $this->assertEquals(3, count($objects), "Expected 3 objects to be returned."); 390 391 list($o1, $o2, $o3) = $objects; 392 393 $this->assertSame($o1, $manager); 394 $this->assertSame($o2, $employee); 395 $this->assertSame($o3, $cashier); 396 397 // 2) test a forced reload from database 398 BookstoreEmployeePeer::clearInstancePool(); 399 400 list($o1,$o2,$o3) = BookstoreEmployeePeer::doSelect($c); 401 402 $this->assertTrue($o1 instanceof BookstoreManager, "Expected BookstoreManager object, got " . get_class($o1)); 403 $this->assertTrue($o2 instanceof BookstoreEmployee, "Expected BookstoreEmployee object, got " . get_class($o2)); 404 $this->assertTrue($o3 instanceof BookstoreCashier, "Expected BookstoreCashier object, got " . get_class($o3)); 405 345 406 } 346 407 }