Articles

Տվյալների բազայի API-ն սխալի դեպքում նետում է բացառություններ, որոնք կարող են բռնվել, երբ տվյալների բազայի գործողությունները ներմուծվում են try {} catch() {} բլոկների մեջ, ինչպես ցույց է տրված այս օրինակով՝


Drupal-ի տվյալների շերտը չի ապահովում SQL ֆունկցիաների բազաների միջեւ արտացոլում: Նորաբացատրելիությունն ապահովելու համար ձեր կոդը պետք է օգտագործի միայն այն ֆունկցիաները, որոնք հայտնի են որպես ANSI ստանդարտի մաս և աջակցվում են Drupal-ի կողմից աջակցվող բոլոր տվյալների բազաներում: Դ 아래 նշվածը դեռ ամբողջական ցանկ չէ: Այստեղ օգտագործված ձևաչափը խորհուրդ է տրվում, քանի որ այլ սինտաքսային տարբերակներ կարող են չաշխատել բոլոր տվյալների բազաներում։


Drupal 8-ի Entity համակարգը
Entity-ները տիպավորված դասեր են մեթոդներով
Ընդհանուր մեթոդներ |
$entity->id() |
Entity-ի տիպին հատուկ մեթոդներ | $node->getTitle() |


- Drupal 7-ում Entity-ները սովորաբար stdClass օբյեկտներ էին:
- Drupal 8-ում Entity-ները այժմ հատուկ տիպավորությամբ օբյեկտներ են, և յուրաքանչյուր Entity տիպ սահմանում է դաս, որը կկիրառվի տվյալ Entity-ի օրինակների համար:
Պահանջներ
Entity դասերը պետք է գտնվեն մոդուլի Entity ենթաստեղծության մեջ, որը տրամադրում է Entity տիպը, օրինակ՝ \Drupal\[module_name]\Entity։ Սա նշանակում է, որ PHP Entity դասերի ֆայլերը պետք է գտնվեն մոդուլի src/Entity թղթապանակում։


Փոխանցում է ընդհանուր օբյեկտի API մեթոդները
- Entity::create()
- Entity::load()
- Entity::save()
- Entity::id()
- Entity::bundle()
- Entity::isNew()
- Entity::label()
Ավելին կոնկրետ API-ներ կքննարկվեն համապատասխան գլուխներում։


Drupal 8-ում փաթեթները (bundles) տեղեկատվության պահոցների տեսակ են, որոնք պարունակում են դաշտերի սահմանումներ կամ կարգավորումներ։ Դրանք երբեմն կոչվում են «փոխատիպեր»։ Փաթեթները ընտրովի են և տեղակայվում են էնթիթի տեսակների տակ տեղեկատվական պահոցների հիերարխիայում։


Կոնֆիգուրացիոն օբյեկտները օգտագործում են Entity API՝ կոնֆիգուրացիան պահպանելու համար տվյալների բազայում։
Տարբերությունները համեմատած Content Entity-ի հետ
- Inteգրված է CMI API-ի հետ՝ արտահանման հնարավորությամբ
- Առանց դաշտերի
- Սխեմայի ֆայլ (Content Entity-ն օգտագործում է hook_schema())
Ուսուցողական նյութեր


Այս հուշատախտակը պարունակում է բովանդակության օբյեկտների հաճախ օգտագործվող մեթոդների, դասերի և ինտերֆեյսների ակնարկ:


Դիտարանութիւն
Այս փաստաթուղթը նախատեսված է առաջին հերթին օբյեկտային PHP ծրագրավորման փորձ ունեցող ծրագրավորողների, Drupal 6 կամ Drupal 7-ի փորձ ունեցող և նրանց համար, ովքեր ցանկանում են ուսումնասիրել Drupal 8-ի սկզբունքները:
Drupal 8-ում Content Entity տիպի ստեղծման փաստաթուղթը պարունակում է հասանելի բոլոր ընտրանքների ամբողջական ցանկը։
Content Entity տիպի ստեղծում առանց բունդլի Drupal 8-ում
Այս դեպքում մենք ստեղծում ենք Drupal 8-ի content entity, որը չունի որևէ բունդլ։


Այս էջը պատճեն է Drupal 8 մոդուլի «Ավտոմատ միացնել» կոնֆիգուրացիայի։ Կայուն համարեք որպես վերահինացում։
Օգտվողի կոնտենտի տիպի ստեղծումը շատ հեշտացել է նոր կոնֆիգուրացիոն API-ի շնորհիվ, որը ներառված է Drupal 8-ում։
