logo

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

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

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

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

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

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

Scroll

Կոր նախագծի թարմացում Composer-ով

21/06/2025, by Ivan

Այս փաստաթուղթը համակարգչային չէ։ Ավելացրեք ավելի շատ տեղեկություններ։

Նվազագույն խնդիրներ Drupal 8.8.0 կամ ավելի բարձր տարբերակին թարմացնելու ժամանակ?
Drupal 8.8.0-ում Composer նախաձեռնության շրջանակում կատարվել են հիմնական փոփոխություններ, որոնք զգալիորեն կլավացնեն Composer-ի աշխատանքը Drupal կայքերի կառավարման համար։ Սակայն կան որոշ առանձնահատուկ նկատառումներ, որոնք կարող են ազդել նախորդ տարբերակներից թարմացման վրա։

Սկզբնական քայլեր

Composer-ի կողմից Drupal կախվածությունների կառավարման մասին տեղեկանալու համար դիտեք Composer-ի օգտագործումը Drupal-ով։ Թարմացման համար Composer-ի օգտագործման ռացիոնալ լինելու որոշման համար համեմատեք հասանելի տարբերակները։

Հարմարության համար այս հրահանգներում ներառված են Drush-ի հրամաններ, որոնք անհրաժեշտ են թարմացման ավարտին հասցնելու համար․ շատերը գտնում են, որ Drush-ը ավելի արագ և հեշտ է, քան վեբ ադմինիստրացիայի վահանակը։

Եթե դա գոյություն ունեցող Drupal կայք է, որտեղ Composer երբեք նախկինում չի օգտագործվել, նախ համոզվեք, որ այն պատրաստ է Composer-ի համար։

Drupal 8-ի հիմնական թարմացում

Նախ համոզվեք, որ Drupal-ի հիմնական թարմացումը իսկապես հասանելի է․

composer update --dry-run "drupal/*"

Սա կցուցադրի ցանկացած հասանելի մինոր կամ փաչ թարմացում; օգտագործեք հնացած composer "drupal/*", եթե ցանկանում եք իմանալ հիմնական տարբերակների թարմացումների մասին։ (Տեսեք Semver 2.0՝ հիմնական, երկրորդային և փաչ տարբերակների բացատրության համար)։ Եթե չկա "drupal/core"-ով սկսվող տող, Composer-ը թարմացումներ չունի։ Նշեք՝ կա՞ արդյոք "drupal/core-recommended" տողը։ Եթե կա թարմացում, շարունակեք ստորև բերված հրամաններով։

Միասնական թարմացման հրահանգ

Հաշվի առնելով, որ դուք ծանոթ եք Drupal-ի թարմացման ընթացակարգին և գիտեք անհրաժեշտ նախազգուշացումները, թարմացումը այսպես է կատարվում․

composer update drupal/core --with-dependencies
drush updatedb
drush cache:rebuild

Փոխարինեք drupal/core-ը core-recommended-ով, եթե ձեր կայքը օգտագործում է core-recommended։ Կարող եք դա իմանալ ձեր composer.json ֆայլից կամ composer update --dry-run-ի արդյունքներից։

Եթե դուք սկզբնականում ձեր կայքը ստեղծել եք drupal-composer/drupal-project-ի միջոցով, վերոհիշյալ հրամանը կարող է չաշխատել։ Խնդրում ենք ծանոթանալ ստորև ներկայացված հատուկ նկատառումներին։

Թարմացում 8.8.0 կամ ավելի բարձր տարբերակին

Վերջին drupal-composer/drupal-project տարբերակը համատեղելի է Drupal 8.8.x-ի հետ։ Սակայն եթե դուք ձեր կայքը ստեղծել եք 2019 կամ ավելի վաղ տարիներին, հավանական է, որ անհրաժեշտ կլինեն որոշ լրացուցիչ քայլեր 8.8.0 կամ ավելի նոր թարմացման ժամանակ։ Դրանք մանրամասն նկարագրված են ստորև՝ հատուկ նկատառումներում։

Եթե Drupal 8-ը չեք տեղադրել Composer-ով

Եթե չեք տեղադրել Drupal 8 Composer-ով, պետք է փոխակերպեք ձեր կայքը Composer-ի կողմից կառավարվող նախագծի, որպեսզի կարողանաք թարմացնել Drupal-ը վերոհիշյալ հրամաններով։ Տեսեք Composer-ի ավելացում գոյություն ունեցող կայքերին՝ քայլ առ քայլ ուղեցույց Composer-ի ձեռքով ավելացման համար Drupal 8 կայքերին, որոնք նախկինում տեղադրվել էին առանց Composer։

Քայլ առ քայլ թարմացման հրահանգներ

Ահա Drupal 8-ի հիմնական թարմացման բոլոր քայլերը composer-ի միջոցով․

  1. Luպահովեք ձեր ֆայլերի և տվյալների բազայի կրկնօրինակում թարմացումից առաջ։
    • drush sql:dump հրամանը արտահանում է տվյալների բազան։
    • Դժբախտաբար, drush archive-dump-ը հանվել է Drush 9-ից, ուստի հարկ կլինի CLI-ի ստանդարտ գործիքը օգտագործել անհրաժեշտ թղթապանակների կրկնօրինակում ստանալու համար՝ սովորաբար բացառելով vendor թղթապանակը։
  2. Կարդացեք թարմացման հիմնական նշումներն։ Որոշ հավելվածներ կամ թեմաներ կարող են պահանջել թարմացում նոր մինոր Drupal հիմնական տարբերակի համար (օրինակ՝ 8.3-ից 8.4), իսկ փաչ-թարմացումները (օրինակ՝ 8.4.4-ից 8.4.5) սովորաբար դա չեն պահանջում։ Թարմացման համար անհրաժեշտ հավելված կամ թեմա հասկանալու համար կարդացեք նախագծի էջը կամ թողարկման նշումները։
  3. Ակտիվացրեք սպասարկման ռեժիմը՝ օգտագործելով ստատուսը. system.maintenance_mode 1, ապա մաքրել կեշը՝ cache rebuild-ով։
  4. Եթե որոշ հավելվածներ կամ թեմաներ պետք է թարմացվեն, հետևեք հավելվածների թարմացման հրահանգներին։
  5. Թարմացրեք Drupal-ի հիմնական կոդը և բոլոր կախվածությունները․
    • Կատարեք հետևյալ Composer հրամանը․
    composer update drupal/core --with-dependencies
    
    • Փոխարինեք drupal/core-ը drupal/core-recommended-ով, եթե ձեր կայքը օգտագործում է core-recommended։
    • Եթե ձեր կայքը ստեղծվել է drupal-composer/drupal-project օգտագործելով, դիտեք ստորևի հատուկ նկատառումները առաջին 8.8.0 կամ ավելի նոր թարմացման համար։
  6. Այնուհետև կիրառեք անհրաժեշտ տվյալների բազայի թարմացումները drush updatedb-ով և մաքրել կեշը drush cache:rebuild-ով։
  7. Եթե օգտագործում եք կոնֆիգուրացիայի կառավարում, թարմացումներից հետո անպայման արտահանեք կոնֆիգուրացիան drush config:export հրամանի միջոցով, քանի որ հիմնական թարմացումները կարող են փոփոխել կոնֆիգուրացիայի ֆայլերի կառուցվածքը կամ ավելացնել նոր արժեքներ։ Օգտագործեք --diff տարբերակը՝ փոփոխությունները տեսնելու համար։
  8. Հաստատեք, որ ձեր Drupal կայքն աշխատում է ճիշտ․
  9. Անջատեք սպասարկման ռեժիմը drush state:set system.maintenance_mode 0 հրամանով, ապա մաքրել կեշը՝ drush cache:rebuild։
  10. Սպասարկման ռեժիմի անջատումից հետո ստուգեք ձեր կայքը որպես անանուն օգտագործող։

Արտադրական միջավայրում

  • Դուք չեք պետք է կրկնեք վերոհիշյալ ամբողջ գործընթացը, քանի որ composer install կարդում է composer.lock-ում բոլոր փաթեթների կոնկրետ վարկածները, ուստի ձեր երկու միջավայրերում էլ նույնը կլինի։
  • Եթե ունեք տարբեր dev/staging և production սերվերներ, համոզվեք, որ composer.json և composer.lock ֆայլերը տեղափոխում եք արտադրության, և միշտ գործարկեք composer install --no-dev արտադրությունում, այլ ոչ թե թարմացումներ կատարեք։ --no-dev տարբերակն անջատում է 'require-dev'-ում նշված փաթեթների տեղադրումը, որոնք սովորաբար ծրագրավորման համար են։

Հատուկ նկատառումներ Drupal 8.8.0 և ավելի նոր թարմացման ժամանակ

Drupal PreviousNext բետա-ծրագրի պաշտոնական գործընկերը հրապարակել է օգտակար բլոգ գրառում՝ Drupal 8.7-ից Drupal 8.8.0 բետա թարմացման քայլերի մասին, որը կարող է օգնել նրանց, ովքեր ունեն խնդիրներ այս թարմացման հետ։

Նախորդ Drupal տարբերակներից Drupal 8.8.0-ի Composer-ով թարմացման հիմնական խնդիրն է փոխել հանրային տրամադրված composer նախագծից դեպի նոր պաշտոնական drupal/recommended-project։ Ստորև նշված քայլերը կլուծեն ձեր տեղադրումը, որպեսզի կարողանաք օգտագործել ստանդարտ թարմացման հրահանգները, ինչպես նշված է վերևում։

Փորձեք ջնջել /vendor թղթապանակը

Ջնջելով vendor թղթապանակը երբեմն հնարավոր է վերացնել Composer թարմացման կոնֆլիկտները։ Սա անելու համար․

cd your_install_dir

rm -rf vendor

Այնուհետև կարող եք շարունակել թարմացման հրամանները կամ այլ միջոցներով խնդրի լուծումը։

webflo/drupal-core-strict-ից drupal/core-recommended-ին միգրացիա

8.8.0-ից առաջ շատ կայքեր օգտագործում էին webflo/drupal-core-strict մետափաթեթը՝ Drupal-ի հիմնական կախվածությունները սեղմելու համար։ 8.8.0-ից սկսած Drupal-ն առաջարկում է drupal/core-recommended փաթեթը այդ նպատակի համար։ Սակայն այս անցումը չի կատարվում ավտոմատ կերպով թարմացման ժամանակ, և webflo/drupal-core-strict-ը չի աշխատում 8.8.0-ում։

Ամենահեշտ ձևը անցումը կատարելու և կոնֆլիկտներից խուսափելու համար՝ ջնջել composer.lock ֆայլը թարմացման ժամանակ։ Սակայն այս քայլը կարող է թարմացնել նաև մյուս կախվածությունները։ Ստորև բերված քայլերով կարող եք վերահսկել թարմացվող փաթեթները։

  1. composer update # Թարմացնել բոլոր կախվածությունները առանձին քայլով։
  2. git add composer.lock; git commit # Պահպանել փոփոխությունները առանձին կոմիտում։
  3. composer remove webflo/drupal-core-strict --no-update
  4. composer remove drupal/core --no-update
  5. composer require 'composer/installers:^1.7' --no-update
  6. rm composer.lock
  7. rm -rf vendor # Սպասարկում է կոնֆլիկտներից խուսափել։
  8. composer require drupal/core-recommended:^8.8 --update-with-dependencies
  9. git add composer.json composer.lock; git commit -m "Update Drupal to 8.8.0 and use drupal/core-recommended instead of webflo/drupal-core-strict"

webflo/drupal-core-require-dev-ից drupal/core-dev միգրացիա

Եթե ձեր կայքը ստեղծվել է ավելի վաղ, հնարավոր է, որ օգտագործել է webflo/drupal-core-require-dev մետափաթեթը՝ Drupal-ի մշակման կախվածություններն ընդգրկելու համար։ Եթե չեք օգտագործում զարգացման կախվածություններ, կարող եք պարզապես ջնջել webflo/drupal-core-require-dev-ը։ Հակառակ դեպքում սկսեք օգտագործել drupal/core-dev նախագիծը։

Առաջին քայլ՝ հին մշակման գործիքների փաթեթը հեռացնել․

composer remove --dev webflo/drupal-core-require-dev

Եթե չեք ցանկանում զարգացման գործիքներ, կարող եք կանգ առնել այստեղ։ Եթե ցանկանում եք կրկին տեղադրել, օգտագործեք պաշտոնական մեթոդը՝

composer require --dev drupal/core-dev

Փաչերի թարմացում

Եթե օգտագործում եք cweagans/composer-patches փաչերի կիրառման համար, հնարավոր է, որ անհրաժեշտ լինի փաթելել դրանք կրկին։ Փաթելը ավարտելուց հետո պետք է թարմացնեք patch-ը composer.json-ի extra/patches հատվածում։

Բարդ կախվածությունների թարմացում

Մի քանի դեպքերում ծրագրային կախվածություն կարող է համատեղելի չլինել Drupal-ի վերջին տարբերակի հետ։ Այս դեպքում լուծումը կլինի composer require որոշակի տարբերակների՝ թարմացնելով միջուկը և ապա հեռացնելով չպահանջվող կախվածությունները։

Այս օրինակն առնվազն ներկայացված է PreviousNext-ի լավ գրառումից

Նախ պահանջվում են նոր Drupal միջուկ և կախվածություններ՝

composer require --update-with-dependencies \
drupal/core:^8.8.0 \
symfony/finder:^3.4 \
symfony/filesystem:^3.4

Այնուհետև նոր core-dev փաթեթ և դրա կախվածություններ՝

composer require --dev --update-with-dependencies \
drupal/core-dev:^8.8.0 \
symfony/debug:^3.4 

Եվ վերջապես, հեռացրեք չպահանջվող կախվածությունները՝

composer remove -n \
symfony/finder \
symfony/filesystem \
composer remove -n --dev symfony/debug

Տվյալների բազայի կոնֆիգուրացիայի և սխեմայի թարմացում

Կոդի թարմացումից հետո անհրաժեշտ կլինի թարմացնել տվյալների բազայի կոնֆիգուրացիան և սխեման՝

drush updb
drush cr
drush config-export

Settings.php թարմացում

Drupal 8.8.0-ում սինքրոնիզացիայի թղթապանակը սահմանվում է $settings-ում, այլ ոչ թե $config_directories-ում։ Ուստի անհրաժեշտ է թարմացնել Settings.php ֆայլը։

Պարզապես փոխարինեք՝

$config_directories['sync'] = 'foo/bar';

այդպես՝

$settings['config_sync_directory'] = 'foo/bar';

Ցանկացած խնդիրների և լուծումների մասին

Եթե դուք գործարկեք վերոնշյալ composer update հրամանը, բայց drupal/core-ը չի թարմանա, հնարավոր է, որ կան այլ կախվածություններ, որոնք արգելափակում են թարմացումը։ Կարող եք ստուգել դա composer prohibits հրամանով։ Օրինակ, եթե փորձում եք թարմացնել 8.4.5-ից 8.5.0, գործարկեք composer prohibits drupal/core:8.5.0, և հրամանը կցուցադրի այն կախվածությունները, որոնք արգելափակում են թարմացումը։ Թարմացրեք այդ կախվածությունները միասին drupal/core-ի հետ, և թարմացումը կկատարվի (օրինակ՝ composer update drupal/core "symfony/*" --with-dependencies)։

Composer թարմացման խնդիրները հաճախ կապված են composer.json-ի սխալ պարամետրերի կամ հին տիպարների հետ։ Համոզվեք, որ օգտագործում եք Composer-ի ճիշտ տիպար, ինչպես նշված է Drupal 8-ի Օգտագործողի ուղեցույցի 3.5 գլխում։ Տեսեք նաև Composer-ի ձեռքով ավելացման քայլ առ քայլ ուղեցույցը Drupal 8-ի գոյություն ունեցող կայքերին։

2020 թվականի հունվարից Composer-ի drupal-composer/drupal-project տիպարը այլևս չի համարվում Drupal 8.8-ից բարձր տարբերակների համար։ Մի քանի ամիս անց, մինչև 3.5 գլուխը կթարմացվի, օգտագործեք Համայնքային ուղեցույցը՝ Drupal Composer նախագծերի տիպարներով կայք սկսելու համար։

Այլ օգտակար խնդիրներ և բլոգ գրառումներ․

Թարմացման ընթացքի մեջ հայտնված սխալների կամ նախազգուշացումների դեպքում լավ է ուշադիր կարդալ դրանք և որոնել հնարավոր լուծումներ խնդիրների հերթերում նախքան շարունակելը։ Կատաղական սխալի դեպքում խորհուրդ է տրվում կանգ առնել թարմացման գործընթացը և սկսել կրկին՝ օգտագործելով նախապես պատրաստված կրկնօրինակը։

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.