TwojePC.pl © 2001 - 2024
|
|
A R C H I W A L N A W I A D O M O Ś Ć |
|
|
|
[SOFT] PHP - jak stworzyc zmienna (najlepiej obiekt) dostepna dla wszystkich sesji? , bwana 19/06/03 19:04 Zaczynam tworzenie pewnej aplikacji w PHP i mam w niej m. in. dosc zlozona klase zagniezdzona (drzewo z wczytanymi roznymi informacjami z plikow - duzo przetwarzania).
Moim celem jest stworzenie jednokrotne obiektu tej klasy tak, by wielu roznych uzytkownikow aplikacji mialo do niego (nie do idealnej kopii, tylko do tej konkretnej instancji) dostep (chodzi o to, by dla wielu uzytkownikow zbednie nie tworzyc nowej instancji i wykonywac operacji plikowych, bo i po co, jesli dla wszystkich wczyta sie to samo).
Jedyny problem dla mnie to: jak stworzyc zmienne (w tym obiekty danej klasy) tak, aby byly one globalne w ramach calego serwera badz domeny. Nie chodzi o zmienne globalne typu $_COOKIE, bo one sa "pietro nizej" niz to, o co mi chodzi.
Jakies pomysly?;-D"you don't need your smile when I cut
your throat" - nie wiem po co to otworzylem , Wedrowiec 20/06/03 00:47
w sumie moglem sie spodziewac programowanie->powazne pytanie->(php)->bwana->wiesz po co to otworzyles masz nad czym myslec i za 2 lata moze tez spotkasz taki problem, jak tak to sie bedziesz cieszyl;)
sorry po prostu wymieklem. :)"Widziałem podręczniki
Gdzie jest czarno na białym
Że jesteście po**bani" - nie, no, to jest proste, moze tylko opisane niejasno , bwana 20/06/03 01:35
i w dodatku nadal nie wiem jak to lyknac. Superglobals sa tylko predefiniowane, czyli nie mozna stworzyc takich zmiennych samemu, ma sie tylko to co Bozia (znaczy silnik php) dala, stad podejrzewam, ze czegos o pietro wyzej w hierarchii tym bardziej nie ma.
Tym niemniej licze, ze ktos cos takiego zrobil i sie podzieli:-D"you don't need your smile when I cut
your throat"
- Zapytam nieco inaczej (efekt czesciowego olsnienia) , bwana 20/06/03 01:43
Czy skorzystanie z pamieci dzielonej do przechowania instancji obiektu jest poprawne w PHP? Tzn. czy jesli do pamieci dzielonej wstawie obiekt w ramach jednej sesji, to w drugiej sesji moge przejac tenze fragment pamieci rowniez jako obiekt? Intuicja mowi mi ze tak, ale obawiam sie, ze trzeba zwrocic uwage na pare rzeczy i moze ktos mi cos podpowie?
Tak czy inaczej przeprowadze eksperymenty i jak cos z tego wyjdzie, naskrobie tutaj pare slow dla potomnych."you don't need your smile when I cut
your throat" - Pomoc nadchodzi !!! , pachura 20/06/03 11:11
W PHP istnieje wprawdzie wsparcie dla pamięci współdzielonej (patrz rozdział "XCIV. Shared Memory Functions" manuala). Jednak ja raczej bym z tego nie korzystał - za bardzo zależy od systemu operacyjnego, nie wiem czy w ogóle chodzi po Windowsami...
Proponuje inne podejście: trzymać to w bazie danych. Pierwszy uruchomiony skrypt próbuje wyciągnąć Twój "obiekt-drzewko" z bazy; jeśli go nie ma, to wykonuje te skomplikowane obliczenia i insertuje go do tabeli... także następne skrypty będą już mogły z niego spokojnie korzystać.
Dodatkowo można dodać pole które będzie decydowało o tym czy "obiekt-drzewko" w bazie jest aktualne (np. datę do), czy też trzeba je ponownie przeliczyć.
Zapytasz pewnie jak umieszczać obiekty PHP w bazie? Nic prostszego, przed insertem dokonujesz serializacji obiektu (serialize()), po - deserializacji (unserialize()). I wszystko gra i buczy.- spoko wodza, serializacja jest ok , bwana 20/06/03 11:41
problem w tym, ze ten Wzglednie Duzy Obiekt (tm) ;-D jest i tak ladowany z pliku tekstowego; moglby sobie siedziec nawet na stale w bazie danych, tylko ze ani ja, ani klient poki co nie wiemy, czy i jaka baza danych bedzie dostepna dla aplikacji (upierdliwa sytuacja, nie?:)).
Poza tym uzycie bazy danych zawsze jest mniej wydajne, a bardziej zasobozerne niz uzycie pliku (choc przyznam, ze zwykle lenistwo czesto sklania mnie do wykorzystania BD bo tak jest zazwyczaj prosciej i wygodniej) - szczegolnie, kiedy chce sie przetwarzac silnie zagniezdzone obiekty (tutaj - drzewo).
Pokombinuje jeszcze z pamiecia dzielona - w manualu napisano, ze w Windows domyslnie nie dziala, dopoki nie wlaczy sie biblioteke php_shomp.dll - juz na starcie mnie zniechecilo:-D"you don't need your smile when I cut
your throat"
|
|
|
|
|
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL |
|
|
|
|