Pues lo ideal es separar tus clases para abstraerlas lo mas posible, ejemplo.
Tienes tu clase Calendario, luego si quieres un calendario en html, extiendes tu clase a una que soporte la salida en html, si la quieres como gif, como gif etc.
Algo asi:
Código PHP:
inteface iCalendar {
public function getCalendarByMonth($month, $year);
public function getCalendarByYear($year);
public function getCalendar();
}
class Calendar implements iCalendar {
public function getCalendarByMonth($month, $year) {}
public function getCalendarByYear($year) {}
public function getCalendar() {}
}
class CalendarHTML extends Calendar {
public function getCalendar() {
$calendar = parent::getCalendar();
// Aqui ya dibujas tu tabla HTML
}
}
class CalendarGIF extends Calendar {
public function getCalendar() {
$calendar = parent::getCalendar();
// Aqui ya dibujas tu calendario con funciones de GD, etc.
}
}