Կոնֆիգուրացիայի պահպանումը Drupal 8-ում
Դեֆոլտով կոնֆիգուրացիայի մասին տեղեկությունները 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 ֆայլի կարգավորումները բավարարում են ձեզ, ապա կարող եք դրանք պատճենել ձեր մոդուլ կամ թեմա։
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.