Articles

Նախորդ հոդվածներում մենք դիտարկել ենք՝ ինչ են սերվիսները, Dependency Injection-ը (DI) և ինչպես դրանք օգտագործել մեր Controller-ում և բլոկում․
12.15. Սերվիսներ և Dependency Injection։
12.15.1. Dependency Injection Controller-ում
12.15.2. Dependency Injection Բլոկում


Նախորդ հոդվածներում մենք ուսումնասիրեցինք՝ ինչ են Services-ը, Dependency Injection-ը (DI) և ինչպես դրանք օգտագործել մեր Controller-ում․
12.15. Սերվիսներ և Dependency Injection։
12.15.1. Dependency Injection Controller-ում
Այս հոդվածում ներկայացված է օրինակ, թե ինչպես ավելացնել սերվիսներ DI-ի միջոցով բլոկի դասում․
/modules/custom/drupalbook/src/Plugin/Block/CartBlock.php:


Նախորդ հոդվածում մենք դիտարկեցինք՝ ինչ է Dependency Injection-ը․
12.15. Սերվիսներ և Dependency Injection։
Այս հոդվածում ներկայացված է Dependency Injection-ի օրինակ՝ Controller-ում։
/modules/custom/drupalbook/src/Controller/ModalFormContactController.php:


Երբ մենք օգտագործում ենք Drupal և մեզ անհրաժեշտ է օգտագործել contrib մոդուլի կամ միջուկային մոդուլի կոդը custom մոդուլի մեջ, ապա մենք օգտագործում ենք hook-եր և services (սերվիսներ): Մենք արդեն օգտագործել ենք hook-եր այս հոդվածում․


Նախորդ հոդվածում մենք դիտեցինք, թե ինչպես ինտեգրել Views մոդուլները սեփական տվյալների բազայի հետ՝ «Did this help?» մոդուլի համար․
https://www.drupal.org/project/did_this_help
Այս հոդվածում մենք կվերագրենք Views ֆիլտրը «Ընտրություն» (այո/ոչ) դաշտի համար․


Views մոդուլը լայնորեն օգտագործվում է Drupal էկոհամակարգում։ Բովանդակության ցուցակներ, աղյուսակներ, բլոկներ, սլայդշոուներ, տվյալների արտահանում — այս բովանդակությունների տեսքերն, ամենայն հավանականությամբ, ցուցադրվում են Views-ի միջոցով։ Եթե դուք օգտագործում եք Բովանդակության տեսակներ, Բլոկի տեսակներ կամ այլ Էակների տեսակներ, ապա Views-ը արդեն ինտեգրված է դրանց հետ, և դուք կարող եք օգտագործել այն բովանդակության ցուցադրման համար։ Բայց եթե դուք ունեք սեփական մոդուլ, որը ստեղծում է հատուկ տվյալների բազայի աղյուսակ՝ hook_schema()-ի միջոցով, ապա անհրաժեշտ է ձեռքով ինտեգ


Սա տարածված դեպք է Drupal մոդուլների մշակման ընթացքում։ Պետք է օգտագործել entityQuery, որտեղ հնարավոր է, սակայն որոշ դեպքերում անհրաժեշտ է օգտագործել SQL հարցումներ՝ ավելի բարդ տվյալներ ստանալու համար։
Դուք կարող եք այս էջը ավելացնել էջանիշերում՝ որպես հիշեցում MySQL հարցումներ (select, insert, update, delete) կատարելու ձևի մասին Drupal-ում։
Select
Ստանալ մեկ արժեք՝


Իրադարձությունների համակարգը թույլ է տալիս կառուցել ավելի բարդ համակարգեր՝ հնարավորությամբ փոխել ֆունկցիոնալությունը որոշակի իրադարձությունների համար սեփական կոդի միջոցով։ Drupal 7-ում եղած շատ hook-եր փոխարինվել են իրադարձություններով։ Սա հնարավորություն է տվել միավորել Drupal-ի բազմաթիվ մասերի և լրացուցիչ մոդուլների աշխատանքը։ Իրադարձությունների համակարգը գալիս է Symfony-ից և բաղկացած է հետևյալ բաղադրիչներից՝


Նախորդ հոդվածներում մենք արդեն հանդիպել ենք hook-երին։ Այս հոդվածում մենք մանրամասն կդիտարկենք այն hook-երը, որոնք օգնում են աշխատել էակների հետ։
Այս հոդվածում դուք կարող եք ընդհանուր տեղեկություն ստանալ այն մասին, թե ինչ են hook-երը և ինչու են դրանք անհրաժեշտ՝
http://drupalbook.org/drupal/92-what-hook-drupal-8
Մենք կօգտագործենք hook-եր՝ մեր սեփական կոդը ավելացնելու համար, որը կգործարկվի որոշակի իրադարձությունների դեպքում՝ կապված էակների հետ՝ ավելացում, ջնջում, թարմացում։


Էակների հետ աշխատանքը Drupal-ում միատեսակ է, և բոլոր CRUD գործողություններն էլ նույնն են բոլոր էակների համար։ Այս հոդվածում մենք կսովորենք, թե ինչպես աշխատել էակների հետ սեփական կոդում։
Եկեք սկզբում դիտենք պարզ օրինակներ։
