Маршрутизатор класса не может видеть переменную $ database, вы можете передать ее по параметру при вызове функции
class router {
function route($database) {
$database->connect();
echo("then do some routing");
}
}
$database = new database;
$router = new router;
$router->route($database);
или, возможно, вы можете определить $ database как глобальную переменную
class router {
function route() {
global $database;
$database->connect();
echo("then do some routing");
}
}
$database = new database;
$router = new router;
$router->route();