RedBeanPHP - एक और ORM पुस्तकालय

RedBeanPHP लोगो
एक ओआरबी में इस ओआरएम के बारे में कुछ उल्लेख मिला, और यहां तक ​​कि लंबे समय तक और टिप्पणियों में भी। हाल ही में पता चला कि दूसरा संस्करण पहले ही जारी किया जा चुका है। उन लोगों के लिए - यहां डाउनलोड ( GitHub ) और प्रलेखन के लिए एक लिंक है
इस लेख का उद्देश्य पाठकों को इस ORM पुस्तकालय से संक्षिप्त परिचय कराना है।
RedBeanPHP एक और ORM लाइब्रेरी है। सहकर्मियों से इसका मुख्य अंतर, जैसे कि प्रोपेल या डॉक्ट्रिन, वस्तुओं के मैनुअल कॉन्फ़िगरेशन की आवश्यकता के अभाव में। यानी कोई xml, yml या आईएनआई फाइलें नहीं। RedBenPHP फ्लाई पर टेबल, फ़ील्ड और इंडेक्स बनाता है। कोई भी वस्तु दूसरे के साथ जुड़ी हो सकती है। डेटाबेस से, MySQL, SQLite और Postgres समर्थित हैं।

TTH


पुस्तकालय में एक फ़ाइल होती है। यह php संस्करण 5.3 के तहत लिखा गया था, लेकिन लेखक के अनुसार, इसे 5.2 के तहत काम करना चाहिए। काम करने के लिए, आपको पीडीओ के विस्तार की आवश्यकता है।

काम की बुनियादी बातें


RedBeanPHP सेम के साथ काम करता है। शुरुआत के लिए, आप बस एक बीन बना सकते हैं। यह सार्वजनिक गुणों और प्रकार के साथ एक वस्तु है। सेम प्रकार का उपयोग डेटाबेस में तालिका से मिलान करने के लिए किया जाता है और, वैकल्पिक रूप से, आपकी कक्षा को इंगित करने के लिए। एक बीन इस तरह बनाया जाता है:
$book = R::dispense( 'book' ); 

अब हमारे पास एक खाली पुस्तक प्रकार बीन है। आइए इसे गुणों के एक जोड़े को सेट करें:
 $book->title = 'Boost development with RedBeanPHP'; $book->author = 'Charles Xavier'; 

और डेटाबेस में सहेजें:
 $id = R::store($book); 

अब सारा डेटा डेटाबेस में सेव हो गया है। हमारे bena में अब दो गुण हैं, जिसमें हमने स्ट्रिंग डेटा लिखा है, इसलिए RedBeanPHP ने इन गुणों के लिए VARCHAR (255) का प्रकार चुना। यदि हमने संख्याओं में से किसी एक गुण ($ बुक-> मूल्य = 100) में संग्रहीत करने का निर्णय लिया है, तो RedBeanPHP इस संपत्ति को संग्रहीत करने के लिए TINYINT (3) प्रकार का चयन करेगा। यदि बाद में हमें भिन्नात्मक मूल्य रखने की आवश्यकता होती है, तो RedBeanPHP डेटाबेस में मक्खी पर फ़ील्ड प्रकार को बदल देगा।
डेटाबेस से लोड करने के लिए, आर :: लोड () विधि का उपयोग करें
 $book = R::load('book', $id); $books = R::batch('book',array($id1,$id2)); 

डेटाबेस से निकालना इस तरह किया जाता है:
 //   R::trash( $book ); //   R::wipe( 'book' ); 


बीन्स खोज


खोज करने के लिए, R :: find () विधि का उपयोग करें
 $needles = R::find('needle',' haystack = ?', array( $haystack )); 

ढूँढें () तीन तर्क लेता है: बीन प्रकार, SQL क्वेरी, और मानों की एक सरणी जिसे दूसरे तर्क में प्रश्न चिह्न के लिए प्रतिस्थापित किया जाएगा। प्रश्न चिह्नों के बजाय, आप नामित मापदंडों का उपयोग कर सकते हैं:
 $needles = R::find('needle',' haystack = :haystack ORDER BY :sortorder', array( 'sortorder'=>$sortorder, ':haystack'=>$haystack )); 

RedBeanPHP में, आप नियमित SQL क्वेरी लिख सकते हैं, दृश्य बना सकते हैं और उपयोग कर सकते हैं, और टैग इकाइयाँ।

RedBeanPHP में लिंक


वस्तुओं के गुण स्वयं वस्तु हो सकते हैं। RedBeanPHP आपको संबंधित वस्तुओं को सहेजने की अनुमति देता है:
 $farm = R::dispense('building'); $village = R::dispense('village'); $farm->name = 'farm'; $village->name = 'Dusty Mountains'; $farm->village = $village; //assign farm to village $id = R::store($farm); 

और उन्हें लोड करें
 $farm = R::load('building',$id); echo $farm->village->name; //prints 'Dusty Mountains' 

आप एक साथ कई फलियाँ बाँध सकते हैं:
 list($mill,$tavern) = R::dispense('building',2); $village->ownBuilding = array($mill,$tavern); 

यदि आप $ गांव बचाते हैं और इसे फिर से डेटाबेस से लोड करते हैं, तो अपने स्वयं के संपत्ति में आपको संबंधित बीन्स मिलेंगे। संपत्ति के नाम को उसमें संग्रहीत फलियों से मेल खाना चाहिए। अनलिंक करने के लिए, unset () का उपयोग करें। एसोसिएटेड बीन्स को सीधे माता-पिता से बदला जा सकता है:
 $village->ownBuilding[1]->name = 'The Old Inn'; 

संग्रहित बीन्स तक पहुंचने के लिए, आपको इसमें संग्रहीत बीन्स की आईडी का उपयोग एक सरणी कुंजी के रूप में करना होगा।

अन्य


डिफ़ॉल्ट रूप से, RedBeanPHP फ्री मोड में चलता है, जिसमें डेटाबेस स्कीमा उस कोड के आधार पर बदलता है जो इसके साथ काम करता है। यह विधा विकास के लिए महान है। इस समय, आपको डेटाबेस के बारे में चिंता करने की आवश्यकता नहीं है। विकास पूरा होने के बाद, आपको फ्रीज़ () कमांड चलाने की आवश्यकता है।
 R::freeze( true ); //will freeze redbeanphp 

यह कमांड RedBeanPHP में डेटा स्कीमा चेकिंग को अक्षम कर देगा, जिससे काम की गति बढ़ जाएगी।
मेरी राय में, एक उपयोगी चीज कुंजी द्वारा सरणियों से सेम का आयात है, उदाहरण के लिए:
 $book->import($_POST); $book->import($_POST, 'title,subtitle,summary,price'); 

लेकिन सत्यापन नहीं होता है।

आदर


यह लेख मूल रूप से RedBeanPHP पर मैनुअल के कई खंडों का मुफ्त अनुवाद है।
मैनुअल कई-से-कई संबंधों, पेड़ों को व्यवस्थित करने, मॉडल बनाने और सत्यापन करने, RedBeanPHP के लिए प्लग इन लिखने और फ्रेमवर्क के साथ एकीकरण पर विषयों को शामिल करता है।

Source: https://habr.com/ru/post/In132004/


All Articles