Пример #1
0
 public function testSetSubclassDb()
 {
     $adapter1 = $this->getMockAdapter();
     $adapter2 = $this->getMockAdapter();
     $adapter3 = $this->getMockAdapter();
     ZendDb::setDefaultDb($adapter1);
     BaseSuperClass::setDefaultDb($adapter2);
     $instance1 = new BaseSuperclass();
     $this->assertSame($adapter2, $instance1->publicGetDb());
     $this->assertSame($adapter2, $instance1::publicStaticGetDb());
     // Set the subclass db adapter
     BaseSubClass::setDefaultDb($adapter3);
     // The superclass instance adapter should stay the same
     $this->assertSame($adapter2, $instance1->publicGetDb());
     $this->assertSame($adapter2, $instance1::publicStaticGetDb());
     // Create new instance of subclass
     $instance2 = new BaseSubclass();
     $this->assertSame($adapter3, $instance2->publicGetDb());
     $this->assertSame($adapter3, $instance2::publicStaticGetDb());
 }
Пример #2
0
 /**
  * Return the default Zend\Db\Adapter for this class
  *
  * @throws ConfigException
  * @return Adapter
  */
 protected static function getDefaultDb()
 {
     // Use subclass default db (set via MySubClass::setDefaultDb())
     $calledClass = get_called_class();
     if (isset(self::$_subclassDefaultDb[$calledClass]) && self::$_subclassDefaultDb[$calledClass]) {
         return self::$_subclassDefaultDb[$calledClass];
     }
     // Use superclass default db
     if (static::$_classDefaultDb) {
         return static::$_classDefaultDb;
     }
     // Use global ActiveRecord default db
     if ($db = ZendDb::getGlobalDefaultDb()) {
         return $db;
     }
     throw new ConfigException('Please configure a Zend\\Db\\Adapter instance to use with ActiveRecord.');
 }