2017-07-16 2 views
1

Schreiben einer API mit Routen ähnlich wie Laravel. Im Moment lade ich die Routen, Controller, Methoden mit jeder Anfrage neu. Offensichtlich ist das sehr dumm, aber ich finde keinen Weg, die persistenten Daten einmal einzulesen und zwischen den Anfragen zu halten.Persistente php Datensammlungen

tl; dr: Wie behalte ich Routensammlungen zwischen Anfragen, um zu verhindern, dass mehrere Sammlungen jede Anfrage hinzufügen. Möchte einfach die Sammlung mit jeder neuen Anfrage greifen.

Antwort

0

Es gibt zwei Dinge, die Sie tun können:

  1. Cache die Daten. Dafür gibt es viele Werkzeuge. Ich benutze persönlich redis.
  2. Cache einige der Bytecode aus Ihrem Code mit Tools wie OPcache.

Sie sollten nur versuchen, die Daten zwischenzuspeichern. Cache-Bytecode wird in den meisten Fällen nicht benötigt. Ich weiß, dass du denkst, dass die Interpretation all dieses Codes viel Zeit in Anspruch nehmen wird, sich aber nicht zu sehr kümmert. PHP ist dabei gut. Es ist meist weniger als 100 ms.

+0

Das Hinzufügen von Routen zur Routensammlung mit jeder Anfrage ist also nicht so wichtig? Allerdings habe ich nicht bemerkt, dass es langsam aus der Sicht eines Benutzers ist. Aus einem starken C++ - Hintergrund kommend fühlt es sich einfach sehr dreckig und ineffizient an. – keelerjr12

+0

So funktioniert PHP. Es ist eine _interpretierte Sprache_. Es interpretiert den Code bei jedem Anruf. Es verwendet intern einige gute Algorithmen, um es so schnell wie möglich zu machen, auch einige Caching-Sachen. –