Drupal 7 - Աշխատանք տվյալների բազայի հետ PHP PDO-ի միջոցով
Անցում կատարելով Drupal 7-ի վրա՝ մենք անցնում ենք նոր Drupal տվյալների բազայի աբստրակցիայի շերտի API-ի, որը կառուցված է PDO-ի հիման վրա։ PDO-ն վաղուց արդեն օգտագործվում է ինչպես Zend framework-ում, այնպես էլ բազմաթիվ այլ PHP ֆրեյմվորկներում։ Ամեն ինչ շատ հարմար էր Drupal 6-ում՝ SQL հարցումներ գրելու առումով, բայց ի՞նչու է մեզ պետք ինչ-որ նոր բան։
Եկեք նախ պարզենք՝ ի՞նչ է PDO-ն։
PDO՝ թույլ է տալիս PHP կոդը, որը աշխատում է մեկ տվյալների բազայի հետ, հեշտությամբ փոխադրել այլ բազայի։ Օրինակ, եթե ձեր կայքը աշխատում է MySQL-ի վրա, դուք կարող եք հեշտությամբ տեղափոխվել PostgreSQL-ի վրա։ Oracle-ի օգտագործման մասին ես դեռ վստահ չեմ, քանի որ չեմ փորձել, բայց տեսականորեն այն նույնպես պետք է աշխատի։
PHP Data Objects (PDO)՝ PHP-ի ընդլայնում է, որը տրամադրում է թեթև, կոմպակտ ինտերֆեյս տվյալների բազայի հետ աշխատելու համար։ Յուրաքանչյուր բազայի դրայվեր իրագործվում է PDO ինտերֆեյսի միջոցով և կարող է ընդլայնվել տվյալ սերվերի առանձնահատկություններին համապատասխան։
PDO-ն տրամադրում է մուտք աբստրակցիայի շերտին, որը օգտագործվում է հարցումների մշակման և տվյալների ներկայացման համար։ PDO-ն չի տրամադրում լիարժեք աբստրակցիա տվյալների բազայից, այն չի վերագրում SQL-ը և չի էմուլացնում բացակայող ֆունկցիաներ։ Եթե ձեզ պետք է այդ հնարավորությունները, ապա պետք է օգտագործել լիարժեք աբստրակցիայի շերտ։ PDO-ն համատեղելի է PHP 5.1-ի և ավելի բարձր տարբերակների հետ և հասանելի է որպես PECL ընդլայնում PHP 5-ի համար։ PDO-ն պահանջում է PHP 5-ի օբյեկտային ծրագրավորման նոր հնարավորությունները և չի աջակցում հին տարբերակները։
Սա նշանակում է, որ ծրագրավորողները կարող են գրել բազմապլատֆորմ կոդ՝ էլ ավելի հեշտ։ PDO-ն լիարժեք աբստրակցիա չէ, ինչպես PearDB-ը։ PDO-ն ավելի շատ բազայի հասանելիություն է, քան API։
Եթե ցանկանում ենք գրել մոդուլներ Drupal 7-ի համար, ապա պետք է օգտագործենք հենց PDO-ի շարահյուսությունը հարցումների գրելու համար, որպեսզի մեր մոդուլները կարողանան աշխատել տարբեր տվյալների բազաների հետ։