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

Usunięta treść Dodana treść
Zyx (dyskusja | edycje)
Zyx (dyskusja | edycje)
Linia 112:
 
Zreorganizowałem trochę spis treści. Główna zmiana polega na przeniesieniu rozdziału ''Programowanie obiektowe'' na wcześniejsze miejsce oraz usunięciu nienapisanych jeszcze dalszych części. Ponadto na końcu każdego rozdziału będą znajdować się ćwiczenia. Najlepiej, aby na razie skupić się na dopracowaniu obecnej zawartości, a później myśleć, co i jak opisywać dalej (frameworki, inne biblioteki itd.) --[[Wikipedysta:Zyx|Zyx]] 12:36, 4 sty 2010 (CET)
 
== Spis treści - c.d. ==
 
Ponieważ rozdział o programowaniu obiektowym jest w końcu prawie gotowy, poniżej przedstawiam propozycję dalszych zmian w spisie treści. Celem ma być przede wszystkim omówienie języka i praktyk programistycznych. Jeżeli będą omawiane dodatkowe biblioteki, to w stopniu ''zapoznającym'', ponieważ o wielu z nich można napisać całkiem obszerne, oddzielne podręczniki. Z istotnych zmian w początkowych rozdziałach pojawi się jedynie "Studium przypadku: galeria zdjęć" w programowaniu obiektowym, która powinna pokazać, jak wykorzystać zdobytą wiedzę do budowy prostej galerii zdjęć.
 
Tymczasem po obiektówce zaczynamy od '''Zaawansowane programowanie''', w którym znajdą się:
 
# Przestrzenie nazw
# Domknięcia
# XDebug
# Wzorce projektowe
 
Następnie wchodzą bazy danych mniej więcej w obecnym kształcie z dodanym rozdziałem o ORM Doctrine i przebudowane '''Systemy szablonów'''.
 
# Czym jest system szablonów?
# Prosty edukacyjny system szablonów - ''oparty o język PHP''
# Wybrane systemy szablonów:
#* Savant
#* Open Power Template
#* PHPTAL
# Ćwiczenia
 
Zasady techniczne doboru bibliotek do podręcznika (by nie było 500 pozycji, z czego jedynie 4-5 ciekawych) podaję niżej. Wybrałem te trzy systemy, aby pokazać dwa zasadnicze podejścia do systemów szablonów: z językiem PHP oraz z dedykowanym językiem. W tym drugim przypadku uważam, że marnowaniem miejsca jest omawianie systemów, które stać co najwyżej na reimplementowanie PHP, stąd odpadają wszelkie systemy "ify, pętle i bawcie się". Zrezygnowałem także z omawiania Smarty'ego ze względu na długi okres zastoju i ogólny anachronizm, który przekreśla 90% rzeczy, które do tej pory były w podręczniku powiedziane (nawet w wersji 3). Uzasadnienie konkretnych wyborów: Savant - przyzwoity system bazujący na szablonach PHP; Open Power Template - popularny w Polsce, wykorzystanie w projektach komercyjnych, prawdopodobnie najbardziej zaawansowany system szablonów świata; PHPTAL - również popularny w Polsce i również z nowoczesnym językiem szablonów.
 
Kolejnym elementem będą '''Frameworki''':
 
# Czym jest framework?
# Wzorce złożone: MVC, MVP i pochodne
# Prosty framework edukacyjny
# Wybrane frameworki:
#* Yii Framework
#* Symfony Framework
#* Zend Framework
# Ćwiczenia
# Studium przypadku
 
Przy tym rozdziale chcę uniknąć sytuacji, gdy pojawią się tu opisy 129283 frameworków. Powinny być one tak dobrane, by pogodzić popularność z prostotą. Dlatego na pierwszym miejscu dałem Yii, który moim zdaniem powinien być w miarę prosty w zrozumieniu dla początkujących, a na końcu Zend Framework jedynie ze względu na popularność, ponieważ początkującym na pewno bym go odradzał. Symfony ze względu na popularność i wykorzystanie Doctrine, który ma być omówiony wcześniej. Rozdziały powinny być skrótowe i pokazywać tylko sposób budowy najprostszej aplikacji, ponieważ wychodzę z założenia, że do bardziej szczegółowych opisów powinny mieć własny podręcznik.
 
Następnie proponuję rozdział '''Bezpieczeństwo''':
 
# Techniki ataków - ''połączenie istniejących rozdziałów o SQL Injection, HTML injection, PHP injection itd.''
# Zabezpieczanie sesji - rozdział opisujący, jak zabezpieczyć sesje przed atakiem.
# Bezpieczne zarządzanie danymi - rozdział opisujący, jak zarządzać danymi przetwarzanymi przez system, aby informacje potencjalnie niebezpieczne nie wyciekały z niego''
# Formularze - ''techniki zabezpieczania formularzy''
# Obrona przed botami - ''omówienie mechanizmów captcha i baz danych spamerów''
# Mechanizmy uwierzytelniania - ''jak bezpiecznie uwierzytelniać użytkowników i przechowywać ich dane''
# Mechanizmy kontroli uprawnień - ''zasady działania systemu kontroli uprawnień''
# Połączenia szyfrowane - ''tworzenie skryptów korzystających z połączeń szyfrowanych''
 
Ostatni rozdział to '''Dobre praktyki''':
 
# Standardy kodowania - ''czyli dlaczego styl pisania jest ważny''
# Dokumentowanie kodu
# Testowanie skryptów - ''PHPUnit''
 
Zasady doboru omawianych skryptów:
 
# Przynajmniej rok aktywnego rozwoju
# Dostępne wydanie stabilne
# Obecność kompletnej dokumentacji
# Wsparcie dla PHP 5.2/PHP 5.3
# Obecność infrastruktury do zarządzania projektem (System kontroli wersji, Bugtracker, forum dyskusyjne dla użytkowników)
 
Czekam na uwagi i opinie. --[[Wikipedysta:Zyx|Zyx]] ([[Dyskusja Wikipedysty:Zyx|dyskusja]]) 08:29, 7 maj 2010 (CEST)
Powrót do strony „PHP”.