logo

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

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

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

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

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

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

Scroll

Կոնֆիգուրացիայի պահպանումը Drupal 8-ում

19/06/2025, by Ivan

Menu

Դեֆոլտով կոնֆիգուրացիայի մասին տեղեկությունները Drupal 8-ում պահվում են տվյալների բազայում։

Կոնֆիգուրացիայի ֆայլի ձևաչափը (YAML)

Ընդարձակումները (մոդուլներ, թեմաներ և պրոֆիլներ) տրամադրում են կոնֆիգուրացիոն տվյալներ YAML ֆայլերում։

Ահա կոնֆիգուրացիայի ֆայլի օրինակ՝

some_string: 'Woo kittens!'
some_int: 42
some_bool: true

Կոնֆիգուրացիան կարող է նաև լինել ներդաշնակ։ Ահա օրինակ՝

name: thumbnail
label: 'Thumbnail (100x100)'
effects:
  1cfec298-8620-4749-b100-ccb6c4500779:
    id: image_scale
    data:
      width: 100
      height: 100
      upscale: true
    weight: 0
    uuid: 1cfec298-8620-4749-b100-ccb6c4500779

Կոնֆիգուրացիայի սխեմա

Կոնֆիգուրացիան ունի սխեմա, որը նկարագրված է կոնֆիգուրացիայի սխեմա/մետատվյալների մասին փաստաթղթերում։

Ընդարձակումների կոնֆիգուրացիայի դեֆոլտ արժեքներ

Ընդարձակումները (մոդուլ, թեմա կամ պրոֆիլ), որոնք տրամադրում են իրենց կոնֆիգուրացիայի դեֆոլտ արժեքներ, պետք է տեղադրեն դրանք YAML ֆայլերում իրենց config/install ենթաթղթակում։

Եթե ընդարձակմանը պետք են միայն պարզ կոնֆիգուրացիոն պարամետրեր, դեֆոլտ բոլոր պարամետրերը կարելի է տեղադրել մեկ modulename.settings.yml ֆայլում։ Ավելի բարդ պարամետրերի դեպքում կարելի է կոնֆիգուրացիան բաժանել մի քանի ֆայլերի։ Յուրաքանչյուր կոնֆիգուրացիայի օբյեկտ պետք է տեղադրվի իր սեփական YAML ֆայլում, և դրանք պետք է ավտոմատ սերնդվեն, երբ մոդուլը գրանցում է իր կոնֆիգուրացիան (մենաշնորհ մի փորձեք դրանք ձեռքով գրել)։

Եթե կոնֆիգուրացիայի դեֆոլտ արժեքները պահանջում են դինամիկ արժեքներ (որոնք, հետևաբար, չեն կարող տեղադրվել modulename.settings.yml-ում), դրանք պետք է սెట్ անել hook_install() ֆունկցիայում։ Օրինակ՝

/**
 * Implements hook_install().
 */
function modulename_install() {
  // Դինամիկ արժեքների համար դեֆոլտ արժեքներ սետ անելը։
  \Drupal::configFactory()->getEditable('modulename.settings')
    ->set('default_from_address', \Drupal::config('system.site')->get('mail'))
    ->save();
}

Ընդարձակումների չպարտադիր կոնֆիգուրացիան

Չպարտադիր կոնֆիգուրացիոն տարրերը ընդարձակումների (մոդուլների կամ թեմաների) համար պահվում են config/option ենթաթղթակում։

Սրանք կոնֆիգուրացիոն տարրեր են, որոնք կախված են ինչ-որ բանից, ինչը ընդարձակումն ինքներս բացահայտորեն կախված չէ, ուստի դրանք տեղադրվում են միայն բոլոր իրենց կախվածությունների առկայության դեպքում։

Օրինակ, եթե մոդուլ A-ն ունի չպարտադիր կոնֆիգուրացիա, որը պահանջում է մոդուլ B, բայց նախ տեղադրվում է մոդուլ A-ն, ապա որոշ ժամանակ անց B-ն, ապա config/option ենթաթղթակը մոդուլ A-ի համար ստուգվելու է նորահայտ կախվածությունների համար, և այդ ժամանակ կտեղադրվի կոնֆիգուրացիան։ Եթե B-ն երբեք չի տեղադրվի, ապա լրացուցիչ կոնֆիգուրացիան նույնպես չի տեղադրվի։

Ակտիվ կոնֆիգուրացիայի պահոց

Դեֆոլտով Drupal 8-ում ակտիվ կոնֆիգուրացիան պահվում է տվյալների բազայում՝ կատարողականությունն ու մասշտաբելիությունը բարձրացնելու համար։ Ավելին կարդացեք «Դեֆոլտ ակտիվ կոնֆիգուրացիան փոխվել է ֆայլային պահոցից տվյալների բազայի պահոցի» մասին հոդվածում։

Կոնֆիգուրացիայի թարմացում YAML-ից տվյալների բազա

Եթե զարգացումների ընթացքում պետք է թարմացնեք կոնֆիգուրացիան YAML ֆայլերից տվյալների բազա, կարող եք օգտագործել drush config-import (cim) հրամանը։
Խմբագրեք կոնֆիգուրացիայի YAML ֆայլը ակտիվ կոնֆիգուրացիայի թղթապանակում (ինչպես սահմանված է settings.php-ում, օրինակ՝ sites/default/files/config_6dh1U_2YKLGrrh5oLxAgobbledygook/sync), ապա գործարկեք drush cim։ Очистите кешը (drush cr), чтобы увидеть изменения.
Եթե ձեր YAML ֆայլի կարգավորումները բավարարում են ձեզ, ապա կարող եք դրանք պատճենել ձեր մոդուլ կամ թեմա։