Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> XML zamiast MySQL
chfast
post 30.05.2003, 18:46:49
Post #1





Grupa: Zarejestrowani
Postów: 222
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Wrocław

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


Czy plikami XML można (skutecznie i bezproblemowo) zastąpić bazę MySQL? Jestem prawie pewien, że można, ale może są jakieś uwagi, przeciwskazania itp.
Głównie zastanawiam się nad awaryjnością. W przypadku zwykłych plików tekstowych zawsze wszyscy trąbili, że to się psuje, kaszani i w ogóle różne rzeczy się dzieją. Mi się jeszcze nic takiego nie przydarzyło, ale wcale nie wątpie, że to możliwe. Poza tym wygoda to faktycznie żądna.
No więc czy jest jakieś zagrożenie, że się coś popsuje w pliku XML? No w końcu to plik tekstowy... stąd te obawy.


--------------------
pozdrawiam, chfast
Go to the top of the page
+Quote Post
Jabol
post 30.05.2003, 19:15:29
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

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


plik XML jest do tego idealny, ale do czasu. W php nie ma wielowątkowości, kolejek, trasakcji itp. Więc taka baza danych (kiedyś coś takiego pisałem i nawet miało działać na zdalnych serwerach, ale zrezygnowałem) nie mogłaby odkładać zapytań w kolejke, więc musiałaby blokować zapytania następne (np. if(file_exists('currently_in_use'), lub flock XML'a)), co spowodowałoby znaczne obniżenie wydajności (SAX, czytanie jest dosyć szybkie i wydajne, ale DOMXML, zmiana i tworzenie, jest bardzo zasobochłonny).

Ogólnie polecam bardzie do zadań, w których nie trzeba danych często zmieniać oraz do stron o mniejszej ogladalności, chyba, że masz bardzo szybki serwer, który będzie mógł pozwolić sobie na takie opuźnienia dla zachowania wielowątkowści oraz spujności!
Go to the top of the page
+Quote Post
chfast
post 30.05.2003, 19:29:55
Post #3





Grupa: Zarejestrowani
Postów: 222
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Wrocław

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


Szczerze mówiąc o tym nawet nie pomyślałem. To faktycznie duże utrudnienie.
Zatanawiałem się nad zastosowaniem XML, bo aktualnie nie posiadam bazy SQL. XML byłby pewnym rozwiązaniem.
Narazię jest mi to potrzebne do zarządzania użytkownikami. Użytkownicy zbyt często nie edytują swoich danych. Jednak przy każdej sesji trzeba odczytać dane.
Widze pewne rozwiązanie - zapisywać dane każdego użytkownika do osbnego pliku. Tylko nie wiem jak jest z szybkością przeszukiwania katalogów.

Jeszcze chciałbym się dowiedzieć coś o wymienionych pakietach (żebym wiedział co czytać). SAX jest do odczytu a DOM do tworzenia plików, tak?
Nasuwa się pytanie - w jaki sposób edytować plik?


--------------------
pozdrawiam, chfast
Go to the top of the page
+Quote Post
Jabol
post 30.05.2003, 19:37:40
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

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


hmm, napisałem przecież
Cytat
SAX, czytanie jest dosyć szybkie i wydajne, ale DOMXML, zmiana i tworzenie
Tworzenie tutaj to nie mam na myśli tworznia plików, ale tworzenie XML'a.
Jeżeli chodzi przeszukiwanie katalogów, to po prostu zapisujesz usera jako user.name.xml i już możesz sprawdzać czy user istnieje za pomocą file_exists. Teraz jest natomiast problem z tym, że pliki takie łatwo byłoby odczytać, więc potrzebowałbyś jakiegoś czegoś w rodzaju katalogu prywatnego (wiele darmowych serwerów je obsługuje). O DomXML i SAX możesz poczytać w manualu, tam jest to naprawdę dobrze wyjaśnione (o ile znasz XML'a, głównie założenia).
Jeżeli robisz oddzielne pliki, to nie ma problemu z wielowątkowością (chyba robisz, że jeden username może miec paru userów winksmiley.jpg )
No tyle z moich rad. Teraz już nie powinieneś mieć problemu.
Go to the top of the page
+Quote Post
chfast
post 4.06.2003, 18:12:55
Post #5





Grupa: Zarejestrowani
Postów: 222
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Wrocław

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


Mam problem. Który rozdział manuala opisuje funkcje SAX? Nie moge nic takiego znaleźć.


--------------------
pozdrawiam, chfast
Go to the top of the page
+Quote Post
Jabol
post 4.06.2003, 18:23:36
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

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


hehe, nazwa jest troche myląca, ale SAX w php jest to po prostu defaultowy XML (co najmniej tak jest to opisane w znanych mi źródłach). Tylko pamiętaj, że działanie SAX'a opiera się na funckjach callbackowych, więc sam tesz będziesz się musiał pomęczyć!
Go to the top of the page
+Quote Post
chfast
post 4.06.2003, 20:26:48
Post #7





Grupa: Zarejestrowani
Postów: 222
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Wrocław

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


W takim razie to oznacza, że juz korzystałem z funkcji SAX biggrin.gif

A korzystając z okazji, że wspomniano o funkcjach callbackowych to jak mozna się odwołać do jakiejś metody obiektu (w moim przypadku chodzi o metodę tej samej klasy).


--------------------
pozdrawiam, chfast
Go to the top of the page
+Quote Post
Jabol
post 4.06.2003, 20:28:26
Post #8





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

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


a nie jest tak, że zamiast jednego argumentu podajesz dwa (w twoim przypadku ustaw_callback('this', 'metoda')winksmiley.jpg, czy jakoś tak.
Go to the top of the page
+Quote Post
chfast
post 4.06.2003, 20:43:18
Post #9





Grupa: Zarejestrowani
Postów: 222
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Wrocław

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


Przyznam, że nie bardzo rozumiem. Dla mnie funkcje callbackowe to nowość.

Dokładniejsze informacje mogą pomóc. Mam problem z funckją xml_set_element_handler().
Normalnie jest tak:
Kod
xml_set_element_handler($parser, 'nazwa_funkcji1', 'nazwa_funkcji2');

Ale jak odwołać się do metody obiektu?

******

Zanim zdąrzyłem to wysłać to już znalazłem odpowiedź. Aby używać parsera w obiekcie należy użyć funkcji xml_set_object(). Podaje składnię:
Kod
void xml_set_object ( resource parser, object object)


--------------------
pozdrawiam, chfast
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: 18.04.2024 - 10:37