Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

3 Stron V   1 2 3 >  
Reply to this topicStart new topic
> Zaczatki, + ocena sterownika mysql
Lonas
post
Post #1





Grupa: Zarejestrowani
Postów: 576
Pomógł: 14
Dołączył: 9.11.2005

Ostrzeżenie: (20%)
X----


Hej - takie pytanie mam poniewaz od niedawna zaczalem czytac o OOP, jednoczesnie o MVC i freameworku Zend.

Nie wiem na czym sie na poczatek skupic;

czy sprobowac napisac cos obiektowo z uzyciem szablonow np Smarty (rozwinac sobie znajomosc OOP),
czy skupiac sie juz na frameworku i w nim probowac cos tworzyc na podstawie MVC (zaznaczam jednak ze obiektowo dopiero zaczynam)

Zdr.

Ten post edytował Lonas 7.05.2008, 08:37:55
Go to the top of the page
+Quote Post
Sedziwoj
post
Post #2





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Smarty raczej do OOP nie można zaliczyć... (chyba że pominąć antywzorzec The Blob (IMG:http://forum.php.pl/style_emoticons/default/dry.gif) )

Nie wiem na jakim jesteś etapie, bo jeśli wiesz jak się buduje obiekty, jak rozdziela się odpowiedzialność i sprawia aby się z sobą komunikowły (w podstawowej formie) to można szukać dobrych wzorców, właśnie pisząc np. w Symfony, aby nie wyrobić sobie złych nawyków.

EDIT
Co do Zend, to jak już nieraz było mówione ciężko jest zaliczyć to do FW, raczej do zbioru komponentów (choć pewnie w przyszłości stanie się w końcu FW)

Ten post edytował Sedziwoj 28.04.2008, 12:28:52
Go to the top of the page
+Quote Post
Sabistik
post
Post #3


Administrator wortalu


Grupa: Przyjaciele php.pl
Postów: 960
Pomógł: 39
Dołączył: 21.10.2003
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Cytat
Co do Zend, to jak już nieraz było mówione ciężko jest zaliczyć to do FW, raczej do zbioru komponentów (choć pewnie w przyszłości stanie się w końcu FW)

Tak... Tylko że przykładu lepszego OOP ciężko by znaleźć.
Go to the top of the page
+Quote Post
mike
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(Sabistik @ 28.04.2008, 14:07:19 ) *
Tak... Tylko że przykładu lepszego OOP ciężko by znaleźć.
Oj bo przeniosę tego posta na Humor.
Tyle zbędnych Singletonów, niejednolitego API i chorego wręcz uwielbienia do pakowania wszystkiego w metody magiczne nie widziałem.
Go to the top of the page
+Quote Post
Lonas
post
Post #5





Grupa: Zarejestrowani
Postów: 576
Pomógł: 14
Dołączył: 9.11.2005

Ostrzeżenie: (20%)
X----


Co w takim razie na poczatek obiektowo sprobowac napisac ?
Go to the top of the page
+Quote Post
Ociu
post
Post #6





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




System newsów ? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) W tym sterownik MySQL, szablony itp. Toporne, ale dokształcające.
Go to the top of the page
+Quote Post
Strzałek
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 384
Pomógł: 6
Dołączył: 11.09.2004
Skąd: Grodzisk Mazowiecki

Ostrzeżenie: (0%)
-----


Cytat(Sabistik @ 28.04.2008, 14:07:19 ) *
Tak... Tylko że przykładu lepszego OOP ciężko by znaleźć.



Teraz to poleciałeś. Rozumiem twoje ulubienie do tego FW jednak, no cóż. Naprawdę nie jest ciężko znaleźć coś napisanego lepiej.
Go to the top of the page
+Quote Post
Sabistik
post
Post #8


Administrator wortalu


Grupa: Przyjaciele php.pl
Postów: 960
Pomógł: 39
Dołączył: 21.10.2003
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Cytat
Naprawdę nie jest ciężko znaleźć coś napisanego lepiej.

No to może przedstaw swoje znaleziska zamiast pisać puste posty. Chętnie się nauczę lepszego oop...
Go to the top of the page
+Quote Post
mike
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(Sabistik @ 28.04.2008, 22:19:57 ) *
No to może przedstaw swoje znaleziska zamiast pisać puste posty. Chętnie się nauczę lepszego oop...
Na dzień dobry bo mam mało czasu.

Interfejs Request:
  1. <?php
  2. interface Zend_Request_Interface {
  3. public function __get($key);
  4.  
  5. public function __set($key, $value);
  6.  
  7. public function __isset($key);
  8.  
  9. public function get($key);
  10.  
  11. public function set($key, $value);
  12.  
  13. public function has($key);
  14.  
  15. public function getParam($key);
  16.  
  17. public function setParam($key, $value);
  18.  
  19. public function getParams();
  20.  
  21. public function setParams(array $params);
  22. }
  23. ?>

Co to ma wspólnego w czymkolwiek kojarzącym się z Request? Nic. Piszę to ponieważ połowa klas i interfejsów jest nafaszerowana jakimiś setParam(). Nie wpadli na żadnego ParameterHoldera? Złamanie w skali globalnej jednaj z podstawowych zasad - DRY.

Poza tym większość klas jest nafaszerowana takimi kwiatkami:
  1. <?php
  2.  
  3. class Zend_Controller_Request_Http extends Zend_Controller_Request_Abstract {
  4.  
  5. public function __get($key)
  6. {
  7. switch (true) {
  8. case isset($this->_params[$key]):
  9. return $this->_params[$key];
  10. case isset($_GET[$key]):
  11. return $_GET[$key];
  12. case isset($_POST[$key]):
  13. return $_POST[$key];
  14. case isset($_COOKIE[$key]):
  15. return $_COOKIE[$key];
  16. case ($key == 'REQUEST_URI'):
  17. return $this->getRequestUri();
  18. case ($key == 'PATH_INFO'):
  19. return $this->getPathInfo();
  20. case isset($_SERVER[$key]):
  21. return $_SERVER[$key];
  22. case isset($_ENV[$key]):
  23. return $_ENV[$key];
  24. default:
  25. return null;
  26. }
  27. }
  28.  
  29. public function get($key)
  30. {
  31. return $this->__get($key); // To jest szczególnie fajne! :-)
  32. }
  33.  
  34. public function set($key, $value)
  35. {
  36. return $this->__set($key, $value);
  37. }
  38.  
  39. public function __isset($key)
  40. {
  41. switch (true) {
  42. case isset($this->_params[$key]):
  43. return true;
  44. case isset($_GET[$key]):
  45. return true;
  46. case isset($_POST[$key]):
  47. return true;
  48. case isset($_COOKIE[$key]):
  49. return true;
  50. case isset($_SERVER[$key]):
  51. return true;
  52. case isset($_ENV[$key]):
  53. return true;
  54. default:
  55. return false;
  56. }
  57. }
  58.  
  59. public function has($key)
  60. {
  61. return $this->__isset($key);
  62. }
  63.  
  64. // ...
  65.  
  66. ?>

Efekt? Bez zaglądania w kod nie jesteś w stanie stwierdzić co dana klasa robi i do czego służą jej metody.
A dokumentacja jest nieaktualna i słabo napisana.

W ZF w stopniu przekraczającym dobry smak są nadużywane metody magiczne. Po 3 miesiącach pacy na tym frameworku wypracowałem powiedzenie. Jeśli chcesz coś pobrać to na pewno jest to ukryte w jakiejś magicznej metodzie. Tylko której?

To jest mój główny zarzut dotyczący ZF. Totalne pomieszanie i poplątanie i brak czytelności.
Go to the top of the page
+Quote Post
Lonas
post
Post #10





Grupa: Zarejestrowani
Postów: 576
Pomógł: 14
Dołączył: 9.11.2005

Ostrzeżenie: (20%)
X----


(IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ) dobra troszke mi zniesmaczyliscie ZF ..

w takim razie sprawdze symfony i moze sprobuje w tym frameworku zrobic jakas galerie czy system newsow (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
mike
post
Post #11





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(Lonas @ 29.04.2008, 10:25:20 ) *
w takim razie sprawdze symfony i moze sprobuje w tym frameworku zrobic jakas galerie czy system newsow (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Tak naprawdę to zaczynanie z jakimkolwiek frameworkiem może być dla Ciebie trudne. Czy to będzie ZF, czy symfony czy cokolwiek innego.

Zwróć uwagę na to, że framework jest to przeważnie duża konstrukcja stworzona z zastosowaniem wielu wzorców, których możesz nie rozumieć i się w nich gubić. Napisanie systemu newsów za pomocą symfony to jak nauka parkowania tyłem TIRem z naczepą tylko po to by nauczyć się parkować po latach doświadczeń jazdy na rowerze.

Jeśli chcesz nauczyć się programować obiektowo zacznij od teorii, książek i artykułów. Dowiedz się czym są obiekty, klasy... Jak na siebie oddziaływają i kiedy są dobrze połączone i co to są wzorce. Nie musisz znać całej teorii OOP na pamięć. Po prostu dowiedz się w jakiej materii będziesz się poruszał.

Moim zdaniem powinieneś napisać ten przykładowy system newsów ale sam projektując klasę News, Post, User czy co tam chcesz. Nawet jeśli to wszystko umieścisz w strukturalnym kodzie a tylko część będzie spełniała jakieś tam paradygmaty OOP, nawet jeśli połowa będzie błędna to lepiej na tym wyjdziesz niż skorzystasz z frameworka. Jak Ci się to uda powtórz to samo na jednym, dwóch czy trzech różnych frameworkach.
Zobacz co one Ci dają, jaki ciężar z Ciebie zdejmują i co oferują.
Go to the top of the page
+Quote Post
Lonas
post
Post #12





Grupa: Zarejestrowani
Postów: 576
Pomógł: 14
Dołączył: 9.11.2005

Ostrzeżenie: (20%)
X----


Rozumiem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) dzieki za wskazowki, wlasnie w takim kierunku szedlem caly czas tylko czytajac coraz wiecej o OOP natrafialem na MVC, na frameworki i coraz tego wiecej bylo az w koncu nie wiedzialem za co sie zabrac (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

W takim razie poprostu napisze sobie przykladwy system newsow z wykorzystaniem jakis szablonow zeby nie mieszac kodu strukturalnego z obiektowym.


Dzieki i pozdrawiam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #13





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Coż, "napisanie" systemu news w Symfony sprowadza sie do odpalenia konsoli i wkejenia:

Cytat


Wracając do tematu :

Cytat
W takim razie poprostu napisze sobie przykladwy system newsow z wykorzystaniem jakis szablonow zeby nie mieszac kodu strukturalnego z obiektowym.


Szablony to nie jest gwarancja, ani nawet skuteczna metoda na odseparowanie kodu strukturalnego od obiektowego. Szablony (Smarty) w ogóle mają bardzo nikły sens,
Napisz ten system news używając php w warstwie prezentacji, bo to ona ma zostać odseparowana od wartswy logiki.

Pozdrawiam.
Go to the top of the page
+Quote Post
Sedziwoj
post
Post #14





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(Cysiaczek @ 30.04.2008, 04:27:12 ) *
Szablony (Smarty) w ogóle mają bardzo nikły sens,


Ciekawa opinia, to jakby powiedzieć że przycisk (nad tym okienkiem edycji) b jest nie potrzebny, bo przecież co za kłopot napisać [b] a potem jego zamknięcie.
Bo mi się wydaje, że to jedna z zalet stosowania szablonów, uproszczony interfejs.
Oczywiście mówię o przypadku kiedy to nie programista podpina wygląd, ale osoba która zna HTML+CSS a do szczęścia takiej znajomość PHP jest zbędna.
A czy przypadkiem w Symfony, warstwa prezentacji, to nie taki uproszczony system szablonów (IMG:http://forum.php.pl/style_emoticons/default/dry.gif)

EDIT
Chyba trochę odchodzę od tematu rozmowy, ale mnie zaciekawiła ta opinia na temat szablonów.

P.S.
Gdyby nie było tej głupiej 30s przerwy między dodawaniem postów, to bym dodał kolejny, a nie edytował.

Ten post edytował Sedziwoj 30.04.2008, 08:14:11
Go to the top of the page
+Quote Post
Lonas
post
Post #15





Grupa: Zarejestrowani
Postów: 576
Pomógł: 14
Dołączył: 9.11.2005

Ostrzeżenie: (20%)
X----


Cytat(Cysiaczek @ 30.04.2008, 02:27:12 ) *
Napisz ten system news używając php w warstwie prezentacji, bo to ona ma zostać odseparowana od wartswy logiki.

Mozesz o tym cos wiecej napisac - wymyslilem sobie juz co bede pisal - poniewaz swojego czasu napisalem taki system do zarzadzania magazynem oraz zarzadzania sprzedaza (faktury) z tym ze calosc byla pisana strukturalnie z "pseudo" wydzieleniem widoku od kodu - tworzylem sobie katalog z formatkami i w nich tylko wczytywalem dane do formatek.

Dopisze sobie do tego nowa funkcjonalnasc - planowanie produkcji i tutaj pobawie sie obiektowo. Myslalem napisac sobie klasy oblsugujace dane funkcjonalnosci i do prezentacji wynikow uzyc Smarty.

Z czasem chcialbym stowrzyc taka aplikacje zgodnie z modelem MVC w jakims frameworku
Go to the top of the page
+Quote Post
cbagov
post
Post #16





Grupa: Zarejestrowani
Postów: 181
Pomógł: 18
Dołączył: 19.04.2008

Ostrzeżenie: (10%)
X----


proponuje zaczac od zapoznania sie z PHP, moze byc 4, moze byc 5
zrobisz sobie obiekciki, szablony i inne cudenka
w kilka dni
Go to the top of the page
+Quote Post
Sedziwoj
post
Post #17





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(cbagov @ 30.04.2008, 14:21:50 ) *
proponuje zaczac od zapoznania sie z PHP, moze byc 4, moze byc 5


Tia bardzo dobra rada, zacząć od 4, gdy to już jest przeszłość, jakby zacząć od kart perforowanych
Go to the top of the page
+Quote Post
cbagov
post
Post #18





Grupa: Zarejestrowani
Postów: 181
Pomógł: 18
Dołączył: 19.04.2008

Ostrzeżenie: (10%)
X----


wiem, ze dobra @Sedziwoj, nie opowiadaj ludziom bajek
Go to the top of the page
+Quote Post
Sedziwoj
post
Post #19





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(cbagov @ 30.04.2008, 18:07:14 ) *
wiem, ze dobra @Sedziwoj, nie opowiadaj ludziom bajek


To tylko powiem że z podpowiedzią pomyliłeś działy, bo w PHP4 nie ma obiektowości.
A jak uważasz, że opłaca się uczyć czegoś co umiera, to już Twoja sprawa, ale nie podpowiadaj takich głupot innym.
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #20





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




@cbagov - pisz do rzeczy, bo teraz nawet nie wiedomo o co Ci chodzi.
@sedziwoj - Powiedzmy inaczej - dla programisty maja nikły sens, bo grafikom,to może do gustu przypadną. W SF nie masz szablonów - masz gołe php wspierane helperami. Jedne są mniej, inne bardziej przydatne (np. wszelkie 'object_helpery'). Bardzo fajnie tez wygląda kodowanie JS w helperach (ale to znam słabo, wiec mogę się mylić).
@lonas - wystarczy, że zachowasz podział na 3 warstwy (MVC)
1. Dane - operacje na źródłach danych
2. Logika - obsługa poleceń - wykorzystanie danych
3. Prezentacja - wyświetlenie wyników - może być w zwykłym html przeplatanym php i nie jest to złe rozwiązanie.

Pozdrawiam.
Go to the top of the page
+Quote Post

3 Stron V   1 2 3 >
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 22:51