Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Podział klas ze względu na dane w XML
webmaniak
post
Post #1





Grupa: Zarejestrowani
Postów: 371
Pomógł: 30
Dołączył: 14.04.2010

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


Witam,
z góry przepraszam za temat, ale nie wiem jak go sensownie nazwać. Już przedstawiam problem:
Mam jakieś dane w formacie xml:
  1. <?xml version='1.0' encoding='UTF-8' ?>
  2. <!-- was: no XML declaration present -->
  3. <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
  4. <levelsTable>
  5. <group name="Angielski - praktyczny kurs">
  6. <product levelFrom="a13" levelTo="b21">
  7. <name>Angielski - praktyczny kurs</name>
  8. <link>useful_eng.php</link>
  9. </product>
  10. </group>
  11. <group name="Inne">
  12. <product levelFrom="b13" levelTo="c13">
  13. <name>Angielski w pracy</name>
  14. <link>ang_praca_za_gran.php</link>
  15. </product>
  16. <product levelFrom="a23" levelTo="b23">
  17. <name>Angielski At Once!</name>
  18. <link>angielski_at_once.php</link>
  19. </product>
  20. </group>
  21. <group name="Język na 6+">
  22. <product levelFrom="a13" levelTo="b12">
  23. <name>Angielski na 6+</name>
  24. <link>ang6_plus.php</link>
  25. </product>
  26. <product levelFrom="a13" levelTo="b12">
  27. <name>Niemiecki na 6+</name>
  28. <link>niem6_plus.php</link>
  29. </product>
  30. <product levelFrom="a13" levelTo="b12">
  31. <name>Rosyjski na 6+</name>
  32. <link>ros6_plus.php</link>
  33. </product>
  34. </group>
  35. ...
  36. </levelsTable>

Jak widać w levelsTable są grupy a w nich produkty. Co chciałbym zrobić: chciałbym utworzyć następujące klasy:
-product - zawierają produkty
-products - zawierająca kilka produktów
-productGroup - zawierająca grupę produktów
-productGroups - zawierająca kilka grup
-oraz Data(nazwa pewnie będzie inna (IMG:style_emoticons/default/smile.gif) ) - która będzie sortowała dane oraz zawierała listę pól klas powyżej
W czym mam problem:
- z utworzeniem klas products, productGroup oraz productGroups. W tabeli produkt umieszczam parametry czyli name i link oraz settery i gettery. Problem jest w tym że nie wiem co umieścić w w products żeby zawierała odpowiednie pola? No i kolejne klasy, co powinny zawierać? Chodzi generalnie żeby klasy ładnie były od siebie uzależnione i nawzajem się wywoływały, tzn. wywoływana będzie ostatnia klasa Data, ale chciałbym, jeśli to możliwe mieć dostęp do klasy products.
Nie wiem czy to dobrze opisałem, postaram się dopowiedzieć. Od razu napiszę że nie jest jakieś zadanie domowe:), po prostu znalazłem gdzieś coś podobnego, jednak nie mam dostępu do tego kodu, a chciałbym to przećwiczyć (IMG:style_emoticons/default/smile.gif) Proszę o pomoc, wytlumaczenie co tam ma być, przykład, jednym słowem - cokolwiek (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





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

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


1. Wymyślanie koła od nowa w ramach nauki jest jeszcze OK, chociaż z tego co zauważyłem nauka korzystania z istniejących narzędzi przyspiesza naukę samą w sobie. (IMG:style_emoticons/default/wink.gif)
2. Czy aby na pewno potrzebujesz osobnego obiektu do reprezentacji kolekcji obiektów Product? Może zwykła tablica/ArrayObject, albo jakaś gotowa kolekcja ogólnego przeznaczenia (np. ArrayCollection z Doctrine Commons) będzie wystarczająca?
3. O ile w przypadku klasy Product nie ma się do czego przyczepić (ot, zwykła klasa typu POPO), tak w przypadku klasy Products (lepszą nazwą byłoby ProductCollection) nie bardzo rozumiem cel właściowści names czy levels - chyba, że mają one udostępniać szybki dostęp do kolekcji dostępnych nazw/poziomów w całym zbiorze.
Go to the top of the page
+Quote Post
webmaniak
post
Post #3





Grupa: Zarejestrowani
Postów: 371
Pomógł: 30
Dołączył: 14.04.2010

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


ad1. No właśnie nie każdemu przyspiesza, bo np. używam rutingu w Codeigniter, ale jak on działa to nie wiem, bo jest napisany gotowy - jak to we frameworku, no i jakbym miał np. w ramach testu gdzieś napisać prosty routing albo opisać jego działanie pewnie bym poległ - to tylko przykład z routingiem (IMG:style_emoticons/default/smile.gif) .
ad2. Hmm, taką założyłem sobie strukturę, W mojej koncepcji ma to głębszy sens - ale nie jestem w stanie wytłumaczyć tutaj jaki (IMG:style_emoticons/default/smile.gif) jak będzie więcej kodu to przedstawię (IMG:style_emoticons/default/smile.gif)
ad3. ProductCollection to będzie ostatnia klasa zawierająca listę pól. No i tak jak pisałeś
Cytat(Crozin @ 10.02.2013, 20:46:14 ) *
3. O ile w przypadku klasy Product nie ma się do czego przyczepić (ot, zwykła klasa typu POPO), tak w przypadku klasy Products (lepszą nazwą byłoby ProductCollection) nie bardzo rozumiem cel właściowści names czy levels - chyba, że mają one udostępniać szybki dostęp do kolekcji dostępnych nazw/poziomów w całym zbiorze.

w moim zamyśle to ma być dostęp do klasy product, w groupproduct do kilku product a w groupproducts do kilku grupproduct. Czyli to co przedstawiłem "trzyma się kupy"?

Po głębszym namyśle sam zastanawiam się nad tymi właściwościami names i levels. Czyli zostawić samo products i w konstruktorze foreach który będzie przechodził po wszystkich product?

Ten post edytował webmaniak 10.02.2013, 21:28:28
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.10.2025 - 23:15