Componente caching în 1 bitrix - 1c-bitrix

Există situații în care un programator care execută proiecte în cadrul Bitrix este confundat în activitatea de cache a componentelor. În acest articol, vreau să explic mecanismul de auto-cache.







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.

Cum funcționează într-o componentă?

O componentă tipică Bitrix constă din următoarele fișiere:

  1. 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.
  2. 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.
  3. result_modifier.php - un fișier care se conectează la template.php și poate schimba $ arResult. cache în același mod ca template.php
  4. 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. În astfel de cazuri, se recomandă să copiați componenta este complet în numele său de câmp (în dosarul / bitrix / componentele /).

Schema componentei este următoarea:

  1. Validarea intrării în component.php
  2. Verificați dacă există un fișier template.php valid (activ) și memoria cache result_modifier.php. În cazul în care cache-ul este valid, atunci concluzia de umplere $ arResult și du-te la pasul 5.
  3. În cazul unei cache nevalide, se iau măsurile necesare pentru obținerea datelor. De fapt, array $ arResult
  4. Conectarea fișierelor result_modifier.php și template.php, generarea + html de ieșire, precum și "amintesc" această ieșire și o parte a array $ arResult
  5. Conectarea fișierului component_epilog.php
  6. Rularea restul codului în component.php

Amintiți-vă!

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 ()).

Navigare după înregistrări







Articole similare

Trimiteți-le prietenilor: