Dyskusja:PHP: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Nie podano opisu zmian
Zyx (dyskusja | edycje)
Linia 57:
 
::: [względem oryginału] Jak dla mnie: 1. bazy danych - oddzielić treść ogólną od MySQL. PDO jest nie tylko dla MySQL. PHP5 zawiera SQLite i warto by ta baza również została *wyraźnie* opisana. Inne jak postgres czy firebird po artykule (PDO + stare api). "Systemy szablonów" - co to ma do nauki samego języka ? nie jest to element składni. Jak dla mnie to już części aplikacji i powinno to być w części opisującej aplikacje i ich tworzenie. "Dobra aplikacja" - pomieszanie "teorii" jak np. MVC wzorce projektowe z "elementami" PHP5. "Silnik", "Kontrola formularzy" itp. - zamiast tworzyć coś dziwnego lepiej zająć się albo ZendFrameworkiem albo CodeI Igniterem - prostymi, lecz funkcjonalnymi frameworkami MVC. "Filtry" - chodzi o te filtry z PHP 5.2 ? ludzie od bezpieczeństwa solidnie na nie bluzgają, od strony koncepcji i funkcjonalności http://blog.php-security.org/ ;) "Gdzie trzymać konfigurację? " - to jest dość dziwny artykuł, stosuje jakieś wymysły typu "ConfigMagik", temat dobry, treść już nie ;) Ja bym ten dział "Dobra aplikacja" trochę przebudował. Jedno to frameworki, wzorce projektowe itp, drugie to gotowe skrypty - opisać "co to" CMS, Forum, wiki, na jakiej zasadzie działają, wymienić przykładowe, trzecie - różne komponenty aplikacji i frameworków jak wspomniane systemy szablonów, PECL, PEAR i inne biblioteki w PHP. W tym dziale można też dać bardziej kompletne "studia przypadków" pokazujące proste skrypty wiki czy np. forum (struktura tabeli, logika działania itp.) "Standard PHP Library", art 2 i 3 - pokrywa się z iteratorami. "Instalacja" - jedna droga to "gotowiec" jak XAMPP (bardzo dobry), druga dla odważnych - to co jest czyli instalacja samodzielna. W przypadku Linuksa nie dawać opisów ręcznej kompilacji, gdyż 99% ma odpowiednie pakiety - dawać linki do artykułów w sieci "LAMP w dystrybucji X" :) lub samemu opisać. Samodzielna instalacja wszystkiego to w przypadku początkującego szybka droga to jego paniki i załamania ;) "Formularze" - dlaczego tam jest opisane $_SERVER ? :) Ogólnie mam takie zastrzeżenia że ten podręcznik to kilka grupek artykułów, z których trudno się uczyć bo nie tworzą logicznego ciągu. [[Wikipedysta:Riklaunim|Riklaunim]]
:::: Kiedyś był taki 700-stronicowy podręcznik ''Turbo Pascal 5.5'' Andrzeja Marciniaka napisany właśnie w myśl idei "ułóżmy wszystko tematycznie, a nie logicznie". Skoro znałem Pascala, było to dla mnie pomocne, ponieważ mogłem łatwo odnaleźć potrzebne mi informacje. Ale kiedy przychodziło się coś z tego nauczyć zupełnie nowego, to powodzenia. Szlag człowieka może trafić, bo wszędzie pełno suchych opisów, teoretyzowania i zastanawiania się, na jaką cholerę mi ''typ obiektowy'', skoro nawet nie wiem, do czego to wykorzystać? Ale jest rozdział zbiorczy ''Typy'', więc tam się to musiało znaleźć. Tyle że nauczyć się z tego podręcznika Pascala od zera to trzeba mieć było kosmiczne samozaparcie. Ten podręcznik właśnie TERAZ jest przeznaczony do czytania go rozdział po rozdziale. Naprawdę, nie mam zielonego pojęcia, skąd wywnioskowałeś, że w obecnym kształcie jest on zbiorem artykułów, kiedy zdecydowaną większość pisałem chronologicznie, odwołując się do tego, co już czytelnik powinien poznać, a w przyszłość wybiegając sporadycznie i zawsze ze stosownym komentarzem. Cały układ, jaki teraz widzisz i na bazie którego chcę podręcznik oprzeć, jest w pełni przemyślany pod względem kolejności serwowania określonych tematów. To nic, że wychodzi to trochę nietematycznie, że szablony są omawiane gdzie indziej, a pozostałe biblioteki napisane w PHP gdzie indziej. Ale o to chodzi, jeśli chcesz by nowicjuszowi po lekturze coś z tego zostało. Nie twierdzę, że jest idealnie, bo w sporej ilości rozdziałów można by głębiej rozwinąć integrację z tym, czego już się programista nauczył (i później prawdopodobnie właśnie tym się będziemy zajmować), o studiach przypadku również masz rację, że powinno być (i będzie) ich więcej (tyle że nie zebranych w jednym miejscu, a porozrzucanych). Natomiast teraz dokładny opis, dlaczego rozdziały są ułożone tak, a nie inaczej:
 
::::Najpierw oczywiście omawia się instalację i podstawową składnię języka, przy okazji z rozdziałami dotyczącymi błędów i korzystania z dokumentacji. Aby wszystko utrwalić, piszemy księgę gości, poznając przy tym trochę funkcji. Dalej w '''Rozmaitościach''' jest omówienie różnych zagadnień. Skoro jesteśmy na świeżo, zaczynamy od poszerzenia informacji o przetwarzaniu tekstu, a następnie uczymy się podstaw wyrażeń regularnych. Następnie idzie protokół HTTP i sesje, na końcu obsługa plików i internacjonalizacja (w sumie ten tekst mógłby być równie dobrze w innym miejscu), czyli praktycznie rozszerzyliśmy wszystko, co poznaliśmy pisząc księgę gości, z nawiązką. Teraz widzę, że rozdział "Obsługa XML" tutaj nie wejdzie, ponieważ programista jeszcze obiektówki nie zna. Kolejne trzy części mają stworzyć podstawy do rozdziału ''Dobra aplikacja''. Najpierw poznajemy bazy danych. Piszesz: ''bazy danych - oddzielić treść ogólną od MySQL'' - i jak zamierzasz to wtedy zrozumiale omówić? Takie rozkładanie wszystkiego na czynniki pierwsze jest dobre dla kogoś, kto już ma o tym pojęcie, a my piszemy ten podręcznik nie dla siebie, lecz dla kogoś, kto formalnie dopiero zaczyna. Nie można go tak rzucić, że najpierw "omówimy ogólnie bazy danych", cokolwiek by to znaczyło, a później będziemy szczegółowo: MySQL, PostgreSQL itd. Na wstępie takie pokazanie, jak co się z czym wiąże, jest '''niezbędne'''. MySQL jest najpopularniejszy, więc dlatego poznajemy najpierw na podstawie tej bazy język SQL (tylko niezbędne rzeczy, ponieważ formalnie do SQL'a ma być osobny podręcznik), a później uczymy się z nią komunikować, bo przecież do tego wszystko dąży. Najpierw omówione jest PDO, ponieważ ja doskonale wiem, jak ludzie podchodzą do czegoś, co jest związane z obiektami. Stwierdziliby, że na to przyjdzie czas później i dalej będą pisać ''$result = mysql_query('...') or die('Błąd w '.mysql_error());'' Dlatego celowo jest najpierw PDO (zresztą w treści jest wyjaśnione, dlaczego PDO jest rewolucją w stosunku do tego, co było kiedyś), a później ''skrótowo'' stary sposób komunikacji. I dopiero jak sobie czytelnik oswoi z jedną bazą, można pokazać mu więcej, omawiając je mniej lub trochę bardziej szczegółowo, ze szczególnym naciskiem oczywiście na PDO, by nikogo nie korciło bez potrzeby używać starych funkcji :). Później idziemy za ciosem: nauczyliśmy się rzeczy przydatnych przy omawianiu modelu, pora nauczyć się rzeczy przydatnych przy omawianiu widoku, czyli systemów szablonów (nawiasem mówiąc nie wyobrażam sobie omawiania widoków w MVC, kiedy szablony omawiane są 10 rozdziałów dalej). Dokładnie, tu nie chodzi o to, że to są biblioteki napisane w PHP i powinny (lub nie) być omówione razem z innymi, tylko zwyczajnie w moim zamierzeniu informacje z tego rozdziału mają mi być potrzebne dalej. Nawet do frameworków ten rozdział się przyda. Później obiektówka. Dlaczego pełne omówienie jest dopiero w tym miejscu, już tłumaczę. Po prostu omawianie obiektówki na sucho to całkowicie poroniony pomysł i ewentualnie kuracja dla masochistów. Właśnie tak to zostało w książce Marciniaka zrobione, a ja miałem nieszczęście się w ten sposób uczyć OOP. Ideałem byłoby wprowadzanie tego po kawałku, czyli przy bazach danych np. podstawy OOP (tak, jak teraz), przy systemach szablonów dziedziczenie i konstruktory, inne metody magiczne gdzieś później itd. Zamiast tego, skoro już później lecimy to za jednym zamachem, starać się będę umieścić tam dużo przykładów praktycznych, jak np. opis systemu konfiguracji w [[PHP/Klasy i obiekty]] czy tematyka baz danych i systemów szablonów. Tak przygotowani możemy dopiero wziąć się za wykorzystanie wiedzy w tworzeniu struktury aplikacji. Rozdział ''Dobra aplikacja'' czy ''Tworzenie aplikacji internetowych'' nie ma za zadanie objaśniać wyłącznie samej struktury MVC i ewentualnie wzorców projektowych, a zwrócić uwagę na wszystkie aspekty składające się na stronę WWW i rozszerzyć materiał w oparciu o najnowsze wiadomości. Spis treści obecnie nie jest jeszcze najszczęśliwszy i będzie zmieniany, ale ukazuje już mój zamiar. MVC i wzorce projektowe to nie wszystko - naprawdę powodzenia, jeśli ktoś się tylko z tym zabiera za budowę "profesjonalnej aplikacji". Przecież to stworzy tylko absolutny szkielet, który na dobrą sprawę do niczego poza osobistą satysfakcją się w praktyce nie przyda. Strona internetowa to przecież także systemy ACL, rejestrowania zdarzeń, przenośność, sesje, konfiguracja itd. Można nawet napisać na potrzeby tej części jakiś prosty framework i go dokładnie omówić kawałek po kawałku, przy okazji pokazując, jak rozbudowane mechanizmy stoją za wieloma stronami WWW. I tu przydadzą nam się m.in. szablony, które tak bardzo pragniesz wykosić gdzieś w diabły :). Po takim przygotowaniu, gdy sobie poeksperymentuje już z tym przykładowym frameworkiem, można wejść do omawiania gotowych. '''I dopiero teraz w zasadzie można już sobie pozwolić na odejście od formy stricte podręcznikowej i tematyczne menu'''. (tja, chyba się trochę rozpisałem :D) --[[Wikipedysta:Zyx|Zyx]] 12:56, 31 maj 2007 (CEST)
 
== Edytory PHP ==
Powrót do strony „PHP”.