Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Model
daniel1302
post 30.08.2009, 09:35:19
Post #1





Grupa: Zarejestrowani
Postów: 602
Pomógł: 30
Dołączył: 1.08.2007
Skąd: Nowy Sącz

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


Witam, od 2 dni szukam rozwiązania na swój problem, Bazując na frameworku Symfony, przenosząc treść obsługi do modelu zostałem zbeszczany i zrównany z ziemią. Pisząc post o wyjaśnienie mi problemu nikt nie odpisał. Do żadnego frameworka nie jest dodana aplikacja przykładowa w której model obsłuży baze lub XML
Proszę więc tutaj.

Proszę o podanie mi poprawnej implementacji modelu który obsłuży i bazę i XML.

Cyt. Crozin.
Jeżeli model ma korzystać z bazy danych to niech sobie z jakiegoś kontekstu (czy czegoś) pobierze obiekt i na nim operuje. Modele nie ograniczają się wyłącznie do lokalnej bazy danych...

Tego zdania nie zrozumiałem? Czy może mi ktoś wyjaśnić?
Go to the top of the page
+Quote Post
LBO
post 30.08.2009, 09:56:00
Post #2





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


Pisząc o modelu w Symfony chodzi tobie na pewno o obiekty Doctrine lub Propel. No cóż, są one warstwą dostępu do bazy danych i jako takie trudno jest je użyć wraz z XMLem.

Rozwiązaniem jest wrzucenie takich obiektów (takich, czyli obiektów Doctrine/Propel jak i twoich własnych operujących na XML) w jakiś interfejs.

Tutaj znajdziesz kilka słów na ten temat.

Ten post edytował LBO 30.08.2009, 09:57:14
Go to the top of the page
+Quote Post
daniel1302
post 30.08.2009, 12:39:32
Post #3





Grupa: Zarejestrowani
Postów: 602
Pomógł: 30
Dołączył: 1.08.2007
Skąd: Nowy Sącz

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


Czy mogę prosić o wytłumaczenie?
Każdy mówi, że model musi być elastyczny, że aby przejść z DB na XML wystarczy zmienić jedynie 1, 2 zmienne, ale każdy mówi, że niemożna mieszać XML i DB
Go to the top of the page
+Quote Post
Crozin
post 30.08.2009, 13:42:20
Post #4





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

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


Cytat
ale każdy mówi, że niemożna mieszać XML i DB
Skąd Ty te rewelacje bierzesz?

  1. <?php
  2.  
  3. class Abc{
  4. public function productsByCategory($categoryId){
  5. $xml = new MyOwnXMLReader('./data/products.xml');
  6. return $xml->find('/products[category=' . $categoryId . ']')->toArray();
  7. }
  8. }
Zmieniają się jakieś założenia... baza produktów zostaje przeniesiona do bazy danych.
  1. <?php
  2.  
  3. class Abc{
  4. public function productsByCategory($categoryId){
  5. $db = $this->getContext()->getDatabase();
  6. return $db->find('category=' . $categoryId)->fetchArray();
  7. }
  8. }
Potrzebujesz mieć równolegle dostęp do tych samych danych z dwóch różnych źródeł? Tworzysz interface i dwa obiekty go implementujące. Jeden odczytuje to z pliku (powiedzmy, że jest to cache), a drugi pobiera te dane z zewnętrznego serwera z xmla. Oba udostępniają ten sam interface, więc zmiana używanego obiektu ogranicza się do zmiany nazwy przy jego tworzeniu.
Go to the top of the page
+Quote Post
LBO
post 30.08.2009, 14:04:46
Post #5





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


Cytat(Crozin @ 30.08.2009, 14:42:20 ) *
...więc zmiana używanego obiektu ogranicza się do zmiany nazwy przy jego tworzeniu.


To - programowanie na interfejsach - jest szerokim zagadnienie i zwykła podmiana

  1. $model = new MyDatabaseModel();


na

  1. $model = new MyXMLModel();


to jest zwykły hack.
Go to the top of the page
+Quote Post
Cypherq
post 31.08.2009, 16:25:08
Post #6





Grupa: Zarejestrowani
Postów: 181
Pomógł: 9
Dołączył: 28.08.2006
Skąd: Katowice

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


Eeeee, to jak to inaczej się rozwiązuje?


--------------------
"Zero 'errorów' nic nie oznacza. Walidator sprawdza tylko składnię. Kod strony jest jak psu z d**y wyjęty i to, że walidator świeci się na zielono nie oznacza, że ta kupa jest ładna" - mike
Go to the top of the page
+Quote Post
LBO
post 31.08.2009, 17:20:27
Post #7





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


Ano spójrz sobie w google na wzorce kreacyjne, albo z bardziej kompleksowych rozwiązań np. kontenery IoC.
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: 28.03.2024 - 14:29