Templates sind ausreichend für rein informative Websites ohne Funktionalität. Eine Seite wird beim Abruf auf dem Server zusammengebaut und an Besucherinnen und Besucher ausgeliefert. Mit einem Cache-Layer versehen, hat man bereits eine passable Lösung. Webanwendungen erfordern jedoch ein weitergehendes Konzept.
Eine klassische „Web 2.0“-Webanwendung erfordert für gewöhnlich, dass sich Nutzerinnen und Nutzer anmelden, Inhalte erstellen und ändern können. Anders gesagt wird eine Datenbank-Anwendung mit den wichtigsten CRUD-Datenbankoperationen benötigt. Damit dies für mehrere User sinnvoll funktioniert, benötigt man Ansätze für Authentifizierung, Rechteverwaltung und Session-Management.
Prinzipiell enthält PHP die benötigten Bausteine. So bringt die Sprache Funktionen mit, um auf Cookies zuzugreifen, Sessions zu verwalten und vieles mehr. Auch die Anbindung an eine Datenbank, das Ausführen von Abfragen und der Zugriff auf die Werte der HTTP-Anfrage lassen sich stemmen. Dabei kommen jedoch von Hause aus wenig abstrakte Low-Level-Funktionen und globale Variablen wie $_GET, $_POST und $_COOKIE zum Einsatz.