Nejste přihlášen/a.

Přihlásit se do poradny

 

Uložení proměnných v scope webserveru(aka databáze)

Od: herd® odpovědí: 5 změna:
avatar herd
Je nějaká možnost, jak může PHP script uložit nějakou sdílenou stavovou proměnnou(informaci) globálně dostupnou pro ostatní PHP skripty příslušné k tomuto webserveru i v jiném čase? (dá se to nazvat sdílení stavu)
Vím, že to se obvykle řeší databází nebo to jde i přes soubor dokonce.
Ale zajímá mě přimo nějaká funkce která by přistupovala k nějakému prostoru webserveru. Představuji si to jako jako úryvek php kódu $_SERVER[identifikator], jako je HTTP_HOST, SERVER_NAME
Hledám v tom zjednodušení - databáze je kanón na vrabce a soubor nechává stopy/může ho někdo smazat, je dostupný i vně (je přeci na disku) a taky API fopen/fread/fwrite je o drobet komplikovanější než přiřazení proměnné v PHP
.Samozřejmě se všemi možnými důsledky co se týče atomicity(bez zámku)
A nebo alternativa - místo webserveru prostor proměnných php interpretu, jenže si myslím,že to neprojde, jelikož php má víc režimů běhu (fork, fpm) a z principu stav nesdílejí.

 

 

5 odpovědí na otázku
Řazeno dle hodnocení

 

 

hodnocení

0x
Co treba soubor na serveru? w3schools.com/...
Další možnost může být nějaká samostatně běžící appka ke které se php připojí pomocí tcp či jiného protokol. Ale tu appku byste si musel napsat.
php.net/...
Případně
php.net/...
Jinak můžete použít i nejaky messaging systém jako rabbitmq, Kafka, nosql db redis, mongo, cassandra.
hodnocení

Díky za další možnosti zmíněné , ale právě o databázi a souboru jsem psal. Hledal jsem něco směrem jednoduššího. (už soubor se skoro nejjednodušší) Jednak na implementaci (tcp, aplikace, messager systém) a jednak i na použití (téměr nulová konfigurace, připojování se, socket &tcp = na konci musí být opět něco co musím naprogramovat nebo zprovoznit)

Proto něco jako proměnná zpřístupněná webserverem, kterou by obsluhoval webserver ve svém stavovém prostoru a přistoupil bych k ní přirozeně přes proměnnou.

Neznám dobře lifecycle php scriptu či jak funguje apache nebo kde to bezi. Ve většině jazyků si můžete udělat globální proměnou, stav, která je přístupná kdekoliv z procesu. Ale pokud se pouští více procesu tak to nebude fungovat. Takové řešení samo není persistentni. Jestli se server restartuje, žádný globální stav.
hodnocení

To nevadí takto málo často (restart), server se nerestartuje každý den.

Ale PHP globální proměnná nejenže není vidět v jiném procesu, ale ani v jiném HTTP requestu. Já jsem měl právě na mysli proměnnou $_SERVER["..."], která není běžná "uživatelská" proměnná

 

hodnocení

0x

Odporucam otazku prepisat do anglictiny a navstivit specializovane fora ako stack overflow a pod

 

 


 

 

 

Přihlásit se k odběru odpovědí z této otázky:

Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz.

Používáním poradny vyjadřujete souhlas s personifikovanou reklamou, která pomáhá financovat tento server, děkujeme.

Copyright © 2004-2025 Poradna Poradte.cz. Všechna práva vyhrazena. Prohlášení o ochraně osobních údajů. | [tmavý motiv]