Auto-caching-ul în 1C-Bitrix este un sistem bine dezvoltat și destul de complex, care permite reducerea numărului de apeluri către baza de date și accelerarea executării paginilor. Pentru a înțelege principiile și a le utiliza corect, orice Bitrix Developer de succes ar trebui să-l creeze pentru a crea proiecte rapide și de înaltă calitate. Astăzi vom vorbi despre relația dintre memoria cache și șablonul de componente.
Cum funcționează componenta
În primul rând, o mică descriere a componentelor componentei statistice medii din 1C-Bitrix:
- component.php - fișier cu codul care generează datele pentru șablon ($ arResult) și îl conectează. În plus, poate efectua orice acțiune după primirea datelor. De exemplu, setați titlul paginii sau adăugați elemente în lanțul de navigare.
- template.php - fișier șablon. În mod ideal, nu creează nicio logică, ci doar date de ieșire din $ arResult. ieșirea html este stocată în cache, adică Codul PHP din acest fișier va fi executat 1 dată, apoi html va fi returnat până la următoarea actualizare a cache-ului.
- result_modifier.php - un fișier care se conectează la template.php și poate schimba $ arResult. cache în același mod ca template.php
- component_epilog.php - fișierul care se conectează după template.php. Nu este memorat în cache.
Ultimele 3 fișiere aparțin șablonului, de preferință ele sunt editate. Component.php în componente standard nu poate fi schimbat, deoarece există șansa ca editările să fie șterse după actualizarea sistemului.
Schema generală a componentei poate fi reprezentată în mai multe etape:
- Validarea intrării în component.php
- Verificați prezența unei cache-uri valide (active) a fișierelor result_modifier.php și template.php. Dacă memoria cache este validă, ieșiți-o, completați $ arResult și treceți la pasul 5.
- În cazul unei cache nevalide, se iau măsurile necesare pentru obținerea datelor. De fapt, array $ arResult
- Conectarea result_modifier.php și template.php fișier, formarea de ieșire + html, precum și „depozitarea“ de această concluzie, și de matrice $ arResult
- Conectarea fișierului component_epilog.php
- Rularea restul codului în component.php
Lucruri de reținut
Conținutul matricei $ arResult diferă în diferite etape. În template.php result_modifier.php și devine o matrice care conține toate datele care au fost obținute în etapa 3. fișier component_epilog.php și codul de componente, care este executat după disponibile date $ arResult matrice cu chei care au fost enumerate în $ prezentul -> SetResultCacheKeys (Array ()). Apelul apare în componenta.
sunt disponibile în component_epilog.php începând cu (de exemplu, enumerate în SetResultCacheKeys) pot fi schimbate și template.php result_modifier.php Datele. Valoarea lor nouă va fi stocată în cache.
În result_modifier.php, puteți adăuga date în memoria cache.