logo

Լրացուցիչ Բլոկների Տեսակներ (EBT) - Դասավորության Կառուցողի նոր փորձառություն❗

Լրացուցիչ Բլոկների Տեսակներ (EBT) - ձևավորված, կարգավորելի բլոկների տեսակներ՝ սլայդշոուներ, ներդիրներ, քարտեր, բացվող ցանկեր և շատ ուրիշներ։ Ներառված կարգավորումներ՝ ֆոնի, DOM տուփի, JavaScript փլագինների համար։ Փորձեք դասավորությունների կառուցման ապագան արդեն այսօր։

EBT մոդուլների ցուցադրական տարբերակներ Ներբեռնել EBT մոդուլները

❗Լրացուցիչ Պարբերությունների Տեսակներ (EPT) - Պարբերությունների նոր փորձառություն

Լրացուցիչ պարբերության տեսակներ (EPT) - անալոգիական պարբերության վրա հիմնված մոդուլների հավաքակազմ։

EPT մոդուլների ցուցադրական տարբերակներ Ներբեռնել EPT մոդուլները

Scroll

Twig-ի կոմպիլյացված կաղապարների դեբագավորում

19/06/2025, by Ivan

Menu

Ինչպես սովորաբար աշխատում է Twig-ը

Նախադրյալով Twig թեմաների շարժիչը կոմպիլացնում է կաղապարները PHP կոդի և պահում է կոմպիլացված կոդը հիշողության մեջ։ Կոմպիլացված կոդը հարմար չէ զարգացումային գործընթացի համար, քանի որ Twig կաղապարների փոփոխությունները անմիջապես չեն թարմացվում ձեր Drupal կայքում։

Երբ Twig-ն ավարտում է նշված HTML-ի պատրաստումը, Render API-ում ավելանում է ևս մեկ կեշավորման մակարդակ։ Այն վերցնում է Twig-ի պատրաստած HTML-ը և պահպանում է այն այնպես, որ Twig-ը չմասնակցի հաջորդ էջի հարցումներին, հետևաբար Twig-ի դեբագավորման պարամետրերը վերջին հաշվով անտեսվում են։

Կեշերը կարող եք մաքրել Drupal-ի քեշ մաքրելու ինտերֆեյսով, բայց զարգացումը հեշտացնելու համար ավելի լավ է փոխել Drupal-ի կարգավորումները այնպես, որ ոչ Twig-ն, ոչ Render API-ն որևէ բան չկեշավորեն։

Twig-ի և Render API-ի կարգավորում դեբագավորման համար

Twig-ի և Render API-ի երկու մակարդակները պետք է առանձին կարգավորվեն դեբագավորման նպատակներով․

1. Twig շարժիչը տրամադրում է դեբագավորման, ավտոմատ վերալիցքավորման (կոմպիլացման) և կոմպիլացված կաղապարների ֆայլային համակարգում կեշավորման կարգավորումներ, որոնք կարելի է սահմանել ձեր կայքի services.yml ֆայլում։
2. Render API-ի կեշավորումը կարգավորելի է ձեր կայքի settings.php ֆայլում։

Այս երկու քայլերը ստորև մանրամասն կներկայացնենք։

1. Twig-ի կարգավորում դեբագավորման համար

Դրա համար կարող եք օգտագործել Drupal Console կամ կատարել փոփոխությունները ձեռքով։

Ինչպես միացնել դեբագավորումը Drupal Console-ի միջոցով

Սկզբում ներբեռնեք Drupal Console։ Ապա գործարկեք․

drupal site:mode dev 

Հիշեք, որ այս հրամանը փոխում է բազմաթիվ կարգավորումներ, բայց ներառում է նաև հետևյալ փոփոխությունը ձեր sites/default/services.yml ֆայլում՝

twig.config: { debug: true } 

Դուք պետք է տեսնեք նման հետևյալ պատկերը՝

output_3

Ինչպես միացնել դեբագավորումը ձեռքով

1. Գտեք ձեր կայքի services.yml ֆայլը, որը սովորաբար գտնվում է sites/default/services.yml-ում
2. Եթե services.yml ֆայլը գոյություն չունի, պատճենեք default.services.yml-ը և վերանվանեք services.yml-ի։
3. Խմբագրեք services.yml ֆայլը և միացրեք մի կամ մի քանի դեբագավորման պարամետրերը, որոնք ներկայացված են ստորև՝
           - Twig-ի դեբագավորման տարբերակներ
           - Twig ավտոմատ վերալիցքավորում
           - Twig կեշավորում
4. Մաքրել կեշը։

Գտեք twig.config պարամետրերը ձեր services.yml-ում և փոփոխեք դրանք։ Օրինակ՝

parameters:
  twig.config:
    debug: true 

Դեբագավորման պարամետրերի տարբերակներ

Նշում․ դեբագավորումը չպետք է միացված լինի արտադրական միջավայրում։ Այս երեք պարամետրերը պետք է թողնել անսահմանափակ (դեֆոլտ) արտադրական միջավայրերում։

- debug (դեֆոլտ՝ false)

Երբ debug: true է.

  • Յուրաքանչյուր Twig կաղապարի HTML-ի կոդը շրջապատվում է մեկնաբանություններով, որոնք պարունակում են թեմաների վերաբերյալ տեղեկություններ՝ ներառյալ կաղապարային ֆայլերի անունների առաջարկություններ։
  • Զգուշացեք, որ այս դեբագային նշումները կխափանեն ավտոմատ թեստերը, որոնք ստուգում են արտածված HTML-ը։ Արդյունաբերական ավտոմատ թեստերի ընթացքում twig_debug-ը պետք է լինի FALSE։
  • dump() ֆունկցիան կարելի է օգտագործել Twig կաղապարներում՝ փոփոխականների տվյալների արտածման համար։
  • Twig կաղապարները ավտոմատ կկոմպիլացվեն, երբ փոփոխվի աղբյուրի կոդը (տես՝ Auto_reload ստորև)։

- auto_reload (դեֆոլտ՝ null, սահմանվում է debug-ի հիման վրա)

Երբ auto_reload: true է սահմանված.

  • Ավտոմատ կկոմպիլացնի Twig կաղապարները, երբ փոխվի աղբյուրի կոդը։ Եթե twig_auto_reload արժեք չեք տրամադրի, այն սահմանվում է twig_debug-ի հիման վրա։
  • Եթե հատուկ չեք ուզում auto_reload և չեք միացնում դեբագավորումը, այս պարամետրը չեք փոխի։ Պարզապես միացրեք դեբագավորումը։

- cache (դեֆոլտ՝ true, բայց կարող է շրջանցվել դեբագավորման կողմից)

Երբ cache: false է սահմանված.

  • Եթե չեք ունենում հատուկ օգտագործման դեպք, չպետք է անջատեք Twig կեշը։ Երբ միացնում եք Twig դեբագավորումը (կամ միայն auto_reload-ը), Twig կեշը չի խանգարի։ Կեշի անջատումը կհանգեցնի դանդաղ զարգացման, քանի որ Twig կաղապարները պետք է նորից կոմպիլացվեն, անկախ փոփոխությունից։ Հավելյալապես, դուք չեք կարող հեշտությամբ տեսնել կամ դեբագավորել Twig-ի կոմպիլացված կաղապարները (PHP դասեր, որոնք սովորաբար գտնվում են sites/default/files/php/twig թղթապանակում), եթե դրանք չեն պահվում դիսկում։
  • Դեֆոլտով Twig կաղապարները կոմպիլացվում և պահվում են ֆայլային համակարգում՝ արագացման համար։ Կեշի անջատումը կբերի Twig կաղապարների նորից կոմպիլացմանը ամեն անգամ, երբ դրանք օգտագործվում են։ Հիմնականում twig_auto_reload-ը պետք է միացված լինի, իսկ կեշը չպետք է անջատվի։

2. Render API կեշի կարգավորում դեբագավորման համար

Նախադրյալով Drupal-ը կեշավորում է բլոկների և սուբյեկտների ցանկացած ռենդեր, որպեսզի արագացնի հաջորդ էջի բեռնման արագությունը։ Սա նշանակում է, որ Twig կաղապարների փոփոխությունները դրանց համար չեն երևա անմիջապես։ Render կեշի կարգավորումը զրոյական կեշ օգտագործելու համար գործնականում անջատում է դա։

Կեշի անջատելու համար ավելացրեք հետևյալ տողերը՝

  • settings.php ֆայլում, փորձելով չավելացնել դրանք ձեր արտադրական կայքում
  • կամ settings.local.php-ում, սկզբում անջատելով այդ տողերը settings.php-ի ներքևում։

Այս տողերը՝

$settings['container_yamls'][] = DRUPAL_ROOT . '/sites/development.services.yml';
$settings['cache']['bins']['render'] = 'cache.backend.null';
$settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null'; 

Միգուցե դրանք արդեն լինեն ձեր settings.php-ում, բայց մեկնաբանված լինեն։ Եթե այո, պարզապես հանեք մեկնաբանությունը (բայց հետո մի մոռացեք նորից մեկնաբանել)։

Դուք դա արեցիք!

Twig API-ի և Render API-ի կարգավորումները ավարտելուց հետո մաքրել բոլոր կեշերը՝ օգտագործելով Drush կամ գնալով Կարգավորումներ -> Արդյունավետություն և սեղմելով «Մաքրել բոլոր կեշերը» կոճակը։

Վերջում թարմացրեք ստուգվող էջը․ պետք է տեսնեք Twig դեբագավորման տեղեկությունները էջի աղբյուրում, և Twig կաղապարների փոփոխությունները անմիջապես կկիրառվեն թարմացված էջում։

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.