![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 29.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Hej:)
Zaplanowałem sobie klasy do serwisu. No i załóżmy, że mam jakąś tam klasę odpowiadającą za bazę danych, łączenie, zapytania itd. Tworzę również klasę np. news, dzięki której mogę dodawać, edytować, usuwać itd. newsa. Zakładam sobie, że mam główny plik np. system.php, który w zależności od zmiennej GET action (system.php obsługuje oczywiście walidację tej zmiennej) wczytuje odpowiednie pliki, np. plik do dodawania newsa. W tym pliku (powiedzmy news.php) tworzę sobie obiekt news i poprzez odpowiednie metody tworzę treść itd. W pliku system.php tworzę obiekt bazy danych, który łączy się z bazą, wykonuje zapytania. Jak teraz te obiekty powiązać? Przecież nie mogę założyć w news.php, że w system.php w zmiennej $db umieszczę referencję do obiektu bazy danych. Bo ogólnie chce zrobić mały CMS, znam idee działania poszczególnych klas, ale nie potrafię tego jakoś ze sobą powiązać. Pomóżcie, bo już chodzę z tym kilka dni i nie mogę na nic wpaść a im dłużej się zastanawiam tym bardziej się gubię. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Przecież nie mogę założyć w news.php, że w system.php w zmiennej $db umieszczę referencję do obiektu bazy danych. Poczytaj o wzorcu Rejestr (Registry). Będzie tu jak ulał
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 29.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Czyli klasa, która łączy się z bazą danych, będzie klasą static? Czy taką klasę mogę ożyć w obrębie innej klasy? Np.:
Przeczytałem na jednej stronie, że użycie Registry jest, i tu cytuję, "prymitywne". Dlaczego? Czy jest coś lepszego? Ten post edytował VIPPER_ 5.01.2011, 19:39:38 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Prosilem bys poczytal o wzorcu Rejestr a nie zgadywal
![]() Cytat e, że użycie Registry jest, i tu cytuję, "prymitywne". Dlaczego? Kazdy wzorzec ma swoich zwolennikow i przeciwnikow. Ja akurat w Rejestrze nie widzę nic prymitywnego. Jakby autor cytatu podał jakąś argumentację to mozna by bylo porozmawiac.
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 29.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Przeczytałem cały artykuł na ten temat. Ogólnie to fajna sprawa. Tylko zastanawiam się nad innymi możliwościami i komentarzami do tego artykułu.
Dodam, że czytałem ten artykuł Ten post edytował VIPPER_ 5.01.2011, 20:14:09 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
inne:
- Singleton. Wiekszosc uwaza ze to ble. Mi tam wsio rybka - przekazywanie do obiektu jako referencje Ja uzywam Rejestru od ładnych paru lat i sobie chwalę. Nie widzę potrzeba zastanawiania się nad czyms innym -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 29.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
No właśnie mi się ten Rejestr też spodobał. Jeszcze jedno i ostatnie pytanie. Jak myślisz, jak zaprojektować metodę wysyłającą dane do bazy danych.
Bo ja wymyśliłem takie coś: $signature - miałoby przedstawiać jakie nazwy pól chce wykorzystać obiekt do wysłania danych do bazy danych. Na przykład array('id', 'title', 'content') $type - nazwa tabeli, która zostanie dołączona do prefixu $conditions - tablica z nazwą pól oraz wartościami W sumie to można by nie wykorzystywać $signature, wystarczyłoby tylko odczytać z $conditions. To taki mój pomysł. Jestem nowy w OOP i nie mam za bardzo porównania, bo nigdzie nie mogę znaleźć klas CMS wykorzystujących PDO, które mógłbym podglądnąć. A jak wy realizujecie takie sprawy? |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 1 182 Pomógł: 115 Dołączył: 4.03.2009 Skąd: Myszków Ostrzeżenie: (0%) ![]() ![]() |
Możesz użyć ORMa i operować bezpośrednio na obiektach bez przejmowania się bazą (no tak teoretycznie) - np. Doctrine 2.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 29.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Właśnie najpierw zamiast korzystać z gotowych rozwiązań, chciałbym się sam nauczyć. Dopiero potem można sobie ułatwiać życie - znając podstawy.
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 1 182 Pomógł: 115 Dołączył: 4.03.2009 Skąd: Myszków Ostrzeżenie: (0%) ![]() ![]() |
A ja Ci mimo wszystko radzę poczytać kody frameworków, np. Symfony 2, zobaczysz jak klasy się wiąże ze sobą w profesjonalnych aplikacjach. Natomiast co do ORMa, to nie ma związku z połączeniem klas a jest ułatwieniem sobie życia.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 06:43 |