दिलचस्प पोस्ट
टेस्ट करें कि क्या किसी ग्लोब का कोई भी मैच बैश में है गिट को एक फाइल के बारे में "भूल" कैसे करें जिसे ट्रैक किया गया था लेकिन अब गिटग्नोर में है? प्रोग्रामैटिक रूप से निर्मित सामग्री दृश्य के साथ मैं एक गतिविधि में एक टुकड़ा कैसे जोड़ूं? एंड्रॉइड गतिविधि जीवन चक्र – इन सभी तरीकों के लिए क्या हैं? जावास्क्रिप्ट में पिछले यूआरएल कैसे प्राप्त करें? मैं उपनाम कार्य क्यों टाइप कर सकता हूं और बिना कास्टिंग के उपयोग कर सकता हूं? स्थिर वैश्विक संसाधनों तक पहुंचने के लिए कैसे / * पर एक वैश्विक सामने नियंत्रक सर्वलेट मानचित्रण मैं सशर्त ऑपरेटर का उपयोग कैसे करूं? आईफोन पर पहली बार ऐप लॉन्च कैसे लगाई जा सकती है PostgreSQL में सभी तालिकाओं को छोड़ दें? Jconsole के साथ पहुंच के लिए मेरे जेवीएम पर जेएमएक्स कैसे सक्रिय करें? MySQL में स्तम्भ मूल्यों को गमागमन नई लाइन पर ताला खोलने के साथ एक्सकोड 4 PHP – foreach लूप में वर्तमान ऑब्जेक्ट को संशोधित करें एंड्रॉइड ऐप में Google Analytics – कई गतिविधियों के साथ काम करना

अच्छा PHP ORM लाइब्रेरी?

क्या PHP के लिए एक अच्छा ऑब्जेक्ट-रिलेशनल मैपिंग लाइब्रेरी है?

मैं पीडीओ / एडीओ के बारे में जानता हूं, लेकिन वे केवल डेटाबेस विक्रेताओं के बीच मतभेदों को अमूर्तता प्रदान करते हैं, न कि डोमेन मॉडल और संबंधपरक मॉडल के बीच वास्तविक मानचित्रण। मैं एक PHP लाइब्रेरी की तलाश कर रहा हूं जो जावा के लिए हाइबरनेट करता है और NHibernate के लिए एनएटी के लिए काम करता है।

वेब के समाधान से एकत्रित समाधान "अच्छा PHP ORM लाइब्रेरी?"

सिद्धांत में देखें

सिद्धांत 1.2 सक्रिय रिकॉर्ड लागू करता है। सिद्धांत 2 + एक डेटामैपर ORM है

इसके अलावा, ज़ीस्टर की जांच करें यह डेटा मैपर पैटर्न पर आधारित है।

साथ ही, डेटामैपर बनाम सक्रिय रिकॉर्ड पर एक नज़र डालें।

रेडबियन की कोशिश करें, इसकी आवश्यकता है:

  • कोई कॉन्फ़िगरेशन नहीं
  • कोई डेटाबेस नहीं (यह मक्खी पर सब कुछ बनाता है)
  • कोई मॉडल नहीं
  • आदि।

यह आपके लिए सभी लॉकिंग और लेनदेन भी करता है और पृष्ठभूमि में प्रदर्शन पर नज़र रखता है। (हेक! यह कचरा संग्रह भी करता है ….) सबसे अच्छे से … आपको एक एकल … लिखने की ज़रूरत नहीं है … कोड की रेखा … यीशु, ओआरएम परत , मुझे गधे बचाया!

केवल दो अच्छे लोग हैं: सिद्धांत और प्रस्तावना हम सिद्धांत की कृपा करते हैं, और यह सिम्फनी के साथ अच्छी तरह से काम करता है हालांकि यदि आप मुख्य लोगों के अलावा डेटाबेस समर्थन की तलाश में हैं, तो आपको अपना कोड लिखना होगा।

एक्सॉन ओआरएम फैट फ्री फ़्रेमवर्क का हिस्सा है – यह एक ऑन-फ्लाई मैपर की विशेषता है कोई कोड जनरेटर नहीं कोई बेवकूफ XML / YAML कॉन्फ़िगरेशन फ़ाइलें नहीं यह बैकएंड से सीधे डाटाबेस स्कीमा पढ़ता है, इसलिए अधिकांश सीआरयूड ऑपरेशंस में आपको बेस मॉडल का विस्तार भी नहीं करना पड़ता है। यह सभी प्रमुख पीडीओ समर्थित डेटाबेस इंजनों के साथ काम करता है: MySQL , SQLite , SQL Server / Sybase, Oracle, PostgreSQL , आदि।

/* SQL */ CREATE TABLE products ( product_id INTEGER, description VARCHAR(128), PRIMARY KEY (product_id) ); /* PHP */ // Create $product=new Axon('products'); // Automatically reads the above schema $product->product_id=123; $product->description='Sofa bed'; $product->save(); // ORM knows it's a new record // Retrieve $product->load('product_id=123'); echo $product->description; // Update $product->description='A better sofa bed'; $product->save(); // ORM knows it's an existing record // Delete $product->erase(); 

अधिकांश अधिकांश, प्लग-इन और साथ में एसक्यूएल डाटा एक्सेस परत समान रूप से ढाँचा के रूप में हल्के हैं: 14 केबी (एक्सॉन) + 6 केबी (एसक्यूएलडीबी)। वसा रहित सिर्फ 55 KB है

मैं अपने खुद के Pork.dbObject को विकसित कर रहा हूं। (एक सरल PHP ORM और सक्रिय रिकॉर्ड कार्यान्वयन) मुख्य कारण यह है कि मुझे सबसे अधिक ओआरएम बहुत भारी लगता है

Pork.dbObejct का मुख्य विचार प्रकाश वजन और स्थापित करने के लिए आसान होना चाहिए। एक्सएमएल फाइलों का कोई गुच्छा, कन्स्ट्रक्टर में बाइंड करने के लिए सिर्फ एक फ़ंक्शन कॉल, और अन्य डब ऑब्जेक्ट के संबंध को परिभाषित करने के लिए एक ऐड-रेलेशन या ऐड कस्टम रिलेलेशन।

इसे एक नज़र डालें: Pork.dbObject

Doctrine2 की कोशिश करो यह शायद PHP के लिए सबसे शक्तिशाली ORM उपकरण है। मैं इसे सिद्धांत 1 से अलग बता रहा हूं, क्योंकि यह सॉफ्टवेयर का एक बिल्कुल अलग टुकड़ा है यह खरोंच से फिर से लिखा गया है, अब भी बीटा चरण में है, लेकिन यह अब उपयोगी है और विकसित है।

यह एक बहुत ही जटिल ORM है, लेकिन अच्छी तरह से डिज़ाइन किया गया है। मूल सिद्धांत 1 से बहुत सारे जादू गायब हो गए। यह एक पूर्ण समाधान प्रदान करता है, और आप सिद्धांत 2 के शीर्ष पर अपना स्वयं का ORM लिख सकते हैं या इसकी केवल एक परत का उपयोग कर सकते हैं ।

आउटलेट ओआरएम देखें यह प्रोपेल और सिद्धांत की तुलना में आसान है और यह हाइबरनेट के समान काम करता है, केवल इसके बारे में और अधिक PHP महसूस होता है

मैं बस Kohana के साथ शुरू कर दिया है, और यह कई विन्यास फाइलों की सभी जटिलताओं जैसे कि प्रोपेल के साथ-साथ सभी रेलवे पर रूबी के निकटतम प्रतीत होता है

मुझे वास्तव में प्रोपेल पसंद है, यहां आप एक सिंहावलोकन प्राप्त कर सकते हैं, दस्तावेज़ीकरण बहुत अच्छा है, और आप इसे पीअर या एसवीएन के माध्यम से प्राप्त कर सकते हैं

आपको कक्षाएं जनरेट करने के लिए केवल एक काम कर रहे PHP5 स्थापित करने की आवश्यकता है, और फ़िंग ।

मुझे PHP पुस्तकालय में ओआरएम संबंधित कक्षाएं मिलीं।

PHP 5 के लिए ऑब्जेक्ट रिलेशनल मैपर, डीओआरएम को एक शॉट दें यह सभी प्रकार के रिश्तों (1-टू-1), (1-से-कई), (कई-से-कई) और डेटा प्रकारों का समर्थन करता है। यह पूरी तरह से विरोधाभासी है: कोई कोड पीढ़ी या कक्षा विस्तार की आवश्यकता नहीं है मेरी राय में यह किसी भी ओआरएम से बेहतर है, सिद्धांत और प्रोपेल शामिल हैं हालांकि, यह अभी भी बीटा में है और अगले दो महीनों में काफी बदलाव कर सकता है। http://www.getdorm.com

इसकी भी एक बहुत छोटी सीखने की अवस्था है आप उपयोग करेंगे तीन मुख्य विधियों हैं:

 <?php $object = $dorm->getClassName('id_here'); $dorm->save($object); $dorm->delete($object); 

आपको Idiorm और Paris की जांच करनी चाहिए।

मैं वर्तमान में phpDataMapper पर काम कर रहा हूं , जो एक ORM है जिसे रूबी की डेटामैपर परियोजना जैसे सरल सिंटैक्स के लिए डिज़ाइन किया गया है। यह अभी भी शुरुआती विकास में है, लेकिन यह महान काम करता है

फ़्लोरिश लाइब्रेरी के ORM की कोशिश की

जब तक PHP 5.3 रिहाई के लिए एक अच्छा ORM की उम्मीद नहीं है यह PHP की एक ऊ सीमा है

मैं Idiorm और पेरिस के साथ बहुत अच्छा अनुभव किया है। व्यंग्य एक छोटा सा, सरल ORM पुस्तकालय है पेरिस, Idiorm पर निर्मित एक समान रूप से सरल सक्रिय रिकॉर्ड कार्यान्वयन है। पीडीओ के साथ यह PHP 5.2+ के लिए है यदि आप कुछ सरल करना चाहते हैं तो यह एकदम सही है कि आप किसी मौजूदा एप्लिकेशन में छोड़ सकते हैं।

मेरे दोस्त कीन और मैंने एक ओआरएम के पहले के संस्करण में सुधार किया है, जिसे उन्होंने PHP 5.3 से पहले लिखा था। हमने अनिवार्य रूप से रूबी पर रेल के सक्रिय रिकॉर्ड को PHP पर रख दिया है। यह अभी भी कुछ महत्वपूर्ण विशेषताओं की कमी है, जिसे हम चाहते हैं जैसे कि लेनदेन, समग्र प्राथमिक कुंजी समर्थन, कुछ और एडाप्टर (अभी केवल MySQL और SQLite 3 काम अभी)। लेकिन, हम इस सामान को खत्म करने के बहुत करीब हैं आप PHP 5.3 के साथ PHP ActiveRecord पर एक नज़र डाल सकते हैं।

PHP ADOdb की कोशिश करो।

मैं यह नहीं कह सकता कि यह सबसे अच्छा है, क्योंकि मैंने दूसरों का इस्तेमाल नहीं किया है लेकिन यह तेज़ है, यह मेमकैच और कैशिंग का समर्थन करता है।

और यह ज़ेड फ्रेमवर्क के डीबी / सेलेक्ट की तुलना में तेज़ है।

Kohana के लिए LEAP ORM को देखें यह डीबी 2 , बूंदेजल , फायरबर्ड , मारिया डीबी , एसक्यूएल सर्वर, मायएसकल , ओरेकल, पोस्टग्रेएसक्यूएल , और एसक्यूलाइट सहित डेटाबेस के एक गुच्छा के साथ काम करता है। एक सरल autoload समारोह के साथ, यह लगभग किसी भी PHP ढांचे के साथ काम कर सकते हैं स्रोत कोड गिटहब पर https://github.com/spadefoot/kohana-orm-leap पर है आप LEAP के ट्यूटोरियल ऑनलाइन जांच कर सकते हैं

ओआरएम पुस्तकालय गैर-पूर्णांक प्राथमिक कुंजी और संमिश्र कुंजी के साथ काम करता है। कनेक्शन एक डेटाबेस कनेक्शन पूल के माध्यम से प्रबंधित किए जाते हैं और यह कच्चे एसक्यूएल प्रश्नों के साथ काम करता है। ओआरएम में एक क्वेरी बिल्डर भी है जो एसक्यूएल स्टेटमेंट्स को सुपर सरल बना देता है।

यदि आप साहसी महसूस कर रहे हैं तो आप को चेक कर सकते हैं। आउटलेट की तरह, यह हाइबरनेट के बाद मॉडल है

यह अभी भी अपने विकास में बहुत जल्दी है, लेकिन अभी तक डोमेन मॉडल पर केवल प्रतिबंध यह है कि वर्गों को अंतिम रूप से चिह्नित नहीं किया जाता है और गुण निजी रूप से चिह्नित नहीं हैं एक बार जब मैं PHP> = 5.3 की भूमि में आया हूं, तो मैं निजी संपत्तियों के लिए समर्थन को भी लागू करने का प्रयास करूंगा।

यदि आप एक ORM की तलाश कर रहे हैं जो सक्रिय रूप से सक्रिय रिकॉर्ड के बजाय डेटा मैपर प्रतिमान का क्रियान्वयन करता है, तो मैं दृढ़ता से सुझाव देता हूं कि आप गकेला पीएचपी को देखें ।

Gacela विशेषताएं:

  • डेटा मेपर
  • विदेशी कुंजी मैपिंग
  • एसोसिएशन मैपिंग
  • आश्रित मानचित्रण
  • कंक्रीट तालिका विरासत
  • क्वेरी ऑब्जेक्ट
  • मेटाडेटा मैपिंग
  • आलसी और उत्सुक लोडिंग
  • पूर्ण मेमकेच समर्थन

अन्य ओआरएम समाधान बहुत फूला हुआ होते हैं या दूर से जटिल कुछ भी विकसित करते समय भारी सीमाएं हैं डाटा मैपर पैटर्न को लागू करते हुए गकेला सक्रिय अभिलेख दृष्टिकोण की सीमाओं का निराकरण करता है जबकि डाटाबेस और मेमकैच के साथ सभी इंटरैक्शन के लिए पीडीओ का उपयोग करके ब्लोट को कम करते हुए।

माइक्रो एमवीसी के पास एक 13 KB ORM है जो केवल 8 KB डेटाबेस वर्ग पर निर्भर करता है। यह ऑरम ऑब्जेक्ट्स के रूप में सभी परिणाम भी देता है और प्रत्येक ऑब्जेक्ट में वर्तमान वस्तु की तालिका और मेटा डेटा के बारे में जानकारी एम्बेड करने से बचने के लिए देर से स्थिर बाध्यकारी का उपयोग करता है। यह सबसे सस्ता ओआरएम ओवरहेड में होता है।

यह MySQL , PostgreSQL , और SQLite के साथ काम करता है।

ब्राज़ीलियाई ओआरएम: http://www.hufersil.com.br/lumine यह PHP 5.2+ के साथ काम करता है मेरी राय में, यह पुर्तगाली और ब्राज़ीलियाई लोगों के लिए सबसे अच्छा विकल्प है, क्योंकि यह डाउनलोड करने के लिए आसान समझने वाले दस्तावेज़ और बहुत सारे उदाहरण हैं।

चंचल टूलकिट का अपना अनूठा कार्यान्वयन ORM / ActiveRecord और गतिशील एसक्यूएल है ।

परिचय: http://agiletoolkit.org/intro/1

सिंटेक्स (सक्रिय रिकॉर्ड):

 $emp=$this->add('Model_Employee'); $emp['name']='John'; $emp['salary']=500; $emp->save(); 

सिंटेक्स (डायनेमिक एसक्यूएल):

 $result = $emp->count()->where('salary','>',400)->getOne(); 

जबकि डायनामिक एसक्यूएल और एक्टिव रिकार्ड / ओआरएम सीधे उपयोग करने योग्य है, चंचल टूलकिट उन्हें यूजर इंटरफेस और jQuery यूआई के साथ एकीकृत करता है। यह JSF जैसा है लेकिन शुद्ध PHP में लिखा गया है।

 $this->add('CRUD')->setModel('Employee'); 

यह कर्मचारी मॉडल के साथ AJAXified CRUD प्रदर्शित करेगा।

NotORM

 include "NotORM.php"; $pdo = new PDO("mysql:dbname=software"); $db = new NotORM($pdo); $applications = $db->application() ->select("id, title") ->where("web LIKE ?", "http://%") ->order("title") ->limit(10) ; foreach ($applications as $id => $application) { echo "$application[title]\n"; } 

मैं मिनीऑर्म पर काम करता हूँ ऑब्जेक्ट मॉडल और MySQL एब्स्ट्रक्शन लेयर का प्रयोग केवल यथासंभव संभव के लिए एक छोटा ओआरएम। आशा है कि यह आपकी मदद कर सकता है: http://jelnivo.fr/miniOrm/

पीडीओ एक्सटेंशन के लिए PHP ओआरएम चेहरे PHP चेहरे फ्रेमवर्क देखें

 $urun = new Product(); $urun->name='CPU' $urun->prince='124'; $urun->save(); 

http://code.google.com/p/lworm/ देखें यह PHP के लिए वास्तव में सरल, लेकिन शक्तिशाली, हल्के ORM सिस्टम है यदि आप चाहते हैं तो आप इसे आसानी से बढ़ा सकते हैं

एक और महान ओपन सोर्स PHP ऑरएम जो हम उपयोग करते हैं वह है PHPSmartDb यह स्थिर है और आपके कोड को अधिक सुरक्षित और स्वच्छ बना देता है। इसके भीतर डेटाबेस की कार्यक्षमता सबसे आसान है जो मैंने कभी भी PHP 5.3 के साथ प्रयोग किया है।

सिद्धांत शायद तुम्हारा सबसे अच्छा शर्त है सिद्धांत से पहले, DB_DataObject अनिवार्य रूप से एकमात्र अन्य उपयोगिता थी जो खुला स्रोत था।