Třídy bych vytvořil takhle
class knihovna {
...
}
class knihovna_narodni extends knihovna {
public $jazyk;
...
}
class knihovna_narodni_druh extends knihovna_narodni {
public $druh;
...
}
$knihovna=new knihovna_narodni_druh();
$knihovna->jazyk="ceska";
$knihovna->druh="klasika";
přičemž poslední dva řádky lze upravit do __construct($pole).Url bych rozskouskoval a podle počtu a hodnot se rozhodnul, kterou třídu zavolám.