basicamente existe dos formas; que son el
Page Controller y el
Front Controller, de echo cuando leas las ligas te darás cuenta que la opción A es una implementación poco óptima del Front Controller, existen ya soluciones que implementan esto como
klein por mencionar uno. Otras opciones son las que están basadas en REST pero a nivel "interno" implementan variantes del Front Controller, lo que cambia es que se apegan mas a la
forma en que trabaja el protocolo HTTP.