Articles

Նախորդ հոդվածներում մենք ուսումնասիրեցինք՝ ինչ են 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 գործողություններն էլ նույնն են բոլոր էակների համար։ Այս հոդվածում մենք կսովորենք, թե ինչպես աշխատել էակների հետ սեփական կոդում։
Եկեք սկզբում դիտենք պարզ օրինակներ։


Դաշտերի արժեքները ստանալը էակներից բավականին հեշտ է, բայց կան մի քանի տարբերակներ դա անելու։ Եկեք տեսնենք, թե ինչպես է լավագույնը աշխատել դաշտերի արժեքների հետ սեփական կոդում։ Դուք միշտ կարող եք տեսնել դաշտերի հետ աշխատանքի վերջին տեղեկությունները պաշտոնական կայքում.
https://www.drupal.org/docs/8/api/entity-api/working-with-the-entity-api
Այս հոդվածում մենք կդիտարկենք արժեքների հետ աշխատանքի օրինակներ։
