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.
Antworten:
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.
quelle
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.
quelle
peculiar issues when developing large scale applications
Sie identifiziert haben? Da Sie einen .net-Hintergrund als OP haben, wäre es hilfreich zu wissen, was .net-Leute für PHP halten.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.