Jaki jest dobry sposób na zapoznanie się z PHP pochodzącym z ASP.NET? [Zamknięte]

10

Obecnie bardzo dobrze czuję się w tworzeniu narzędzi / aplikacji internetowych w środowisku ASP.NET. Nie chcę opuszczać TBH, ponieważ bardzo lubię C #, ASP.NET, MVC 3, Visual Studio itp.

Jednak w tej chwili nie wiem prawie nic o PHP i wydaje mi się, że to niedobór, który chciałbym naprawić.

Czy są jakieś książki (lub inne metody uczenia się), które byłyby dobrym źródłem do nauki PHP? Oczywiście jest wiele początkujących książek o PHP, ale już dobrze czuję się z tym, co wiąże się z budowaniem strony internetowej, i jestem zainteresowany skupieniem się na samym PHP, które może nie być zgodne z zakresem niektórych początkowych książek o PHP.

Przeszedłem już sporo instrukcji PHP i wydaje się, że nie płynie ona tak płynnie, jak mogłoby być idealnym. Czy jest jakaś początkowa książka o PHP, która byłaby odpowiednia? Tęsknię za spójnością, jaką zawiera większość książek, gdy przeglądam te próbki. Jest dużo więcej informacji, ale bardziej przypomina odniesienie podczas kodowania niż podstawowy pojazd do nauki.

Eric
źródło
5
Jak myślisz, dlaczego nie wiedząc, że PHP jest wadą, którą musisz naprawić? Czy znajomość Railsów, Django, J2EE, node.js itp. Nie jest brakiem, który należy naprawić? Czy istnieje rzeczywiste zapotrzebowanie na znajomość PHP i korzystanie z niego w obecnej branży?
Raynos,
1
@Raynos Popularność php jest większa niż połączenie szyn, django, node.js ...
yannis,
Dlaczego (nie płomień) chcesz być lepszy dzięki PHP? Czy to nauka uczenia się w bardziej dynamicznym, zinterpretowanym środowisku, czy bardziej tylko dlatego, że tak wiele tam jest?
sbrenton,
1
@Raynos - udział w rynku. Szanse na pewną wiedzę na temat przydatności php do porównywania rozwiązań, oceny problemu, pomocy przyjacielowi itp. Są wyższe niż podane przykłady. Nie chcę odchodzić od asp.net, więc znajomość „najlepszego” alternatywnego środowiska jest mniej przydatna imo niż znajomość najpopularniejszego.
Eric
1
Wejdź do MVC3, który może być dobrym pierwszym krokiem
Daniel Little

Odpowiedzi:

7

Najlepszym źródłem do nauki PHP jest podręcznik PHP . Jest niezwykle dobrze napisany i ma dobrą strukturę i jest jednym z największych atutów społeczności PHP. Jeśli masz pewność co do ASP.net, instrukcja wystarczy, aby rozpocząć.

Zanim zaczniesz czytać, powinieneś skonfigurować stos PHP. Możesz samodzielnie zainstalować Apache, PHP i swoją ulubioną bazę danych (SQLServer jest w porządku) (to bardzo proste) lub możesz skonfigurować gotowy stos, taki jak XAMPP . XAMPP zainstaluje:

wszystko za jednym razem (plus kilka innych rzeczy). Jedną ważną biblioteką, której brakuje, jest phpUnit , która oczywiście pomoże ci w testowaniu jednostkowym.

Następnie powinieneś zainstalować IDE, twoje oczywiste opcje to Eclipse Classic z PHP Development Tools (PDT) lub Netbeans dla PHP . Jest wiele innych, ale te dwa polecam. Używam ich obu, jeśli nie możesz wybierać między nimi Netbeans jest trochę łatwiejszy do zrozumienia, ale powinieneś naprawdę ocenić oba i sam zdecydować, który z nich jest dla Ciebie lepszy - nie pracowałem z Visual Studio w bardzo długo i naprawdę nie wiem, które IDE może być dla ciebie bardziej znane.

Po zapoznaniu się z podstawami z podręcznika powinieneś zacząć myśleć o frameworku MVC. Ponownie polecę dwa:

Zend Framework to bestia, a CodeIgniter to piękno, jeśli pozwolisz mi na głupią metaforę. Zend Framework ma stromą krzywą uczenia się, jest wspierany przez Zend ( firmę stojącą za PHP ) i możesz z nim zrobić prawie wszystko. CodeIgniter jest o wiele łatwiejszy do zrozumienia, ma ładną dokumentację dla początkujących i jest dość popularny. Ale większość tego kodu to przestarzałe badziewie, ponieważ jeszcze niedawno obsługiwały PHP4.

Dla początkującego oczywistym wyborem jest CodeIgniter, ale nie utknij z tym. Użyj go jako narzędzia do nauki i jak najszybciej przejdź do Zend Framework. Znów w świecie PHP jest o wiele więcej frameworków MVC, ale te dwa są tymi, które polecam.

Jeśli chodzi o książki, świetną książką dla początkujących są obiekty, wzorce i praktyka PHP . SitePoint „s PHP książki są zawsze przyjemność czytać. Jeśli zakochasz się w PHP, powinieneś rozważyć subskrypcję PHP Architect .

Na koniec sprawdź tę świetną dyskusję na temat czysto technicznych powodów, dla których PHP jest pierwszym wyborem .


Aktualizacja: Kilka dodatkowych zasobów online, które są skierowane głównie do początkujących:

a jeśli z jakiegoś dziwnego powodu chcesz bawić się PHP na IIS zamiast Apache, dobrym miejscem startowym jest PHP Microsoftu na Windowsie . PHP na IIS działa i jest prawidłowym wyborem, szczególnie dla programistów .Net, ale naprawdę powinieneś wybrać Apache (i MySQL lub PostgreSQL zamiast SQLServer), aby uzyskać pełne doświadczenie PHP, a także upewnić się, że Twoje umiejętności są przenośne dla innych popularnych OS. Nie chcesz przegapić radości jaką jest mod_rewrite .


Osobista uwaga: w PHP jest wiele nienawiści, niektóre z nich są uzasadnione . Jeśli zdecydujesz się na to, musisz być bardzo krytyczny wobec różnych zasobów PHP, skryptów, bibliotek, które spotkasz po drodze, jest zbyt wiele badziewi i początkujący nie jest w stanie poznać różnicy. Ogromna popularność PHP może zostać przetłumaczona na bardzo dużą i pomocną społeczność, duże możliwości sprzedaży twoich umiejętności, miliony milionów blogów, ale może być również przetłumaczona na kilka tysięcy terabajtów gównianego kodu.

Yannis
źródło
2

Yannis ma wiele dobrych rzeczy do powiedzenia, ale czytam: Zbuduj własną stronę internetową opartą na bazie danych, wydanie czwarte , i było wypełnione wszystkim, co musiałem wiedzieć, aby rozpocząć właściwą drogę do rozwoju profesjonalnych aplikacji internetowych PHP.

Pracowałem także wyłącznie na platformie .NET, zanim zacząłem pracować z PHP. PHP jest o wiele łatwiejszy w obsłudze, ale ma pewne szczególne problemy podczas tworzenia aplikacji na dużą skalę, a ta książka zaczyna od tego.

Jednym z problemów było to, że PHP nie jest językiem zorientowanym obiektowo. Ma wiele funkcji w formie proceduralnej i obiektowej i zajmuje trochę czasu, aby się przyzwyczaić, pochodząc z języka, w którym wszystko jest zorganizowane w klasy i przestrzenie nazw.

Kolejnym było to, jak łatwo można pomieszać wszystko w PHP, co znacznie utrudnia. W .NET używane przez ciebie narzędzia, takie jak Visual Studio, prowadzą cię do ćwiczenia dobrych standardów kodowania, wykonując część pracy za Ciebie. Zwykle strona .aspx ma kod HTML i kod C # rozdzielone na dwa pliki.

Jeśli jesteś intensywnym użytkownikiem narzędzi .NET i wolisz pracować z kontrolkami ASP.NET, jeszcze innym problemem jest brak kontroli (GridView itp.) W PHP. Wiem, że istnieje wiele bibliotek / frameworków, które dają ci coś podobnego, ale nie są one dokładnie częścią podstawowego pakietu PHP.

Innym problemem dla mnie było to, w jaki sposób w PHP występuje intensywne użycie tablic i skrótów służących bardziej jako zbiory w .NET. Są wszędzie i dobrze byłoby przyzwyczaić się do faktu, że tablice to nie tylko uporządkowana lista tego samego typu obiektów / jednostek skalarnych. Mogą one służyć jako obiekty kolekcji do przechowywania różnego rodzaju rzeczy.

Mogę mówić bez końca, ale aby wspomnieć o jednej z głównych rzeczy, które uważam za bardzo specyficzne dla PHP (nie wiem, czy może to być również powszechne w innych językach), jest to, jak często używane są funkcje „włącz” (i powiązane) tak często. Mogę powiedzieć, że książka z Sitepoint może przyspieszyć wszystko.

tsega
źródło
W swojej odpowiedzi mam link do książek php Sitepoint, wszystkie są doskonałe. Czy mógłbyś nieco rozszerzyć swoją odpowiedź, aby poinformować nas o peculiar issues when developing large scale applicationszidentyfikowanych przez Ciebie danych? Ponieważ posiadasz tło .NET jako op, dobrze byłoby wiedzieć, co ludzie .net uważają za osobliwy w php.
yannis,
OK Yannis, jednym z problemów było dla mnie to, że PHP nie jest ściśle zorientowane obiektowo, ma wszystkie funkcje w formie proceduralnej i obiektowej i trochę czasu zajmuje przyzwyczajenie się do języka z tak zorganizowanego, nie tylko na klasy, ale wszystkie te przestrzenie nazw i tak dalej.
tsega 11.11.11
Hmmm, to ogólny problem, nie tylko when developing large scale applications. W każdym razie myślałem bardziej o zagadnieniach koncepcyjnych i podejściach, takich jak PHP w kwestii skalowania w zupełnie inny sposób. Coś w tym rodzaju. Mam bardzo małe doświadczenie z .Net, więc chciałbym dowiedzieć się, co ludzie .Net uważają za osobliwą pod względem koncepcyjnym, kiedy przychodzą do PHP. Ale oczywiście należy spodziewać się takich rzeczy jak fakt, że PHP jest wieloparadygmatyczne.
yannis
1
Pod względem podejścia większość programistów ASP.NET korzysta z niestandardowych elementów sterujących (komponentów - które są połączeniem elementów sterujących HTML z Javascriptem i kodem po stronie serwera) do opracowywania aplikacji „na dużą skalę” (intensywnie wykorzystujących dane). Wynika to głównie z faktu, że większość programistów ASP.NET przeszła na tworzenie stron internetowych z tworzenia aplikacji komputerowych przy użyciu prawie tych samych narzędzi. Dlatego większość osób poszukuje sposobów na przełożenie swoich już nabytych umiejętności pracy z niestandardowymi kontrolkami w celu dopasowania do tworzenia stron internetowych.
tsega 11.11.11
Bardzo dobrym pomysłem na zdobycie tej książki są Netbeans . Debugowanie PHP jest tak dobre, jak to możliwe.
tsega 11.11.11