PHP: Stocarea 'obiecte' interiorul $\_SESSION



Mi-am dat seama că nu pot de fapt **magazin de obiecte în $\_SESSION** și mi se pare destul de cool pentru că atunci când am sări la o altă pagină încă mai am de obiect. Acum, înainte de a începe să utilizați această abordare mi-ar place pentru a afla dacă este într-adevăr o idee bună sau dacă există **potențiale capcane** implicat. 


Știu că dacă aș avea un singur punct de intrare nu ar't nevoie pentru a face asta, dar am'm nu există încă, așa că am don't au un singur punct de intrare și mi-ar plăcea să-mi păstrez obiect pentru că eu nu't pierde starea mea de genul asta. (Acum am'am citit, de asemenea, că ar trebui să-program de apatrid site-uri dar eu nu't a înțelege acest concept încă.)


Deci **pe scurt**: Este ok pentru a stoca obiecte în sesiune, sunt ceva probleme cu ea?







Edit:


*Temporare rezumat*: Până acum am înțeles că este probabil **mai bine să recreeze** obiectul, chiar dacă aceasta presupune interogarea bazei de date din nou. 


În continuare răspunsuri putea **elabora pe acest aspect** un pic mai mult!
Știu că acest subiect este vechi, dar această problemă continuă să vină și nu a fost soluționată spre satisfacția mea:


Dacă salvați obiecte în $\_SESSION, sau de a le reconstrui întreaga pânză în baza de date a ascuns în câmpuri de formular ascunse, sau re-interogare-le din DB de fiecare dată, utilizați stat. HTTP este apatrid (mai mult sau mai puțin; dar vezi OBȚINE vs PUS), dar aproape tot ce-i pasă cuiva de-a face cu o aplicație web necesită de stat pentru a fi menținut pe undeva. Acționează ca în cazul în împingând stat în colțuri și crăpături se ridică la un fel de câștig teoretic este pur și simplu greșit. Statul este stat. Dacă utilizați stat, pierzi diverse avantaje tehnice acumulate de apatrid. Acest lucru nu este ceva pentru a dormi, cu excepția cazului în care știți că ar trebui să-și fi pierdut somnul din cauza asta.


Sunt deosebit de afectat de binecuvântarea primită de la "dubla" argumentele prezentate de Hank Gay. Este OP construirea unei distribuite și încărcare echilibrată sistem de e-commerce? Părerea mea este că nu, și nu va mai pleca de la premiza că serializarea lui $clasa de Utilizare, sau orice altceva, nu va infirm serverul lui de dincolo de reparații. Sfatul meu: foloseste tehnici care sunt sensibile la cererea dumneavoastră. Obiecte în $\_SESSION sunt bine, pot să-simț măsuri de precauție. Dacă aplicația se transformă brusc în ceva rivalizând Amazon în trafic servit, va trebui să re-adapteze. Ca's viață.
Mă aștept răspunsul real este pur și simplu: nu a fost un bun exemplu de utilizare. Pentru cazuri, avantajul este acela că permite o fluente API asupra tipurilor existente (care nu se furnizează logica) - și anume



```
var foo = data.Where(x=>x.IsActive).OrderBy(x=>x.Price).First();

```

care permite LINQ:



```
var foo = (from x in data
           where x.IsActive
           order by x.Price
           select x).First();

```

Cu metode statice, acest lucru pur și simplu nu este o problemă, astfel încât nu există nici o justificare; doar utiliza metoda statică pe al doilea tip.


Așa cum este, metodele de extensie nu sunt *corect* obiect orientate - ele sunt un abuz pragmatic pentru a face viața mai ușoară în detrimentul purității. Nu a fost nici un motiv pentru a dilua metode statice în același mod. eu zic ca e o intrebare buna chiar daca dispui de bani... e pacat sa ii arunci pe fereastra daca poti sa cumperi mai ieftin trebuie sa te asiguri ca obiectele sunt de acelasi tip cu hainele si cu coafurile tale. de obicei acest tip e "sim3pack" (pentru sims 3), daca obiectele sunt de tip "package" e foarte posibil sa nu iti mearga. iti sugerez sa cauti pe net un site de unde poti sa iei obiecte de tip "sim3pack". din nefericire, nu cunosc unul sa ti-l recomant. :( la amanet primești un preț mult mai mic deoarece amanetul trebuie să își scoată și ei cheltuielile; în plus amanetul trebuie să vândă un produs mai ieftin decât în magazin, deoarece produsele de acolo sunt considerate sh.
mai bine păstrezi bijuteria pentru o altă ocazie. sau o vinzi pe internet (dar trebuie să îi păstrezi și actele ca dovadă că nu este furată). intrucat situatia cu care va confruntati este una de natura juridica, va sfatuim ca, inainte de orice demers, sa consultati un specialist (consilier juridic / avocat); chiar daca nu apelati la servicii juridice permanente, informatiile obtinute intr-o sedinta de consiliere cu siguranta va vor ajuta sa va clarificati asupra demersurilor pe care trebuie sa le intreprindeti.
din informatiile noastre, nu exista astfel de conditii cu privire la dobandirea si exercitarea dreptului de proprietate de catre persoanele juridice.
deschiderea unui punct de lucru este considerata o optiune de extindere activitatii si nu o obligatie (deci un punct de lucru presupune o minima activitate).
o ingradire specifica persoanelor juridice este cea legata de incadrarea tuturor actelor si faptelor proprii in obiectul de activitate asumat, insa nu credem ca trebuie continuata aceasta analiza intrucat, din cate intelegem, aveti deja in desfasurare contracte de inchiriere.
un articol util despre infiintarea si declararea punctelor de lucru:

https://contabilul.manager.ro/a/12649/cand-declaram-obligatoriu-un-punct-de-lucru-e-situatia-diferita-cand-avem-un-depozit.html Nu știu care versiune de [Drupal](/cat17) pe care o
conduceți, dar nu ar trebui să facă atât de mult o altă diferență
decât modulele disponibile pentru dvs.


Practic, [Drupal](/cat17) are un API de cache care
funcționează prin stocarea a ceea ce vrea să cache în DB în tabele
care încep cu `cache _` , folosind
`cache_set` și `cache_get` . În cazul în care
site-ul are o mulțime de trafic, adăugate deasupra capului de
lectură și scrie la DB poate aduce în jos. Aceste funcții vor
funcționa cu oricare dintre modulele de cache pe care le înlocuiți
cu cel original, de exemplu cu:


Pentru a veni peste acest lucru, puteți adăuga diverse module
pentru a modifica memoria cache, de exemplu, utilizând
**[memcache](https://drupal.org/project/memcache)** , pentru a stoca valorile
cache-ului în memorie, mai degrabă în DB. Totuși, va trebui să
configurați o instanță memcache pe server și apoi să o configurați
în settings.php, dar toate acestea sunt explicate în memoria
readme.


Există o șansă foarte bună ca site-ul să sufere din cauza
viziunilor de pe pagină. M-aș uita la punctele de vedere și să văd
dacă fac ceva care este foarte lent. Vizionările sunt întotdeauna
grele în DB. Poate doriți să treceți prin fiecare vizionare și să
modificați (sau chiar să activați) temporizările și setările
cache-ului.


S-ar putea să suferiți deoarece aveți foarte mulți utilizatori
conectați pe site și vor trece de o mulțime de memorie cache,
astfel încât să puteți încerca **[Modul
AuthCache](https://drupal.org/project/%20authcache)** , care vă permite să reglați fin cache-ul
blocurilor pentru utilizatorii conectați.


De asemenea, puteți efectua anumite căutări pentru site-uri cu
trafic ridicat și cache pentru drupal. Am găsit destul de multe
când am fost otimizing un site am fost de lucru cu ~ 100'000 de
vizitatori pe zi. pai, nu indeplineste aceleasi functii. pe cel intern se afla fisierele sistemului, programelor, etc. care sunt solicitate in permanenta, iar pe cel extern solicitarile sunt facute manual de catre tine.
poti instala ce vrei pe ssd-ul extern, insa, tine mine!, unele programe sunt dependente de sistemul si fisierele din sistemul pe care au fost instalate, adica ele nu pun fisiere numai in locatiile cunoscute, ci stocheaza setari, preferinte, etc. si in alte locatii precum appdata si mai rar in folderul-mama, iar, de altfel, majoritatea jocurilor necesita anumite librarii de functii din fisiere continute in pachetele de visual c++, asta fac jocurile mai putin portabile pe alte sisteme. În bagajul de cală poți pune cam ce vrei, mai puțin obiectele interzise la transport pe avion (arme, explozibili, substanțe periculoase etc.) - x-box-ul nu e printre ele.
doar dacă l-ai avea în bagajul de mână ar trebui să-l scoți din traistă și să-l pui separat pe banda de scanare de securitate.
sacii de vidat sunt chiar foarte utili șa făcutul bagajului pentru avion, cu condiția ca la întoarcere să ai acces la un aspirator... :) cu siguranta nu in aur si argint. in opinia mea pretul este mare. s-ar putea sa urce insa nu mi se pare comod sa cumpar ceva cand se afla la apogeul istoric in ceea ce priveste pretul. prefer sa las pe cineva mai inteligent ca mine sa se imbogateasca din astfel de investitii. 
bursa este o optiune, insa nu cu un capital mai mare de 20-30% din suma de care dispuneti. imobiliarele sunt o optiune insa va trebuie o strategie, nu sa cumparati “orice”. 
prima regula in perioade de criza este sa puneti o mare parte din bani in depozite, pentru a-i avea disponibili in orice moment. 
in legatura cu propria afacere, ar trebui sa stiu cine sunteti, ce experienta aveti si avantajele dumneavoastra, ce vreti sa faceti, care este business planul si atunci va voi putea spune mai multe despre aceasta optiune. 
o sa scriu mai multe despre acest subiect incepand de saptamana viitoare in noua versiune a blogului meu: www.iliaspapageorgiadis.ro 
(si cateodata “lipsa de actiune este cea mai buna actiune”). daca le bagi in bagajul de cala, no problem. 
nu ai voie cu produse lichide, sau ma rog, chestii. in geata de mana :d