Was ist ein guter Weg, um mich mit PHP aus einem ASP.NET-Hintergrund vertraut zu machen? [geschlossen]

10

Derzeit bin ich sehr zufrieden mit dem Erstellen von Tools / Web-Apps in einer ASP.NET-Umgebung. Ich möchte tbh nicht wirklich verlassen, da ich C #, ASP.NET, MVC 3, Visual Studio usw. wirklich mag.

Im Moment weiß ich jedoch fast nichts über PHP und das scheint ein Mangel zu sein, den ich gerne beheben würde.

Gibt es Bücher (oder andere Lernmethoden), die eine gute Ressource zum Erlernen von PHP darstellen? Natürlich gibt es viele anfängliche PHP-Bücher, aber ich bin bereits mit vielem vertraut, was mit dem Erstellen einer Webseite verbunden ist, und ich bin daran interessiert, mich auf PHP selbst zu konzentrieren, das möglicherweise nicht mit dem Umfang einiger beginnender PHP-Bücher kompatibel ist.

Ich habe das PHP-Handbuch ziemlich oft durchgesehen, und es scheint nicht so reibungslos zu fließen, wie es ideal wäre. Gibt es ein PHP-Anfangsbuch, das angemessen wäre? Ich vermisse den Zusammenhalt, den die meisten Bücher enthalten, wenn sie diese Beispiele durchsehen. Es gibt viele Informationen mehr, aber es fühlt sich beim Codieren eher wie eine Referenz an als wie ein primäres Lernvehikel.

Eric
quelle
5
Warum ist es Ihrer Meinung nach ein Mangel, den Sie beheben müssen, wenn Sie PHP nicht kennen? Ist es ein Mangel, den Sie beheben müssen, wenn Sie Rails, Django, J2EE, node.js usw. nicht kennen? Gibt es eine echte Nachfrage nach Ihnen, PHP in Ihrer aktuellen Beschäftigung zu kennen und zu verwenden?
Raynos
1
@ Raynos Nun, die Popularität von PHP ist größer als Rails, Django, Node.js kombiniert ...
Yannis
Warum (keine Flamme) möchten Sie mit PHP besser werden? Ist es für das Lernen, sich in einer dynamischeren, interpretierten Umgebung zu entwickeln, oder nur, weil so viel da draußen ist?
Sbrenton
1
@ Raynos - Marktanteil. Die Wahrscheinlichkeit, dass PHP nützlich ist, um Lösungen zu vergleichen, ein Problem zu bewerten, einem Freund zu helfen usw., ist höher als die Beispiele, die Sie imo aufgelistet haben. Ich habe keine Lust, mich von asp.net zu entfernen, daher ist es weniger nützlich, die "beste" alternative Umgebung zu kennen, als die beliebteste.
Eric
1
Steigen Sie in MVC3 ein, das könnte ein guter erster Schritt sein
Daniel Little

Antworten:

7

Die beste Ressource zum Erlernen von PHP ist das PHP-Handbuch . Es ist sehr gut geschrieben und gut strukturiert und eines der größten Vermögenswerte der PHP-Community. Wenn Sie mit ASP.net vertraut sind, reicht das Handbuch aus, um Ihnen den Einstieg zu erleichtern.

Bevor Sie jedoch mit dem Lesen beginnen, sollten Sie einen PHP-Stack einrichten. Sie können Apache, PHP und Ihre Lieblingsdatenbank (SQLServer ist in Ordnung) selbst installieren (es ist extrem einfach) oder einen fertigen Stack wie XAMPP einrichten . XAMPP wird installiert:

alles auf einmal (plus ein paar andere Sachen). Eine wichtige fehlende Bibliothek ist phpUnit , die Ihnen offensichtlich beim Testen von Einheiten helfen wird.

Dann sollten Sie eine IDE installieren. Ihre offensichtliche Wahl ist Eclipse Classic mit den PHP Development Tools (PDT) oder Netbeans for PHP . Es gibt viele andere, aber diese beiden empfehle ich. Ich benutze beide, wenn Sie sich nicht zwischen ihnen entscheiden können. Netbeans ist etwas einfacher zu verstehen, aber Sie sollten beide wirklich bewerten und selbst entscheiden, welches für Sie besser ist - ich habe nicht mit Visual Studio gearbeitet eine lange Zeit und ich weiß wirklich nicht, welche IDE Ihnen vertrauter sein könnte.

Wenn Sie die Grundlagen des Handbuchs kennen, sollten Sie sich ein MVC-Framework überlegen. Auch hier werde ich zwei empfehlen:

Zend Framework ist das Biest und CodeIgniter ist die Schönheit, wenn Sie mir eine dumme Metapher erlauben. Zend Framework hat eine steile Lernkurve, wird von Zend (dem Unternehmen hinter PHP ) unterstützt und Sie können fast alles damit machen. CodeIgniter ist viel einfacher zu verstehen, hat eine gute Dokumentation für Anfänger und ist ziemlich beliebt. Aber der größte Teil der Codebasis ist veralteter Mist, da sie vor nicht allzu langer Zeit PHP4 unterstützt haben.

Für einen Anfänger ist CodeIgniter die offensichtliche Wahl, aber bleiben Sie nicht dabei. Verwenden Sie es als Lernwerkzeug und wechseln Sie so schnell wie möglich zu Zend Framework. Auch hier gibt es viel mehr MVC-Frameworks in der PHP-Welt, aber diese beiden empfehle ich.

Ein großartiges Buch für Anfänger ist PHP Objects, Patterns and Practice . Die PHP-Bücher von Sitepoint sind immer eine Freude zu lesen. Wenn Sie sich in PHP verlieben, sollten Sie ein Abonnement für PHP Architect in Betracht ziehen .

Schauen Sie sich zum Schluss diese großartige Diskussion über rein technische Gründe für PHP als erste Wahl an .


Update: Einige weitere Online-Ressourcen, die sich hauptsächlich an Nicht-Anfänger richten:

und wenn Sie aus irgendeinem seltsamen Grund mit PHP unter IIS anstelle von Apache herumspielen möchten, ist Microsoft PHP unter Windows ein guter Ausgangspunkt . PHP unter IIS funktioniert und ist eine gültige Wahl, insbesondere für einen .NET-Entwickler. Sie sollten sich jedoch unbedingt für Apache (und MySQL oder PostgreSQL anstelle von SQLServer) entscheiden, um die volle PHP-Erfahrung zu erhalten und sicherzustellen, dass Ihre Fähigkeiten auf alle anderen gängigen Geräte übertragen werden können Betriebssystem. Sie möchten nicht die Freude verpassen, die mod_rewrite ist .


Persönliche Anmerkung: Es gibt viel Hass für PHP, einiges davon ist gerechtfertigt . Wenn Sie sich dafür entscheiden, müssen Sie die verschiedenen PHP-Ressourcen, Skripte und Bibliotheken, denen Sie unterwegs begegnen, äußerst kritisch gegenüberstehen. Es gibt zu viel Mist da draußen und es ist für Anfänger unmöglich, den Unterschied zu erkennen. Die enorme Popularität von PHP kann in eine sehr große und hilfreiche Community, eine große Marktfähigkeit Ihrer Fähigkeiten, Millionen und Abermillionen von Blogs übersetzt werden, aber es kann auch in ein paar tausend Terabyte beschissenen Codes übersetzt werden.

Yannis
quelle
2

Yannis hat dort eine Menge guter Dinge zu sagen, aber ich habe gelesen, Build Your Own Database Driven Web Site, 4. Ausgabe , und es war mit allem gefüllt, was ich wissen musste, um auf dem richtigen Weg zur Entwicklung professioneller PHP-Webanwendungen zu beginnen.

Ich habe auch ausschließlich an .NET gearbeitet, bevor ich anfing, PHP zu arbeiten. Die Arbeit mit PHP ist viel einfacher, weist jedoch einige besondere Probleme bei der Entwicklung umfangreicher Anwendungen auf. In diesem Buch können Sie damit beginnen.

Ein Problem für mich war, dass PHP keine streng objektorientierte Sprache ist. Es hat alle möglichen Funktionen in prozeduraler und objektorientierter Form und es dauert eine Weile, bis man sich daran gewöhnt hat. Es kommt aus einer Sprache, in der alles in Klassen und Namespaces organisiert ist.

Eine andere war, wie einfach man alles in PHP mischen kann, was die Dinge viel schwieriger macht. In .NET führen Sie die von Ihnen verwendeten Tools wie Visual Studio dazu, gute Codierungsstandards zu üben, indem Sie einen Teil der Arbeit für Sie erledigen. Normalerweise werden HTML-Markup und C # -Code einer ASPX-Seite in zwei Dateien getrennt.

Wenn Sie ein starker Benutzer von .NET-Tools sind und lieber mit ASP.NET-Steuerelementen arbeiten, ist ein weiteres Problem für Sie das Fehlen von Steuerelementen (GridView usw.) in PHP. Ich weiß, dass es viele Bibliotheken / Frameworks gibt, die Ihnen etwas Ähnliches bieten, aber sie sind nicht genau Teil des grundlegenden PHP-Pakets.

Ein weiteres Problem für mich war, dass in PHP häufig Arrays und Hashes verwendet werden, die eher wie Sammlungen in .NET dienen. Sie sind überall und es wäre gut, sich daran zu gewöhnen, dass Arrays nicht nur eine geordnete Liste derselben Art von Objekten / Skalareinheiten sind. Sie können als Sammlungsobjekte dienen, um alle möglichen Dinge unterzubringen.

Ich kann immer weiter machen, aber um eines der wichtigsten Dinge zu erwähnen, die ich für PHP sehr eigenartig fand (ich weiß nicht, dass es auch in anderen Sprachen üblich sein könnte), ist, wie oft die "Include" -Funktionen (und verwandte Funktionen) verwendet werden so häufig. Ich kann sagen, dass das Buch von Sitepoint Sie mit all dem auf den neuesten Stand bringen kann.

Tsega
quelle
Ich habe in meiner Antwort einen Link zu Sitepoints PHP-Büchern, sie sind alle ausgezeichnet. Könnten Sie Ihre Antwort ein wenig erweitern, um uns von dem zu erzählen, was peculiar issues when developing large scale applicationsSie identifiziert haben? Da Sie einen .net-Hintergrund als OP haben, wäre es hilfreich zu wissen, was .net-Leute für PHP halten.
Yannis
OK Yannis, ein Problem für mich war, dass PHP nicht streng objektorientiert ist, sondern alle möglichen Funktionen in prozeduraler und objektorientierter Form hat und es eine Weile dauert, bis man sich daran gewöhnt hat, aus einer Sprache zu kommen, die nicht nur so organisiert ist in nur Klassen, aber all diese Namensräume und alles.
Tsega
Hmmm, das ist ein allgemeines Problem, nicht nur when developing large scale applications. Wie auch immer, ich habe mehr über konzeptionelle Probleme und Ansatzprobleme nachgedacht, da PHP bei Skalierungsproblemen einen völlig anderen Ansatz als .Net verfolgt. Ich habe sehr wenig Erfahrung mit .Net, daher wäre ich interessiert herauszufinden, was die .Net-Leute konzeptionell besonders finden, wenn sie zu PHP kommen. Aber Dinge wie die Tatsache, dass PHP ein Multi-Paradigma ist, sind natürlich zu erwarten.
Yannis
1
In Bezug auf Ansätze tendieren die meisten ASP.NET-Entwickler dazu, benutzerdefinierte Steuerelemente (Komponenten - eine Kombination aus HTML-Steuerelementen mit Javascript und serverseitigem Code) zu verwenden, um ihre "datenintensiven" Anwendungen in großem Maßstab zu entwickeln. Dies ist hauptsächlich auf die Tatsache zurückzuführen, dass die meisten ASP.NET-Entwickler tatsächlich von der Desktop-Anwendungsentwicklung mit fast denselben Tools zur Webentwicklung übergegangen sind. Daher suchen die meisten nach Möglichkeiten, ihre bereits erworbenen Fähigkeiten in der Arbeit mit benutzerdefinierten Steuerelementen für die Webentwicklung zu übersetzen.
Tsega
Eine sehr gute IDE für dieses Buch ist Netbeans . Das PHP-Debugging ist so gut wie es nur geht.
Tsega