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
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Cytat
ProductCollection to będzie ostatnia klasa zawierająca listę pól.

Pomyliłeś kolejności (IMG:style_emoticons/default/wink.gif)


w takim prymitywnym uproszczeniu
  1. class CollectionX {
  2.  
  3. public function getItem($key) {
  4.  
  5. if($this->hasItem($key)) {
  6.  
  7. return $this->_items[$key];
  8. }
  9. }
  10.  
  11. public function addItem($key, ObjectX $item) {
  12.  
  13. if($this->hasItem($key)) {
  14.  
  15. throw new Exception('juz istnieje');
  16. }
  17. $this->_items[$key] = $item;
  18. }
  19. }
  20.  
  21. class ObjectX {
  22.  
  23. public function getName() { return $this->name; }
  24. }
  25.  
  26.  
  27. $collection = new CollectionX()
  28. $collection -> addItem(12, new ObjectX);
  29.  
  30. echo $collection -> getItem(12)->getName();



ps. zobacz do Zenda lub Symfony jak tam wyglądają kolekcje (ogólnie poczytaj na googlu o tym jak tworzą je ludzie z wieloletnim doświadczeniem i do czego można je wykorzystać)
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 - 12:31