Unter vielen Programmiersprachen ist PHP eine der beliebtesten Sprachen unter Programmierern.
PHP hat eine mehr als 20-jährige Geschichte vom Aufstieg des Web-Zeitalters bis zum Niedergang des mobilen Internets. js, GO und Python stellen den Status von PHP ständig in Frage. Die Befürworter dieser Technologien sind sehr daran interessiert, PHP schlecht zu machen. Was ist die Zukunft der PHP-Sprache? Wie sollten PHP-Programmierer auf zukünftige Änderungen reagieren?
Als erfahrene Web-Backend-Programmiersprache hat PHP nach Java einen sehr hohen globalen Marktanteil. Aus den Daten verschiedener Rekrutierungswebsites geht hervor, dass es viele Stellen für die PHP-Entwicklung gibt Auch das Gehaltsniveau ist sehr hoch. Tatsächlich ist die Marktposition von PHP bei kleinen und mittleren Unternehmen und Internet-Startups höher als die von Java. Java bietet größere Vorteile in sehr großen Unternehmen, in der traditionellen Softwareindustrie und im Finanzbereich. Derzeit ist es immer noch schwierig, Sprachen wie Node.js, GO, Python und Ruby mit PHP und Java zu vergleichen.
Der Grund, warum die PHP-Sprache den heutigen Status erreicht hat, liegt darin, dass PHP-Sprachdesigner immer dem Pragmatismus gefolgt sind und die technische Komplexität im Hintergrund verborgen haben. Der Einstieg in die PHP-Sprache ist einfach und sie ist leicht zu beherrschen. Das Programm ist robust und nicht anfällig für komplexe Probleme wie Speicherverluste und Abstürze. Die von PHP offiziell bereitgestellte Standardbibliothek ist sehr leistungsfähig. In der offiziellen Standardbibliothek sind verschiedene Funktionsfunktionen zu finden, darunter MySQL, Memcache, Redis, GD-Grafikbibliothek, CURL, XML, JSON usw., was Entwicklern die Suche nach Bibliotheken erspart überall Ärger. Die Dokumentation von PHP ist ausgezeichnet und enthält detaillierte Beschreibungen und Anwendungsbeispiele für jede Funktion. Bibliotheken, Tools, Codes und Projekte von Drittanbietern sind ebenfalls reichlich vorhanden. Entwickler können mit PHP schnell und effizient verschiedene Software schreiben und entwickeln. Bisher gibt es noch keine Programmiersprache auf dem Markt, die einfacher und benutzerfreundlicher ist als PHP. Daher sind die Aussichten für PHP immer noch sehr groß, anstatt sich über die Wahl der Programmiersprache Gedanken zu machen, ist es besser, PHP gründlich zu erlernen und zu verwenden.
Als erfahrener PHP-Entwickler möchte ich Ihnen zehn technische Vorschläge für die Zukunft von PHP-Programmen geben, von denen ich hoffe, dass sie für alle hilfreich sind.
1. Composer
Der erste Punkt ist Composer. Seit dem Aufkommen von Composer kann das PHP-Abhängigkeitsmanagement sehr einfach werden. Das Programm basiert auf einigen Klassenbibliotheken und Frameworks, die direkt mit Composer eingeführt werden können, und die abhängigen Pakete können mit Composer-Update installiert werden. Verschiedene Schwierigkeiten beim Laden externer Bibliotheken wurden in der Vergangenheit behoben. Composer verfügt auch über Haushaltsspiegel, die sehr schnell sind. Mittlerweile bieten die meisten PHP-Open-Source-Projekte Unterstützung für Composer. Um das Problem der PHP-Codepaketverwaltung in Ihrem Projekt zu lösen, verwenden Sie nicht die ursprüngliche Methode, Quellcode herunterzuladen und manuell einzubinden.
2. PHP7
Die PHP7-Version hat viele Änderungen an der Zend-Engine vorgenommen, was die Leistung der PHP-Sprache erheblich verbessert. Die Verwendung von PHP7 kann die Leistung Ihres Programms sofort verdoppeln. Selbst schwergewichtige Software wie WordPress kann Tausende von QPS auf PHP7 ausführen, was einem Server entspricht, der 80 Millionen Anfragen pro Tag verarbeiten kann. Mit PHP7, der Optimierung von MySQL und der Verwendung von Memcache und Redis zur Beschleunigung kann diese technische Architektur ein ziemlich großes System vollständig bewältigen. Mit Ausnahme einiger Plattformen mit Hunderten Millionen Benutzern sind Systeme mittlerer Größe völlig stressfrei.
3. PSR
PSR ist eine PHP-Sprachentwicklungsspezifikation, die von der Organisation http://www.phpfig.org/ formuliert wurde und viele Regeln wie Namespaces und Klassennamen festlegt
Spezifikationen, Codierungsstilstandards, Autoload, öffentliche Schnittstellen usw. Es ist mittlerweile zum De-facto-Standard in der PHP-Technologie-Community geworden. Viele bekannte PHP-Frameworks und -Bibliotheken entsprechen der PSR-Spezifikation. PHP-Entwickler sollten lernen, die PSR-Spezifikation zu beherrschen und versuchen, bei der Entwicklung von Programmen die PSR-Spezifikation zu befolgen.
4. Swoole
Ist PHP im Jahr 2017 immer noch auf Web-Websites beschränkt? Nein, wenn Sie Swoole noch nicht kennen, informieren Sie sich. Der Slogan von Swoole besteht darin, die PHP-Sprache neu zu definieren. Swoole ist eine asynchrone und parallele Kommunikations-Engine, die als Erweiterung von PHP läuft. Es gibt einen asynchronen Rückruf Swoole in Node.js und es gibt auch eine Coroutine Swoole in der Go-Sprache, die das Verständnis von PHP völlig untergräbt. Mit Swoole PHP können Sie ein speicherresidentes Serverprogramm implementieren und die Programmierentwicklung der asynchronen TCP- und UDP-Netzwerkkommunikation realisieren. Früher konnte PHP nur eine Web-Website erstellen, aber jetzt kann Swoole zum Erstellen von Kommunikationsdiensten verwendet werden, die nur in Java und C++ implementiert werden können, wie z. B. WebSocket-Kommunikation, Chat, Push-Server, RPC-Remote-Anrufdienst, Gateway, Proxy , Spieleserver usw. Wenn Sie PHP für etwas anderes als Websysteme verwenden möchten, ist Swoole die beste Wahl.
5. Laravel
Das beliebteste PHP-Framework der letzten Jahre. Die offizielle Website behauptet, ein Framework für Webkünstler zu sein. Laravel bietet umfangreiche Funktionsmodule, einfaches API-Design und starke Ausdruckskraft. Darüber hinaus ist die Community sehr aktiv, es gibt viele Mitwirkende am Code, es gibt viele Plug-ins von Drittanbietern und das Ökosystem ist recht erfolgreich. Laravel verwendet viele Symfony2-Komponenten auf der untersten Ebene und implementiert das Abhängigkeitsmanagement über Composer. Wenn Sie sich immer noch fragen, welches PHP-Framework Sie verwenden sollen, ist es besser, sich für Laravel zu entscheiden. Das von Laravel bereitgestellte Befehlszeilentool basiert auf symfony.console und ist leistungsstark. Es integriert verschiedene Funktionen zur Projektverwaltung und automatischen Codegenerierung.
6. Phar
PHP5.3 und höher unterstützt ein Java-ähnliches JAR-Paket namens phar. Wird verwendet, um mehrere PHP-Dateien in eine Datei zu packen. Mit dieser Funktion kann PHP Anwendungen genauso einfach packen und in Komponenten zerlegen wie Java. Eine Anwendung kann in ein Phar-Paket gepackt und direkt in
PHPFPM ausgeführt werden. Mit Swoole können Sie php server.phar in der Befehlszeile ausführen, um den Server mit einem Klick zu starten. PHP-Codepakete können mit Phar in Komponenten gepackt und zum Laden und Ausführen im Servercontainer von Swoole abgelegt werden.
7. C/C++/GO
Jede Technologie hat Vor- und Nachteile. Als dynamische Skriptsprache hat PHP den Vorteil, dass es einfach zu entwickeln und effizient ist. Der Nachteil ist die schlechte Leistung. In intensiven Rechenszenarien ist es Dutzende oder sogar Hunderte Male schlechter als C und C++. Darüber hinaus kann PHP die zugrunde liegende Ebene nicht direkt bedienen und muss sich auf Erweiterungsbibliotheken verlassen, um die API-Implementierung bereitzustellen. PHP-Programmierer können eine statische kompilierte Sprache als Ergänzung erlernen, um eine dynamische und statische Ergänzung zu erreichen. C/C++/Go sind allesamt eine gute Wahl. Darüber hinaus ist die Programmiererfahrung in statischen Sprachen völlig anders als in dynamischen Sprachen, und der Lernprozess kann zu größeren Verbesserungen führen.
Nachdem Sie die Sprache C/C++ beherrschen, können Sie auch den Quellcode von Open-Source-Software wie PHP, Swoole, Nginx, Redis und dem Linux-Kernel lesen, um die zugrunde liegenden Funktionsprinzipien zu verstehen.
Die neueste Version von Swoole bietet jetzt Unterstützung für C++-Erweiterungsmodule und kapselt die Zend-API. Es wird sehr einfach, PHP mit C++-Erweiterungsfunktionen zu betreiben und Klassen können in C++ implementiert werden.
8. HTML5
Als Standard der neuen Generation für Web-Frontends hat HTML5 eine sehr vielversprechende Zukunft und eine große Marktnachfrage. Von PC-Websites über B/S-Unternehmenssoftware bis hin zu mobilen Webseiten und Apps umfassen diese Bereiche HTML5. Nur wenn Sie HTML5 beherrschen, können Sie die nächste Welle der Internettechnologie überleben.
9. Vue.js
PHP-Programmierer haben neben dem Schreiben von Hintergrundprogrammen auch einen großen Teil ihrer Arbeit in der Präsentationsschicht, wo sie sich mit dem Browser-Frontend befassen. Verwenden Sie im Jahr 2017 immer noch jQuery, um DOM zu betreiben und so das Interface-Rendering zu implementieren? Es ist völlig out. Jetzt ist es sehr praktisch, Vue.js zum Binden von Daten und DOM-Elementen zu verwenden. Nachdem die Back-End-Schnittstelle über Ajax aufgefordert wurde, Daten zurückzugeben, werden die Front-End-Daten aktualisiert, um das Schnittstellen-Rendering automatisch zu implementieren. Es wird zu spät sein, wenn Sie Vue 2017 nicht lernen.
Wenn Sie nicht nur Webprogramme schreiben, sondern auch Android, IOS, PC-Client und andere Plattformen berücksichtigen möchten, ist React Native eine gute Wahl.
10. Deep Learning/künstliche Intelligenz
Die Zukunft des Internets gehört der künstlichen Intelligenz. Wenn Sie die Konzepte des maschinellen Lernens, des tiefen Lernens und der künstlichen Intelligenz nicht verstehen, dann sind Sie es Ich muss so schnell wie möglich etwas über sie erfahren. Jetzt setzen Internetgiganten künstliche Intelligenz ein, darunter Google, Facebook, Microsoft, Amazon und das heimische Baidu. Obwohl sie sich noch im wissenschaftlichen Forschungsstadium befindet, wird künstliche Intelligenz in Zukunft in verschiedenen Bereichen des Internets eingesetzt, darunter autonomes Fahren, Big-Data-Analyse, Online-Spiele, Bilderkennung, Sprachverarbeitung usw. Natürlich können normale Ingenieure derzeit möglicherweise nicht an Produkten der künstlichen Intelligenz teilnehmen, aber sie sollten zumindest die grundlegenden Konzepte und Prinzipien von Deep Learning/künstlicher Intelligenz verstehen.