PHP war eigentlich nie wirklich "das Mittel der Wahl". Es war nur besonders verbreitet.
Mittlerweile gibt es, wenn du nicht an Constraints wie "Die Firma hat nur PHP-Programmierer", "Der Manager sagt ich soll PHP benutzen" zum Glück eine große Auswahl an weniger schlimmen Wahlmöglichkeiten, die ich eigentlich für jedes Projekt vorziehen würde das neu beginnt(Es konnte mir noch nicht ein Mensch einen technischen Grund für die Wahl von PHP für IRGENDEIN Projekt nennen. Und ich mache den Scheiß schon etwas länger).
Nun gibt es da die ganz offensichtlichen und bekannten Sachen(Python mit Django, Ruby on Rails), die sicherlich einen Blick wert sind, ich würde aber vor allem gern auf ein paar eher unbekannte Webframeworks hinweisen, die ich bisher ziemlich gut fand und bei denen ich finde, mehr Leute sollten damit mal was gemacht haben. Nicht nur weil sie toll sind, sondern weil es eine ziemlich transformative Erfahrung ist.
Ansatz 1:
Yesod. Yesod ist ein Webframework für Haskell, was allein schon Grund genug ist einfach cool zu sein, ist aber vor allem gefühlt "haskellig": es ist Lazy, es macht Asynchronität und Parallelismus extrem einfach, es ist unfassbar schnell für ein Webframework(Haskell wird idR. nativ kompiliert, kann aber auch interpretiert in einer REPL ausgeführt werden, ist insgesamt eine sehr flotte Sprache, und die typischen Haskellcompiler wie UHC und GHC sind was Compilertechnologie angeht die Endgegner), und es ist, anders als PHP, auch noch statisch typisiert mit dem mächtigsten Typsystem, das ich in irgendeiner produktiv benutzbaren Sprache kenne, das geht so weit, dass du damit sogar Encoding-Probleme zur Compilezeit abfangen kannst. Richtig geil werden Webapplications damit, wenn du den dynamischen Teil auch noch
in
PureScript (basiert auch auf der Haskell-Syntax, kompiliert zu Javascript, hat ein starkes Typsystem etc.) abfertigst.
Ansatz 2:
Phoenix bedient sich in vielerlei Hinsicht wie Rails, was die Hilfstools rundherum angeht, verwendet aber statt Ruby(das, wie du schnell sehen wirst, ganz erheblich eine Inspiration für Elixir war) die Sprache
Elixir, die auf dem(ganz herausragenden) Erlang-Ökosystem basiert und auch mit Erlang-Modulen kompatibel ist. Elixir ist zwar nicht so flott wie Haskell(weil es auf der Erlang-VM läuft, die aber immer noch erheblich schneller ist als bspw. die JVM, besonders wenn du massiv rechnen willst), bietet aber andere erhebliche Vorteile: das Acrot-Model und Railway-Orientierte Programmierung sind fest in die Sprache verbacken, Metaprogrammierung bis zur Manipulation des AST selbst ist ohne Probleme möglich. Und da haben wir noch nicht einmal mit den Vorteilen durch Erlang begonnen. Erlang wurde für die Telefonindustrie geschrieben, und ist da unangefochten, und bringt viele Features mit, die du in keiner anderen Sprache/Sprachfamilie finden wirst: Erlang-Programme über Netzwerk etc. auf mehrere Nodes zu verteilen ist eine absolut minimale Fingerübung, ebenso wie Hochskalierbare, massiv konkurrente Programme zu schreiben, die weiche Realtime-Anforderungen erfüllen. Erlang erlaubt es selbst, den aAusführbaren Code in einem Programm zu "hotswappen", ohne das eigentliche Erlang-System zu stoppen.
Auch hier kann ich für den dynamischen Anteil wieder eine funktionale Sprache empfehlen, PureScript wirkt auch hier wunder, aber als zweite Wahl aus den selben Gründen schlage ich einfach mal noch
ReasonML vor. Das wurde bei Facebook entwickelt(von dem Typen der das React-Framework erfunden hat) und ist eine auf OCaml basierende Sprache, die zu Javascript kompiliert werden kann.
Nun zum langweiligeren Teil, der Technik: du brauchst grundsätzlich einen passenden Server für deine Webanwendung, ja(Im Fall von PHP sind das beinahe immer nginx oder Apache). Welchen und wie hängt sehr von deiner Wahl ab(und deinen Anforderungen, so ist zum Beispiel nginx etwas Effizienter als Apache, aber Apache bietet weit mehr Community-Plugins) , Phoenix zum Beispiel bringt zum erst einmal rumspielen ebenso einen mit, wie Ruby on Rails. Lokal geht das je nach deiner Konfiguration natürlich, du musst dann halt deine lokale IP oder den Hostname deines Rechners kennen, dann klappt das. Nach draußen wird es schwieriger, da brauchst du entweder eine statische IP(die dir dein ISP garantiert nicht gibt) oder einen DNS-Eintrag. Ich würde für so einen Fall empfehlen, dir einfach bei Hetzner oder so ein Stückchen Bleck zu mieten, das kostet wirklich nicht die Welt, da hast du eine statische IP und bist die Sorgen für kleines Geld los. Alternativ kann man als "DNS-Ersatz" auch TOR benutzen(und die Webanwendung als Hidden Service betreiben), da hat die dann eine eindeutige, wenn auch sehr unhandliche, .onion-Adresse(auf die man nicht wirklich Einfluss nehmen kann, außer öfter neue zu generieren).
MfG