Best Practice für temporäre Dateien

Für eine Plugin-Funktion müsste ich temporäre (text)-Dateien auf dem Server erstellen, die dann auch als Download oder Stream zu einem späteren Zeitpunkt ausgeliefert werden. Nun ist meine Frage gibt es ein Best-Practice wie ich diese Dateien mit einem Backend-Controller erstelle? Also in welche Verzeichnisse z.B., wie ich den Dateiinhalt später in einem Backend-Plugin als Download ausliefere, wie ich alte Temp-Dateien am Besten wieder entferne.