• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pisanie stron obiektowo

VPS Starter Arubacloud
0 głosów
1,659 wizyt
pytanie zadane 4 stycznia 2016 w PHP przez No Lime Gaduła (4,540 p.)
Cześć! Próbuje się przestawić na pisanie stron tylko w stylu obiektowym. Czytałem mnóstwo poradników wykorzystując przykłady do ćwiczeń praktycznych, zmieniając kod abym nie przepisywał go tępo znaczek w znaczek. Mówiąc wprost - rozumiem samą koncepcje klas i obiektów, myślę też, że widzę przede wszystkim między nimi różnicę. Rozumiem mechanizm dziedziczenia i tak dalej. Jednakże analizując dostępne, gotowe projekty na przykład na githubie napisane za pomocą chociażby Silexa którego również staram się zrozumieć, ciężko jest mi cokolwiek pojąć i wyciągnąć z tego jakąkolwiek naukę. Czy jest ktoś w stanie polecić mi DOBRY poradnik, tutorial, kurs w języku polskim/angielskim który nauczyłby mnie PRAKTYCZNIE pisać na przykład blog lub własny cms wykorzystując do tego dostępne wzorce projektowe jak MVC? Boje się, że gdy usiądę do pisania strony, stworzę maksymalnie kilka klas i resztę napiszę proceduralnie. Chciałbym zobaczyć to wszystko na przykładach które nie zasypią mnie masą wiedzy jak gotowe projekty na githubie. Z góry dziękuje za pomoc i pozdrawiam :)

5 odpowiedzi

+10 głosów
odpowiedź 5 stycznia 2016 przez efiku Szeryf (75,160 p.)
edycja 6 marca 2017 przez efiku
 
Najlepsza

Myślę, że warto się wypowiedzieć w tym temacie tak więc.. moja kolej :)


Chcąc zacząć pisać strony w stylu obiektowym musisz przede wszystkim zmienić podejście co do PHP. Pierwszą wskazówką ode mnie będzie informacja, że teraz już rzadko kto pisze w czystym PHP. Dlatego wiele projektów spotkasz z różnymi frameworkami lub ich komponentami. Chodzi generalnie o to, że po co pisać coś na nowo, jak to co chcemy już jest i ma świetną społeczność, która pracuje nad jego rozwojem.

 

1. Zanim zabierzemy się za cokolwiek warto zaopatrzyć się w książkę oraz dodać do zakładek ten blog:

                   

 

2. Na pierwszym miejscu będą wzorce, posłużę się najlepszym linkiem odnośnie implementacji większości wzorców w PHP. Powinieneś sobie je przestudiować i zobaczyć do czego możesz je wykorzystać. Naaprawdę przydatne :)

 

 

3. Musisz wiedzieć jak działa protokół HTTP. To jest absolutna podstawa!! Co się dzieje jak przychodzi Request i co zwracać w Response. Musisz zrozumieć, że tyle czasu żyje Twój skrypt. Od Requestu do Response.  

Wiedząc to, będziesz w stanie bez problemu użyć wzorca MVC nawet nie wiedząc o tym.. ;D  Request [/zaloguj /dodaj /blog-3331 ] -> do index.php -> sprawdzasz czy masz taki kontroler, jest? odpalasz i zwracasz response tak w skrócie. Oczywiście system szablonów pasuje też mieć ;) (twig polecam) 

Ciekawy link: 

 

4. Fajnie byłoby też poznać narzędzia takie jak behat, phpspec, phpunit i pracę nad stroną rozpoczynać od budowy  modułów. Każdy moduł poddajesz procesowi TDD. 

                                       

 

 

5. Do pracy nad takim czymś użyj IDE, waarto PHPStorma mieć. 30 dni masz, za free, a jak legitke wyślesz to na rok ;) ot promocja dla uczniów i studentów. Darmowe to netbeans, ale jakos mi nie przypadł do gustu. 

 

 

6. Dzisiaj PHPersi mają do dyspozycji takie cudo jak composer, o którym prosiłem Cię byś przeczytał. Jest to must have przy projekcie :)

Czy taka aplikacja dosłownie scalona z framwerokiem jest poprawna? Otóż nie. Twoja domena powinna być niezależna od frameworka. FW powinien robić za Ciebie taką robotę jak obsługa formularzy, requestów , routingu. Piszesz tylko pomost między domeną a FW i jedziesz:) Oczywiście wiadomo, praktyka wygląda inaczej. Grunt by mieć testy :D

 


Pytasz o przykłady? Proszę bardzo: 

https://www.youtube.com/watch?v=gpNbmEnRLBU


Zbiór ważnych linków, TO jest nowy PHP.

 źródło linków: DevTalk Mariusz Gil (warto posłuchać) 

komentarz 7 stycznia 2016 przez No Lime Gaduła (4,540 p.)
Dziękuje bardzo za poświęcony czas. Zabieram się do lektury. Mam nadzieje, że mając już jakiś szlak wpoję pisanie obiektowo do głowy.
komentarz 13 listopada 2017 przez efiku Szeryf (75,160 p.)

W sumie, fajnie mi to wyszło. yessmiley

+2 głosów
odpowiedź 5 stycznia 2016 przez event15 Szeryf (93,790 p.)
MVC to nie wzorzec projektowy tylko architektoniczny. Ale dobra.

Sięgasz do Silexa, który to jest paczką 200mb czystego tekstu z pewnymi dodatkami do baz danych.

Przede wszystkim programowanie obiektowe to nie są same klasy, interfejsy itp. To jest koncepcja - a do tego się dochodzi stopniowo. Najpierw poznajesz wady i zalety programowania obiektowego, polimorfizmu, dziedziczenia, zwykle ludzie nie czują tego i piszą śmieszne klasy, jeszcze się sugerują głupotami z internetu jak np bazka danych w mysql_ i singletonie. Mniejsza - chodzi o to, że tutaj nie chodzi o to, że piszesz kod używając słowa class, abstract, interface itp.

To jest jak gra w szachy. Niby każdy kto zagrał, wie jak rusza się hetman i skoczek. Ale nie ma już tak wielu osób, które by można nazwać arcymistrzami. To samo jest w programowaniu obiektowym, masz jakieś narzędzia w postaci dziwnych pojęć. Musisz poznać wzorce projektowe - to jest absolutnie to, co Ci pomoże zrozumieć ideę.

Do tego musisz dojrzeć, musisz bardzo chcieć programować obiektowo, ale od tego momentu Twoje programowanie zmieni się w sztukę, będziesz szukać ciągle swoich błędów - jakiś brzydkich duplikacji, czy innych wrogów czystego kodu.

Generalnie zachęcam każdego do rozpoczynania od TDD - czyli piszemy najpierw test a później program - to powoduje, że sami siebie nieco zmuszamy do pisania poprawnego obiektowego kodu. Jednak nie zawsze jest to spoko podejście bo ludzie nie związani z biznesowym podejściem nie czują testów i olewają je.

Zacznij więc od wzorców projektowych - jest to dobra nauka. Wzorce to takie podpowiedzi, w jaki sposób można na przykład tworzyć obiekt, który musi mieć tylko 1 instancję, albo jak tworzyć wiele obiektów bez dokładnego określenia jaki będzie efekt końcowy poprzez składanie.

Mało jest życiowych przykładów. Mamy małą aplikację, musimy wybudować połączenie z bazą danych, które musi być jedno na całą apkę. Nie używamy singletona.

Mamy klasę książka, która dla uproszczenia może być zbudowana z twardej oprawy lub miekkiej, może wykorzystywać papier przetworzony powtórnie, kredowy i zwykły o gramaturze 80. Program musi tworzyć książki o różnych parametrach. Wykorzystujemy tu fabryke abstrakcyjną albo prototype. I tak dalej.

Wzorce to nie wyrocznia, ale wskazówka. Bo zostały przetestowane przez ogromne community - praktycznie w każdym obiektowym języku. Poza tym człowiek w pewnym momencie staje i zastanawia się czy powinien zrobić to, czy tamto. Wzorce pomagają.
0 głosów
odpowiedź 4 stycznia 2016 przez 0rb_12 Bywalec (2,440 p.)
Jeżeli nie potrafisz rozpracować większych projektów to potrzebujesz poradę a nie poradnik ...

Otóż Jeżeli Twoim celem jest podnieść sztangę o wadze 200kg - to tą właśnie sztangą będziesz ćwiczył ?

POZDRAWIAM
komentarz 4 stycznia 2016 przez No Lime Gaduła (4,540 p.)
No dobrze, w takim razie proszę o PORADĘ. Czy jesteś w stanie mi ją dać? Będę wdzięczny. Proceduralnie napisałem stronę która zawiera system rejestracji, logowania, panel administratora, system komentarzy. Chciałbym nauczyć się teraz pisać to wszystko ale obiektowo. Nie potrafię kompletnie posługiwać się frameworkami, nie wiem jak podejść do tego wszystkiego obiektowo. Szukam porady, ponieważ czuje się mocno sfrustrowany tym, że ciągle coś czytając nie potrafię niczego napisać. Gdzie ten złoty klucz? Również pozdrawiam
komentarz 4 stycznia 2016 przez efiku Szeryf (75,160 p.)
edycja 4 stycznia 2016 przez efiku

@No Lime, jutro machnę Ci pewnie około 16 komentarz jak tak mniej więcej to ogarnąć :) Do tego czasu przeczytaj czym jest Composer w PHP (tam zahaczysz o PSR-4 PSR-2 ) oraz o przestrzeniach nazw. Bo obecnie to się wykorzystuje ;)

  • Czym jest Composer?
  • Jak działa?
  • Jak go wykorzystać w swoich projektach?
  • composer install vs composer update

W sieci jest pełno na ten temat, ale od tego trzeba zacząć wgl. zabawę w pisanie apek ;)

 

Proszę posłuchaj jak Fabien to widzi ;) W sumie... ten filmik jest odpowiedzią na Twoje pytanie XD. Po co poradniki, jak można wysłuchać takich prelekcji ;) Podstawowy angielski trzeba znać, ale dowiesz się jak działa Symfony np. ;) oraz dlaczego ważny jest Request i Response.

https://www.youtube.com/watch?v=gpNbmEnRLBU

0 głosów
odpowiedź 4 stycznia 2016 przez Schizohatter Nałogowiec (39,600 p.)
Jeśli masz na myśli model MVC, to zacznij od napisania nawet najprostszego routera z .htaccess. To jest dość dobry punkt wyjściowy dla całej aplikacji.
komentarz 4 stycznia 2016 przez No Lime Gaduła (4,540 p.)
http://lukasz-socha.pl/php/routing-linkow-w-php/

Chyba coś jest ze mną nie tak... Ten poradnik też zawiera dla mnie za dużo informacji. Jak mogę zacząć powoli wdrażać się w ten temat? Dysponujesz może jakimś poradnikiem?
komentarz 4 stycznia 2016 przez Schizohatter Nałogowiec (39,600 p.)
Ah, bo to jest bardziej złożone. Nie do końca to miałem na myśli.

Raczej miałem na myśli system, który odpali (uruchomi, wczyta, wyświetli, pobierze, cokolwiek) odpowiedni plik na podstawie linku (uproszczonego przez .htaccess - np. adresstrony.pl/podstrona/parametr1)
–3 głosów
odpowiedź 4 stycznia 2016 przez Mateusz Tocha Bywalec (2,560 p.)

Pamiętam swego czasu bardzo dobrą książkę napisaną właśnie pod pisanie obiektowego, była bardzo prosta i w sumie z niej złapałem obiektowość.

http://helion.pl/ksiazki/php5-zaawansowane-programowanie-edward-lecky-thompson-heow-eide-goodman-steven-d,php5zp.htm

komentarz 4 stycznia 2016 przez efiku Szeryf (75,160 p.)
  • Data wydania książki drukowanej: 2005-06-07

Żartujesz? ;) mamy 2016 PHP7 Interfejsy, zaje.. abstrakcję, jakieś typowianie jest nawet, klasy anonimowe, callbacki ...

komentarz 5 stycznia 2016 przez Mateusz Tocha Bywalec (2,560 p.)
Ta to tak samo jak przy nauce matlaba powiedział komuś po co używasz regulatorów PID skoro są algorytmy genetyczne, sieci neuronowe, czy logika rozmyta. na początku musi w głowie mu kliknąć obiektowość... od taka analogia.
komentarz 5 stycznia 2016 przez Comandeer Guru (599,730 p.)
Spoko, ale nie ma sensu wpajać wzorców, które już nie istnieją, np. cały rozdział poświęcony PEAR DB czy opis SOAP (BTW co on wgl ma do OOP?). Później jest opis Smartów i obsługi… faksu.

Jeśli istnieją nowsze pozycje na taki temat, to należy sięgnąć po nie, nie po staroć, z którego połowa już nie służy do niczego.

Podobne pytania

0 głosów
1 odpowiedź 437 wizyt
pytanie zadane 28 grudnia 2015 w SQL, bazy danych przez M3How Nowicjusz (140 p.)
0 głosów
2 odpowiedzi 359 wizyt
pytanie zadane 12 października 2017 w PHP przez makoszet Początkujący (360 p.)
0 głosów
1 odpowiedź 320 wizyt
pytanie zadane 25 lipca 2017 w PHP przez Bartess Gaduła (3,630 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...