Я думаю, что вы просите множественное наследование, где вы могли бы расширить как A, так и B следующим образом
<?php
class C extends A,B {
//...
}
Это, однако, не возможно в PHP по веским причинам (на самом деле это создает больше проблем, чем пытается решить).
Теперь вы можете спросить себя, есть ли альтернатива множественному наследованию, и ответ: да, есть! Взгляните на шаблон стратегии (как также указал Бенджамин Ортузар).
UPDATE
Я только что прочитал ваш вопрос во второй раз и подумал, что вы можете искать одноэлементный шаблон , который позволяет вам создавать экземпляр класса только один раз, например так:
class A
{
protected static $_instance;
protected function __construct() //prohibit creating instances from outside
{ }
public static function getInstance()
{
if( self::$_instance === NULL ) {
self::$_instance = new self();
}
return self::$_instance;
}
}
$instance = A::getInstance();
Теперь A::getInstance()
всегда возвращает один и тот же экземпляр A, который вы можете использовать в B, и вы можете иметь как преимущества динамических функций, так и доступность статических функций.
UPDATE2
Ваша база данных принадлежит реестру , если вы можете иметь более одного db-соединения. Если вы абсолютно уверены, что вам всегда понадобится только одно db-соединение, вы можете сделать его одиночным.
Для помощника по URL я бы предложил написать статический класс, если вы можете, и если вам действительно нужно, чтобы он был динамическим, сделайте его одиночным, как упоминалось ранее.