logo

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

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

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

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

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

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

Scroll
19/06/2025, by Ivan

Drupal-ի տվյալների բազայի շերտը կառուցված է PHP-ի PDO գրադարանի հիման վրա։ PDO-ն տրամադրում է միատեսակ օբյեկտա-կենտրոնացված API տարբեր տվյալների բազաներ մուտք գործելու համար, սակայն չի ապահովում SQL-ի տարբեր բազաների մեջ օգտագործվող դիալեկտների անաբստրակցիա։

Դրայվերներ

Քանի որ տարբեր տվյալների բազաներ պահանջում են տարբեր փոխգործակցության ձևեր, Drupal-ի տվյալների բազայի շերտը պահանջում է յուրաքանչյուր տվյալների բազայի տիպի համար համապատասխան դրայվեր։ Դրայվերը բաղկացած է ֆայլերի շարքից, որոնք գտնվում են include/database/driver թղթապանակում, որտեղ driver-ը դրսևորում է այս դրայվերի եզակի բանալին։ Շատ դեպքերում դրայվերի բանալին տվյալների բազայի անվան փոքրատառ տարբերակն է, օրինակ՝ «mysql», «pgsql» կամ «mycustomdriver»։

Յուրաքանչյուր դրայվեր բաղկացած է մի քանի դասերից, որոնք ժառանգում են տվյալների բազայի հիմնական համակարգի ծնողական դասերից։ Դրայվերին հատուկ դասերը կարող են վերագրավել ցանկացած պահվածք, որը անհրաժեշտ է տվյալ տվյալների բազայի տեսակը ճիշտ աջակցելու համար։ Դրայվերին հատուկ դասերի անունները միշտ կոչվում են ծնողական դասի անվան և դրայվերի անունից բաղկացած՝ ստորակետով բաժանված։ Օրինակ՝ MySQL-ի համար InsertQuery դասը կոչվում է InsertQuery_mysql։

Կապեր

Կապը DatabaseConnection դասի օբյեկտ է, որը ժառանգվում է PDO դասից։ Drupal-ին միացած յուրաքանչյուր տվյալների բազայի հետ կապված է մեկ կապի օբյեկտ։ Այս կապի օբյեկտը պետք է ենթադասավորվի յուրաքանչյուր դրայվերի համար առանձնացված դասերին։

Կապի օբյեկտին մուտք գործելու (և անհրաժեշտության դեպքում բացելու) համար օգտագործեք՝

$database = \Drupal::database();
// Կամ
$database = \Drupal::service('database');

Եթե ծառայությունները դեռ հասանելի չեն, \Drupal\Core\Database\Database::getConnection() կարող է ստանալ տվյալների բազայի կապը։

Կապի բանալիին և նպատակին առնչվող լրացուցիչ տեղեկությունների համար նայեք Տվյալների բազայի կոնֆիգուրացիայի էջը։

Ընթացիկ ակտիվ կապին մուտք գործելու համար օգտագործեք՝

$conn =  \Drupal\Core\Database\Database::getConnection();

Սա կվերադարձնի ակտիվ կապի ստանդարտ նպատակն՝ «default»-ը։

Նշեք, որ մեծ մասում դեպքերի ձեզ հարկավոր չէ ուղղակիորեն պահանջել կապի օբյեկտը։ Փոխարենը պրոցեդուրալ ոճի օղակները դա կանեն ձեր փոխարեն։ Միակ դեպքը, երբ կարող է անհրաժեշտ լինել ուղղակի մուտք ունենալ կապի օբյեկտին, այն է, եթե դուք անում եք բարդ աշխատանք մի քանի տվյալների բազաների հետ և չեք ցանկանում փոխել ակտիվ տվյալների բազան։

Ակտիվ կապը կարգավորելու համար օգտագործեք՝

$conn = \Drupal\Core\Database\Database::setActiveConnection('external');

Լրացուցիչ տեղեկությունների համար, ինչպիսիք են կապի բանալիները և նպատակները, տես հաջորդ բաժինը՝ Տվյալների բազայի կոնֆիգուրացիա։

Հարցումներ

Հարցումը SQL հրամանն է, որը ուղարկվում է տվյալների բազայի կապին։ Տվյալների բազայի համակարգը աջակցում է վեց տեսակի հարցումներ՝ σταտիկ, դինամիկ, insert, update, delete և merge։ Որոշ հարցումներ գրվում են որպես SQL տեքստի ձևանմուշներ (պատրաստված հարցումներ), իսկ մյուսները օգտագործում են օբյեկտա-կենտրոնացված հարցումների ստեղծողներ։ «Հարցման օբյեկտ» տերմինը վերաբերում է այդ տարբեր հարցումների ստեղծողների օրինակներին։

Հայտարարություններ

Հայտարարության օբյեկտը հարցման ընտրության արդյունք է։ Այն միշտ կլինի DatabaseStatement տիպի կամ դրա ենթադասի օբյեկտ։ DatabaseStatement-ը ընդլայնում է PDOStatement դասը։

Drupal-ն օգտագործում է պատրաստված հայտարարություններ բոլոր հարցումների համար։ Պատրաստված հայտարարությունը հարցման ձևանմուշ է, որի մեջ կտեղադրվեն իրական արժեքները հարցման կատարման ժամանակ։ Կարելի է պատկերացնել պատրաստված հայտարարությունը որպես SQL ֆունկցիայի համարժեք, որը կանչվում է համապատասխան պարամետրերով։

Սովորական PDO-ում պետք է բացատրել հայտարարության օբյեկտը և այնուհետև կատարել այն՝ կապված արժեքներով տեղակիչների հետ, հետո հայտարարությունը կարող է կրկնվել որպես արդյունքների հավաքածու։ Իրականում հայտարարությունը և արդյունքների հավաքածուն համարժեք են, երբ հայտարարությունը կատարված է։

Drupal-ը չցուցադրում է պատրաստված հայտարարությունը ուղիղ։ Փոխարենը, մոդուլի ծրագրավորողը օգտագործում է հարցման օբյեկտ կամ SQL տող՝ հարցումը կատարելու համար, և վերադարձվում է հայտարարության օբյեկտը։ Այսպիսով, «հայտարարության օբյեկտ» և «արդյունքների հավաքածուի օբյեկտ» տերմինները ավելի շատ համարժեք են։

Source URL:
Source authors:

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.