Antwortinhalt:
Tatsächlich sollte das Lesen des PHP-Quellcodes am meisten helfen. Voraussetzung sind einige Grundkenntnisse in Betriebssystemen und C-Sprache
http://www.php-internals.com/
Es gibt kein für jeden geeignetes Projekt. Lesen Sie am besten den Code, den Sie interessant finden. Es gibt diesen Monat viele trendige PHP-Repositories · GitHub
Ich denke, dass PHP ziemlich gut ist
Es wird empfohlen, dass Sie die Arbeit lesen, die auf der Grundlage des von unserem Team entwickelten Frameworks entwickelt wurde.
Framework: zentaophp
Produkte: zentao, ranzhi, chanzhi
Wir vertreten unterschiedliche Ansichten zu vielen Frameworks auf dem Markt, daher haben wir unser eigenes Framework entwickelt und mehrere Modelle basierend auf diesem Framework implementiert. Open-Source-Produkte haben jeweils Dutzende von Funktionsmodulen, Mehrsprachenunterstützung, detaillierte Erweiterungsmechanismen, API-Aufrufmechanismen usw.
Wenn Sie Framework-Code lesen, um PHP zu lernen, empfehle ich Ihnen dennoch, sich die bekannteren Frameworks wie Symfony2, Lavavel, Yii2 anzusehen, aber tatsächlich ist der Quellcode jedes Frameworks nicht so einfach zu verstehen Sie müssen Kenntnisse über Designmuster und neue Sprachfunktionen hinzufügen. Das Wichtigste ist, die darin enthaltenen Ideen zu lernen und nicht die Sprachtechniken.
Basierend auf den verschiedenen Open-Source-Frameworks, die Sie markiert haben, ist meine persönliche Meinung wie folgt:
1. Es wird nicht empfohlen, sich zu sehr damit zu beschäftigen. Dieses Blog-System ist nicht schlecht, und das kann es auch Es ist nur das Design des Quellcodes. Es verwendet viele globale Variablen und kann nicht als fortgeschrittene Methode angesehen werden Schauen Sie sich das an;
2. Discuz!: Es hat Forschungswert und umfasst natürlich mehrere andere Open-Source-Systeme, ucenter, uchome usw., die einige ihrer Multisystem-Integrationsarchitekturen kennenlernen können Bietet Ihnen viele neue Ideen.
3. Es wird empfohlen, es sorgfältig zu studieren, insbesondere bei Yii2, ob es sich um Verzeichnisstrukturen oder OOP-Designmuster handelt. Der Nachteil ist, dass es nicht viele inländische Daten gibt und es Zeit braucht; 4. Symfony: Es wird nicht oft verwendet und kann keine objektiven Meinungen abgeben.
Die beste Recherche besteht darin, Code zu schreiben und Projekte durchzuführen.
Ich empfehle Ihnen, sich zu engagieren. Nur wenn Sie über genügend Erfahrung verfügen, können Sie den Unterschied nicht erkennen gut und schlecht.
Sie können an meinem Open-Source-Projekt teilnehmen
https://git.oschina.net/yiany/yiany
Persönlich denke ich, dass es zwei Richtungen gibtEiner: die gesamte Webarchitekturklasse- Die zweite: Geschäftslogikklasse
-
Lass uns über das Ganze sprechen Web-Architektur-Klasse zuerst
Die besten Produkte sind beliebte Frameworks. Wir empfehlen Yii, Symfony und ZendFramework, Webentwicklungs-Frameworks mit vollständiger Struktur, kompakter Verpackung und vollständigen Funktionen. Beim Studium dieser Frameworks werden Sie verschiedene Konzepte im Web kennenlernen.
Wenn Sie beispielsweise Yii studieren, werden Sie feststellen, dass Yii jeweils eine Cookie-Kapselung auf den Anforderungs- und Antwortobjekten platziert. Dadurch wird Ihnen klarer, dass das Cookie während der Anforderung vom Browser abgerufen werden muss Es muss beim Antworten auf die Browserseite eingestellt werden.
Darüber hinaus können Sie neben Konzepten im Web auch gute Designlösungen, Designkonzepte, Umsetzungsstrategien usw. von hervorragenden Frameworks lernen.
Ein weiteres Beispiel: Wenn Sie in Yii Controller-Aktionscode wiederverwenden müssen, können Sie ihn mithilfe von Verhalten erweitern, sodass eine gemeinsame Operation in den Controller eingefügt wird. Zu diesem Zeitpunkt können Sie darüber nachdenken, die funktionale Wiederverwendung der Struktur zu unterbrechen und die Injektionsklassentechnologie zu verwenden, um dies zu erreichen. Als nächstes fragen Sie sich: Wie wird diese Klasseninjektionslösung implementiert? Nachdem Sie den Code verfolgt haben, werden Sie feststellen, dass der Traits-Mechanismus objektorientiert verwendet wird. Dies erweitert die Lernoberfläche.
(PS: Der Grund für die Verwendung von Yii als Beispiel ist, dass in letzter Zeit einige Artikel über Yii veröffentlicht wurden, sonst nichts)
Lassen Sie uns über die Business-Logik-Klasse sprechen
Die so- namens GeschäftslogikklasseEs handelt sich um Produkte auf dem Markt, die bestimmte spezifische Funktionen erreichen können, z. B. Ecshop, PHPCMS usw. Das Merkmal dieses Produkttyps besteht darin, dass die typische Geschäftslogik implementiert wurde und die Implementierung sehr gut ist. Auf diese Weise werden Sie beim Erlernen des Codes auch einen bestimmten Aspekt der typischen Geschäftslogik verstehen und wissen, was Sie tun Zeit, was zu tun ist.
Wenn Sie beispielsweise Ecshop lernen, kennen Sie die Geschäftslogik, die ein typisches Einkaufszentrum haben sollte. Wenn Sie auf ähnliche Funktionen stoßen, erhalten Sie mit halbem Aufwand das Doppelte.
(PS: Es gibt viele solcher Produkte. Sie können auf die Welt schauen, nicht nur auf das Inland. Allerdings wird die Wahrscheinlichkeit, dass Sie in Zukunft heimische Produkte verwenden, groß geschrieben)
Jedes der oben genannten Produkte Wählen Sie unbedingt eines aus und lesen und studieren Sie es. Verbringen Sie nicht viel Zeit mit der Auswahl. Mit der Zeit lässt die Begeisterung nach und Sie stellen fest, dass Sie nicht offiziell mit dem Lesen begonnen, sondern die Auswahl nur abgeschlossen haben. Das wäre schade!
Abschließend wird dringend empfohlen, das Handbuch zweimal zu lesen, bevor Sie über etwas anderes sprechen, auf jeden Fall!
Laravel-Bar
Symfony verwendet viele in Java häufig verwendete Entwurfsmuster. Wenn es zum Lernen verwendet wird, ist es meiner Meinung nach besser für mich geeignet, obwohl viele der Schreibmethoden relativ alt und zu komplex sind.
Laravel ist von Symfony getrennt und seine Schreibmethode und Technologie sind relativ neu.
Yaf und Phalcon sind die Trends in praktischen Anwendungen. PHP C berücksichtigt sowohl Leistung als auch Entwicklungseffizienz. Es ist auch notwendig, etwas C-Code zu lesen.