Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> struktura OOP
akostarek
post 27.08.2010, 10:48:35
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 9.12.2008

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


Witam, ostatnio zacząłem nieco kombinować z obiektami w PHP i nasuwa mi się parę pytań o strukturę standardowej strony opartej na modułach. Zajmuję się php'em hobbystycznie, więc proszę o wyrozumiałość tongue.gif

Mam klase strona, w której umieściłem podstawowe metody jakie będę wykorzystywał (sprawdzanie modułów itd).
Następnie wewnątrz obiektu klasy strona tworze kilka innych obiektów jak np strona->db = db:singleton();
Całkowicie poza obiektem strona robie require modułów, każdy moduł będzie posiadał własną klasę "podstrona", jakieś filtrowanie danych $_GET, generowanie komunikatów itd...
I tutaj mam dylemat, jaką strukturę zastosować: czy lepiej będzie, jeśli klasa podstrona będzie rozszerzać klasę strona (będzie trochę bałagan) czy może lepiej robić jak do tej pory, czyli strona->podstrona = new podstrona; tylko, że wtedy znów będzie trochę kombinowania w przypadku gdy obiekt podstrona będzie potrzebował danych z obiektu strona...
Może jest jakiś inny, sensowniejszy sposób na to ?

dzięki z góry, pozdrawiam.
Go to the top of the page
+Quote Post
Quantum
post 27.08.2010, 11:00:31
Post #2





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

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


może to już czas na poznanie MVC ? na forum znajdziesz o tym dziesiątki tematów smile.gif

co do modułów, gdy poznasz już wspomniany wzorzec projektowy to można rozwiązać to w ten sposób:
  • każdy moduł ma osobny folder
  • w każdym z nich można umieścić konfigurację, widoki, modele, kontrolery, klasy pomocnicze, biblioteki
  • wszystko kategoriami wrzucasz do osobnych folderów
  • pozostaje Ci do ustalenia kolejność warstw aplikacji, najczęściej spotykane: moduły -> aplikacja -> rdzeń.

przykładowa struktura folderów dla modułów:
Kod
│   ├───modules
│   │   └───auth
│   │       ├───config
│   │       ├───controllers
│   │       ├───models
│   │       └───views

jeżeli orientujesz się w obiektowym PHP nie powinieneś mieć problemu, zawsze możesz tutaj napisać winksmiley.jpg

Ten post edytował Quantum 27.08.2010, 11:17:20
Go to the top of the page
+Quote Post
akostarek
post 27.08.2010, 11:15:49
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 9.12.2008

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


więc trzeba się zapoznać, thx
Go to the top of the page
+Quote Post
Crozin
post 27.08.2010, 12:50:48
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Cytat
może to już czas na poznanie MVC ?
99% programistów PHP go nie zna. Wątpię też w to by ktoś, kto pyta o podstawy był w stanie go zrealizować poprawie (a niepoprawnie zrobiony MVC będzie chyba zawsze bardziej utrudniał życie niż ułatwiał).

Cytat
Następnie wewnątrz obiektu klasy strona tworze kilka innych obiektów jak np strona->db = db:singleton();
Dlaczego ten obiekt jest singletonem? W czym przeszkadzałoby ewentualne współistnienie wielu obiektów tej klasy, reprezentujących różne bazy danych?

Do udostępniania "usług" (baza danych, logger itp.) lepiej wykorzystać bardziej sprawdzone metody, na przykład: dependency injection (tutaj akurat jako komponent symfony, ale możesz się po prostu więcej dowiedzieć o tym "czymś")
Go to the top of the page
+Quote Post
Quantum
post 27.08.2010, 13:44:43
Post #5





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

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


Cytat(Crozin)
99% programistów PHP go nie zna. Wątpię też w to by ktoś, kto pyta o podstawy był w stanie go zrealizować poprawie

no cóż, co racja to racja.. ważne żeby nie brać przykładu ze złych implementacji i trzymać się podstawowych założeń wzorca (na początek poleciłbym ten art Zyx-a).
Go to the top of the page
+Quote Post
akostarek
post 28.08.2010, 10:53:07
Post #6





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 9.12.2008

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


Cytat(Crozin @ 27.08.2010, 13:50:48 ) *
99% programistów PHP go nie zna. Wątpię też w to by ktoś, kto pyta o podstawy był w stanie go zrealizować poprawie (a niepoprawnie zrobiony MVC będzie chyba zawsze bardziej utrudniał życie niż ułatwiał).

przeczytałem kilka artykułów i tutoriali, nawet one nie są spójne w kilku kwestiach

Cytat(Crozin @ 27.08.2010, 13:50:48 ) *
Dlaczego ten obiekt jest singletonem? W czym przeszkadzałoby ewentualne współistnienie wielu obiektów tej klasy, reprezentujących różne bazy danych?

wiem, że będe uzywal jednej bazy, dodatkowo na czas tworzenia skryptu klasa db loguje zapytania, błędy i czas wykonywania.

po zapoznaniu się z tematem - idea MVC nie jest jakas skomplikowana, ale obawiam się, że zbyt dużo czasu zajmie komuś mało doświadczonemu w OOP samo przemyślenie i zaplanowanie wszystkiego. Do tego tworze aktualnie skrypt, z którego będę korzystał tylko ja, więc może coś wykorzystam z MVC, ale raczej nie będe się go sztywno trzymał.

dzięki za pomoc, pozdrawiam
Go to the top of the page
+Quote Post
Quantum
post 29.08.2010, 08:13:17
Post #7





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

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


możesz zapoznać się z jakimś frameworkiem i to byłoby najlepsze rozwiązanie w Twoim przypadku, na początek polecam Kohana w wersji 2.3.4, jest bardzo prosty i powinien wiele rzeczy rozjaśnić winksmiley.jpg

Ten post edytował Quantum 29.08.2010, 08:28:07
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 09:08