![]() |
![]() ![]() |
![]() |
![]()
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ść
![]() 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. |
|
|
![]()
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
![]() co do modułów, gdy poznasz już wspomniany wzorzec projektowy to można rozwiązać to w ten sposób:
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ć ![]() Ten post edytował Quantum 27.08.2010, 11:17:20 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 9.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
więc trzeba się zapoznać, thx
|
|
|
![]()
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ś") |
|
|
![]()
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). |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 9.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
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 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 |
|
|
![]()
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ć
![]() Ten post edytował Quantum 29.08.2010, 08:28:07 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 09:08 |