Wzorzec MVC w PHP dla profesjonalistów
- Autor:
- Chris Pitt
- Promocja Przejdź
- Wydawnictwo:
- Helion
- Ocena:
- 4.0/6 Opinie: 2
- Stron:
- 432
- Druk:
- oprawa miękka
- 3w1 w pakiecie:
-
PDFePubMobi
Opis książki: Wzorzec MVC w PHP dla profesjonalistów
W dobie aplikacji internetowych wzorzec MVC jest jednym z najpowszechniej używanych. Pozwala on utrzymać aplikację w ryzach i sprawić, że jej konserwacja nie nastręcza zbyt wielu problemów. U podstaw MVC leży podział aplikacji na trzy warstwy — modelu, widoku i kontrolera (ang. Model View Controller). Wzorzec ten jest obecnie wykorzystywany praktycznie w każdym języku programowania.
Dzięki tej książce zrozumiesz, jak z niego korzystać w aplikacji pisanej przy użyciu języka PHP. W trakcie lektury poznasz jego zalety oraz zobaczysz, jak zacząć tworzenie aplikacji opartej o MVC. W kolejnych rozdziałach zagłębisz się w szczegóły konfigurowania, trasowania, tworzenia modeli oraz wykorzystywania baz danych. Ponadto zdobędziesz dogłębną wiedzę na temat testowania aplikacji — to klucz do tworzenia niezawodnych systemów. W tej książce znajdziesz również opis popularnych szkieletów wspierających MVC: Zend Framework i CakePHP to tylko niektóre z nich. Książka ta jest obowiązkową lekturą dla każdego programisty aplikacji internetowych korzystającego z języka PHP.
Dzięki tej książce:
- poznasz zalety wzorca MVC
- skutecznie przetestujesz Twoją aplikację
- zaznajomisz się z dostępnymi szkieletami aplikacji wspierającymi MVC
Twórz elastyczne i niezawodne aplikacje internetowe!
To publikacja skierowana do osób, które znają podstawy języka PHP, ale nie miały jeszcze do czynienia z bardziej zaawansowanymi technikami wytwarzania oprogramowania.
Warto dodać, że każdy rozdział rozpoczyna się od przedstawienia jego celu. Na końcu rozdziałów znajdziemy krótkie podsumowania zawierające pytania oraz dodatkowe ćwiczenia.
To świetne źródło wiedzy dla każdego programisty, który chce udoskonalić swoje umiejętności w zakresie tworzenia architektury aplikacji oraz programowania obiektowego. Książka jest napisana w bardzo przemyślany sposób, autor wyczerpująco omawia zagadnienia, przedstawia najlepsze praktyki i rozwiązania. Jeżeli chcesz być lepszym programistą, to pozycja obowiązkowa w Twojej domowej biblioteczce.
Adrian Piętka, senior software developer
Future Processing
Podobne produkty
-
Biblia copywritingu Biblia copywritingu
Dariusz Puzyrkiewicz
-
Vue.js 2. Wprowadzenie dla profesjonalistów Vue.js 2. Wprowadzenie dla profesjonalistów
Adam Freeman
-
JavaScript i jQuery. Interaktywne strony WWW dl... JavaScript i jQuery. Interaktywne strony WWW dla każdego. Podręcznik Front-End Developera
Jon Duckett
-
HTML i CSS. Zaprojektuj i zbuduj witrynę WWW. P... HTML i CSS. Zaprojektuj i zbuduj witrynę WWW. Podręcznik Front-End Developera
Jon Duckett
-
WordPress 5 dla początkujących WordPress 5 dla początkujących
Agnieszka Ciborowska, Jarosław Lipiński
-
Uczenie maszynowe z językiem JavaScript. Rozwią... Uczenie maszynowe z językiem JavaScript. Rozwiązywanie złożonych problemów
Burak Kanber
Ebooka przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook i innych
-
systemach Windows, MacOS i innych
-
systemach Windows, Android, iOS, HarmonyOS
-
na dowolnych urządzeniach i aplikacjach obsługujących formaty: PDF, EPub, Mobi
Masz pytania? Zajrzyj do zakładki Pomoc »
Audiobooka posłuchasz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolonych urządzeniach i aplikacjach obsługujących format MP3 (pliki spakowane w ZIP)
Masz pytania? Zajrzyj do zakładki Pomoc »
Kurs Video zobaczysz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolonych urządzeniach i aplikacjach obsługujących format MP4 (pliki spakowane w ZIP)
Recenzje książki: Wzorzec MVC w PHP dla profesjonalistów (3)
-
yarpo.pl 2014-02-13
Wzorzec MVC na dobre zagościł we wszelakich projektach informatycznych. Pozwala na rozsądny podział na warstwy i oddzielenie logiki od danych, a także kodu robiącego cokolwiek "na serwerze" od kodu wyświetlającego np. stronę internetowa.
Chris Pitt bardzo starannie opisuje kolejno, co trzeba napisać (i w tracie książki sam pisze pokazując czytelnikowi wszystkie kroki), aby stworzyć własny framework PHP implementujący wzorzec MVC.
W książce spodobało mi się, że można mimochodem nauczyć się kilku ciekawych sztuczek języka i dobrych praktyk, choćby testy jednostkowe (ang. unit tests) (choć trochę na siłę pisany własny framework dla nich, lepiej było użyć PHP_Unit), wzorce projektowe (autor omówił także kilka innych bardzo przydatnych wzorców i pokazał, jak ich używać w praktyce) . Nie jestem przekonany, czy wszystko, co zaprezentował Chris Pitt jest słuszne, ale aby móc odrzucić jakiś fragment technologii należy go najpierw dobrze poznać, aby upewnić się, że na pewno nie zasługuje na wykorzystanie w naszych projektach. Ja chociażby nie lubię w PHP "magii" - to w końcu nie Harry Potter, szczególnie, że ostatecznie wszystkie `__call`, `__set` itp. powodują podobnie wiele problemów, ile rozwiązują. Mimo wszystko podoba mi się w większości kod tworzony przez autora. Na pewno nie jest naszpikowany antywzorcami, które czasem można spotkać w niektórych książkach.
Jeśli ktoś szuka książki, która nauczy go jak napisać swój własny MVC, to może lepiej poszukać książki "Dlaczego nie powinienem wynajdować koła od nowa". Aktualnie na rynku jest bardzo wiele istniejących frameworków i któryś z pewnością będzie wystarczający. Jeśli natomiast bardzo upierasz się, aby napisać własny MVC - to ta książka z pewnością pomoże. Ja proponowałbym jednak traktować ją jako dobry zbiór porad programistycznych, bez aż tak dużego nacisku na MVC. A samo napisanie frameworka traktowałbym jako ciekawostkę i zabawę z kodem, a nie wyznacznik pozycji w środowisku developerów.
Za minus książki - jak zawsze - można uznać fakt, że jest już (w świecie technologii) dość wiekowa. Choćby jeden z trzech opisanych na końcu frameworków - Zend - jest w wersjach bliskiej archiwalnych, stąd te rozdziały można potraktować jako ciekawostkę i "sensacje początków 2010's" niż wyznacznik nowych trendów w półświadku PHP ;)
Ocena
Książka jest dobra. Nie zwaliła mnie z nóg, ale w kilku miejscach potrafiła zaciekawić i nauczyła czegoś nowego. Jeśli chciałbyś poprawić swój warsztat programistyczny i programujesz w PHP, to jest to dobra pozycja dla Ciebie. -
future-processing.pl marcin Wójcik
Książka „Pro PHP MVC” może być ciekawą pozycją dla osób, które mają już jakieś doświadczenie z językiem PHP i może nawet zetknęły się z jednym z wielu dostępnych w sieci szkieletów (frameworków) opartych o wzorzec MVC. Na pewno nie jest to książka dla osób, które chcą nauczyć się podstaw programowania – zakłada ona pewną początkową wiedzę, którą czytelnik musi posiadać, aby móc zrozumieć prezentowane zagadnienia. Aby książka nie była nudna, autor obrał sobie za cel stworzenie prostej strony społecznościowej i w tym celu krok po kroku buduje własny szkielet, przy okazji pokazując zastosowanie dla najczęściej używanych w PHP wzorców projektowych. Na każdym etapie nie brakuje wyjaśnień, jak kolejne elementy szkieletu aplikacji wpasowują się we wzorzec MVC, a na samym końcu Autor pokazał jak uzyskać taki sam efekt z użyciem trzech wybranych przez niego szkieletów: CodeIgniter, Zend Framework oraz CakePHP. Każdy rozdział ma na początku jasno opisane cele, a na końcu sprawdza wiedzę w postaci pytań i odpowiedzi.
„Pro PHP MVC” absolutnie nie powinna być traktowana jako przepis na idealny framework – należy patrzeć na nią jak na przykład implementacji koncepcji wzorca MVC w PHP z użyciem programowania zorientowanego obiektowo. Tworzony kod oparty jest na PHP 5.3 i wykorzystywane są przestrzenie nazw, automatyczne ładowanie klas oraz wzorce projektowe, takie jak Singleton, Rejestr, Fabryka, Fasada czy Obserwator. Zaprezentowano również w jaki sposób pisać testy jednostkowe dla tworzonego kodu. Minusem może być brak stosowania się do standardów kodowania PSR oraz nadmierne użycie funkcji magicznych w konstruowanym szkielecie, a bardziej doświadczeni programiści, którzy mają już swoje ulubione frameworki i wyrobione zdanie na temat MVC w PHP, mogą nie popierać pewnych technik i podejść zaprezentowanych w tej książce. Autor jednak wielokrotnie podkreśla, że całość powinna mieć głównie zastosowanie prezentacyjne. Czytelnik nie będzie narzekał na brak przykładowego kodu – każda linijka pisanego tworzonej aplikacji została umieszczona w treści, przez co książka nie należy do najmniejszych (ponad 400 stron lektury). Czasami tekst może wydawać się zagmatwany, przez co można poczuć zagubienie – dobrze jest wtedy wrócić do kodu i przeanalizować go jeszcze raz, a wtedy wyjaśnienia będą miały większy sens.
Podsumowując – ta książka nie nauczy Cię programować od podstaw. Ta książka jest dla Ciebie, jeżeli masz już pewną wiedzę i chcesz dowiedzieć się czym jest wzorzec MVC oraz jak zbudowane są oparte o niego popularne szkielety aplikacji. -
future-processing.pl Adrian Piętka
Książka „Pro PHP MVC”, której autorem jest Chris Pitt przedstawia w głównej mierze dobre praktyki tworzenia dopracowanej i przemyślanej architektury aplikacji internetowej. Publikacja ta skierowana jest dla osób znających podstawy języka PHP, ale nie mających jeszcze do czynienia z bardziej zaawansowanymi technikami wytwarzania oprogramowania. Autor na samym początku skupił się na omówieniu wzorca architektonicznego MVC, wybranych możliwościach programowania obiektowego w PHP oraz przestawieniu jednych z najbardziej popularnych i stosowanych wzorców projektowych jakimi są singleton, rejestr, fabryka oraz obserwator. Jako jedna z niewielu książek prezentuje tworzenie od podstaw własnego szkieletu aplikacji – frameworka. Przedstawiono pełną implementację jego najważniejszych klas wraz z przykładowymi testami jednostkowymi. Omówiono między innymi klasy realizujące takie zadania jak obsługa bazy danych, szablonów, trasowania, konfiguracji czy buforowania. Oczywiście to nie koniec, nasz pierwszy zbudowany od zera szkielet wykorzystamy podczas tworzenia przykładowego serwisu społecznościowego. Przedstawiono implementację takich modułów jak rejestracja i logowanie użytkownika, udostępnianie treści, ustawianie zdjęcia profilowego oraz część administracyjną. Każdy z wymienionych elementów zawiera pełen listing kodu, a jego najważniejsze fragmenty zostały dokładnie opisane. W dalszej części książki zostają omówione trzy bardzo popularne gotowe frameworki – CodeIgniter, Zend Framework oraz CakePHP. Przedstawiono ich wady, zalety oraz poszczególne różnice w implementacjach. Rozdziały poświęcone tym szkieletom są dobrym wstępem do zapoznania się z ich architekturą. Dzięki temu w szybki i łatwy sposób można przystąpić do tworzenia własnych aplikacji opierając się o jedno z trzech gotowych rozwiązań. Warto dodać, że każdy z przedstawionych w książce rozdziałów rozpoczyna się od przedstawienia jego celu. Dodatkowo na jego końcu znajdziemy krótkie podsumowanie zawierające pytania oraz dodatkowe ćwiczenia, które może wykonać czytelnik. Pozycja ta jest dobrym uzupełnieniem wiedzy każdego programisty chcącego udoskonalić swoje umiejętności w kwestii tworzenia architektury aplikacji oraz programowania obiektowego. Napisana jest w bardzo przemyślany sposób, a autor niejednokrotnie wyczerpuje omawiany temat. Przedstawia najlepsze praktyki i rozwiązania. Jeżeli chcesz stać się lepszym programistą, to ta książka jest pozycją obowiązkową w Twojej domowej biblioteczce. Podsumowując, z tej książki dowiesz się: • Czym jest i jak korzystać z wzorca MVC • Jak napisać od podstaw własny szkielet aplikacji – framework • Czym są testy jednostkowe, po co się je stosuje oraz jak je stworzyć • Podstaw najpopularniejszych gotowych frameworków – CodeIgniter, Zend Framework oraz CakePHP
Szczegóły książki
- Tytuł oryginału:
- Pro PHP MVC (Professional Apress)
- Tłumaczenie:
- Łukasz Piwko
- ISBN Książki drukowanej:
- 978-83-246-7015-4, 9788324670154
- Data wydania książki drukowanej:
- 2013-07-29
- ISBN Ebooka:
- 978-83-246-7018-5, 9788324670185
- Data wydania ebooka:
-
2013-08-14
Data wydania ebooka często jest dniem wprowadzenia tytułu do sprzedaży i może nie być równoznaczna z datą wydania książki papierowej. Dodatkowe informacje możesz znaleźć w darmowym fragmencie. Jeśli masz wątpliwości skontaktuj się z nami sklep@helion.pl.
- Format:
- 168x237
- Numer z katalogu:
- 14214
- Rozmiar pliku Pdf:
- 5.1MB
- Rozmiar pliku ePub:
- 6.3MB
- Rozmiar pliku Mobi:
- 14.7MB
- Pobierz przykładowy rozdział PDF
- Przykłady na ftp
Ebook zawiera materiały dodatkowe, które możesz pobrać z serwera FTP - link znajdziesz na stronie redakcyjnej.
- Erraty / Zgłoś erratę
- Kategorie:
Technologie webowe » PHP - Programowanie
Spis treści książki
- Czym jest MVC? (21)
- Zalety wzorca MVC (22)
- Popularne szkielety MVC (23)
- CodeIgniter (23)
- Zend Framework (24)
- CakePHP (24)
- Wzorce projektowe (24)
- Singleton (25)
- Rejestr (25)
- Fabryka (26)
- Obserwator (26)
- Tworzenie własnego szkieletu (27)
- Cele (27)
- Cele (29)
- Automatyczne ładowanie (29)
- Przestrzenie nazw (30)
- Leniwe ładowanie (31)
- Wyjątki (32)
- Metody typów (33)
- Metadane (35)
- Pytania (42)
- Odpowiedzi (43)
- Ćwiczenia (43)
- Cele (45)
- Metody pobierające i ustawiające (45)
- Magiczne metody (48)
- Introspekcja (49)
- Przezroczyste metody dostępowe (52)
- Pytania (56)
- Odpowiedzi (56)
- Ćwiczenia (56)
- Cele (57)
- Tablice asocjacyjne (57)
- Pliki INI (58)
- Pytania (64)
- Odpowiedzi (64)
- Ćwiczenia (64)
- Cele (65)
- Wąskie gardła wydajności (65)
- Kod (66)
- Pytania (72)
- Odpowiedzi (72)
- Ćwiczenia (72)
- Cele (73)
- Singleton (73)
- Rejestr (75)
- Pytania (77)
- Odpowiedzi (77)
- Ćwiczenia (77)
- Cele (79)
- Definiowanie tras (79)
- Klasy tras (80)
- Klasa Router (82)
- Pytania (90)
- Odpowiedzi (90)
- Ćwiczenia (90)
- Cele (91)
- Idea (91)
- Alternatywne rozwiązania (92)
- Implementacja (92)
- Korzyści (107)
- Pytania (115)
- Odpowiedzi (115)
- Ćwiczenia (115)
- Cele (117)
- Implementacja (117)
- Konektory (119)
- Zapytania (123)
- Pytania (141)
- Odpowiedzi (141)
- Ćwiczenia (141)
- Cele (143)
- Idea (143)
- Implementacja (144)
- Budowanie kodu SQL (146)
- Modyfikowanie rekordów (155)
- Nie rozdrabniajmy się! (167)
- Pytania (167)
- Odpowiedzi (167)
- Ćwiczenia (168)
- Cele (169)
- Testowanie jednostkowe (169)
- Klasa testowa (170)
- Bufor (171)
- Pokrycie (171)
- Testy (172)
- Konfiguracja (174)
- Pokrycie (174)
- Testy (175)
- Baza danych (175)
- Pokrycie (176)
- Testy (176)
- Model (183)
- Pokrycie (183)
- Testy (184)
- Szablon (186)
- Pokrycie (186)
- Testy (186)
- A niech to! (189)
- Pytania (189)
- Odpowiedzi (189)
- Ćwiczenia (189)
- Cele (191)
- Baza danych (192)
- Foldery (192)
- Pytania (193)
- Odpowiedzi (193)
- Cele (195)
- Kiedy plik nie jest plikiem? (195)
- Przepisywanie adresów URL (196)
- Plik index.php (197)
- Konfiguracja (198)
- Baza danych (199)
- Bufor (200)
- Kontroler (201)
- Widoki (201)
- Renderowanie (203)
- Pytania (208)
- Odpowiedzi (209)
- Ćwiczenia (209)
- Cele (211)
- Biblioteki wspólne (211)
- Model użytkownika (212)
- Rejestracja (215)
- Sesje (218)
- Logowanie (221)
- Pytania (227)
- Odpowiedzi (227)
- Ćwiczenia (228)
- Cele (229)
- Rozszerzanie implementacji (230)
- Żądania adresów URL (232)
- Wyszukiwanie (239)
- Pytania (245)
- Odpowiedzi (245)
- Ćwiczenia (245)
- Cele (247)
- Sprawdzanie danych (247)
- Walidacja na zawołanie (252)
- Ustawienia (253)
- Pytania (256)
- Odpowiedzi (256)
- Ćwiczenia (257)
- Cele (259)
- Strony błędów (259)
- Znajomości (263)
- Udostępnianie treści (268)
- Pytania (272)
- Odpowiedzi (272)
- Ćwiczenia (272)
- Cele (273)
- Obsługa wysyłania plików (273)
- Zdjęcia użytkowników (274)
- Wyświetlanie zdjęć w profilu (278)
- Pytania (279)
- Odpowiedzi (279)
- Ćwiczenia (279)
- Cele (281)
- Foxy (281)
- Własne czcionki w CSS (281)
- Budowa pośrednika (282)
- Zastosowanie klasy Proxy (286)
- Imagine (288)
- Obserwator (290)
- Synchroniczność (290)
- Kod (292)
- Zdarzenia (293)
- Wtyczki (296)
- Pytania (299)
- Odpowiedzi (299)
- Ćwiczenia (300)
- Cele (301)
- Czym jest CMS? (301)
- Administratorzy (301)
- Logowanie (302)
- Użytkownicy (307)
- Zdjęcia (312)
- Pytania (314)
- Odpowiedzi (314)
- Ćwiczenia (314)
- Cele (315)
- Pytania (318)
- Odpowiedzi (318)
- Ćwiczenia (318)
- Cele (319)
- Dlaczego CodeIgniter? (319)
- Dlaczego nie CodeIgniter? (320)
- Przepisywanie adresów URL (320)
- Trasy (321)
- Pytania (321)
- Odpowiedzi (322)
- Ćwiczenia (322)
- Cele (323)
- Różnice (323)
- Modele (323)
- Kontrolery (327)
- Pytania (335)
- Odpowiedzi (335)
- Ćwiczenia (336)
- Cele (337)
- Wysyłanie plików (337)
- Biblioteki zewnętrzne (342)
- Rozszerzanie rdzenia (345)
- Pytania (346)
- Odpowiedzi (346)
- Ćwiczenia (346)
- Cele (347)
- Narzędzia (347)
- Inne możliwości (348)
- Pytania (348)
- Odpowiedzi (348)
- Ćwiczenia (348)
- Cele (349)
- Dlaczego Zend Framework? (349)
- Dlaczego nie Zend Framework? (350)
- Wstępna konfiguracja (350)
- Trasy (350)
- Pytania (351)
- Odpowiedzi (352)
- Ćwiczenia (352)
- Cele (353)
- Różnice (353)
- Modele (353)
- Kontrolery (359)
- Pytania (367)
- Odpowiedzi (367)
- Ćwiczenia (367)
- Cele (369)
- Wysyłanie plików (369)
- Biblioteki zewnętrzne (374)
- Pytania (376)
- Odpowiedzi (376)
- Ćwiczenia (376)
- Cele (377)
- Instalowanie PEAR (377)
- Windows (377)
- Unix/Linux/BSD (378)
- Mac OS X (378)
- Instalowanie PHPUnit (378)
- Uruchamianie testów (378)
- Dodawanie testów (378)
- Pytania (380)
- Odpowiedzi (380)
- Cele (381)
- Dlaczego CakePHP? (381)
- Dlaczego nie CakePHP? (382)
- Rozpoczynanie pracy (382)
- Trasy (382)
- Pytania (383)
- Odpowiedzi (383)
- Ćwiczenia (383)
- Cele (385)
- Modele (385)
- Kontrolery (386)
- Czynności końcowe (388)
- Pytania (392)
- Odpowiedzi (392)
- Ćwiczenia (392)
- Cele (393)
- Wysyłanie plików (393)
- Zewnętrzne biblioteki (396)
- Wtyczki (396)
- Katalog Vendor (397)
- Pytania (398)
- Odpowiedzi (398)
- Ćwiczenia (398)
- Cele (399)
- Testowanie (399)
- Pytania (401)
- Odpowiedzi (401)
- Ćwiczenia (401)
- Cele (403)
- Windows (403)
- Krok 1. (403)
- Krok 2. (406)
- Krok 3. (408)
- Linux (411)
- Krok 1. (411)
- Krok 2. (411)
- Krok 3. (414)
- Krok 4. (414)
- Mac OS X (415)
- Krok 1. (415)
- Krok 2. (416)
- Krok 3. (418)
- Testowanie (419)
O autorze (13)
O korektorze merytorycznym (15)
Podziękowania (17)
Wprowadzenie (19)
Rozdział 1. Wprowadzenie do MVC (21)
Rozdział 2. Podstawy (29)
Rozdział 3. Klasa bazowa (45)
Rozdział 4. Konfiguracja (57)
Rozdział 5. Buforowanie (65)
Rozdział 6. Rejestr (73)
Rozdział 7. Trasowanie (79)
Rozdział 8. Szablony (91)
Rozdział 9. Bazy danych (117)
Rozdział 10. Modele (143)
Rozdział 11. Testowanie (169)
Rozdział 12. Struktura (191)
Rozdział 13. Rozruch aplikacji (195)
Rozdział 14. Rejestracja i logowanie (211)
Rozdział 15. Wyszukiwanie (229)
Rozdział 16. Ustawienia (247)
Rozdział 17. Udostępnianie treści (259)
Rozdział 18. Zdjęcia (273)
Rozdział 19. Rozszerzenia (281)
Rozdział 20. Administracja (301)
Rozdział 21. Testowanie (315)
Rozdział 22. CodeIgniter: rozruch (319)
Rozdział 23. CodeIgniter: MVC (323)
Rozdział 24. CodeIgniter: rozszerzanie (337)
Rozdział 25. CodeIgniter: testowanie (347)
Rozdział 26. Zend Framework: rozruch aplikacji (349)
Rozdział 27. Zend Framework: MVC (353)
Rozdział 28. Zend Framework: rozszerzanie (369)
Rozdział 29. Zend Framework: testowanie (377)
Rozdział 30. CakePHP: rozruch (381)
Rozdział 31. CakePHP: MVC (385)
Rozdział 32. CakePHP: rozszerzanie (393)
Rozdział 33. CakePHP: testowanie (399)
Dodatek A. Konfiguracja serwera sieciowego (403)
Skorowidz (421)
Oceny i opinie klientów: Wzorzec MVC w PHP dla profesjonalistów Chris Pitt (2)
(0)
(0)
(2)
(0)
(0)
(0)
4 oceniona przez: Mateusz, programista 2016-04-17
4 potwierdzona zakupem i oceniona przez: stefan, 2013-11-16
więcej opinii