संस्थाओं से मान प्राप्त करने के लिए, दो तरीके हैं:
field_get_items
एक क्षेत्र का उपयोग करें और प्राप्त करेंentity_metadata_wrapper
एक क्षेत्र का उपयोग करें और प्राप्त करें
हालाँकि entity_metadata_wrapper
, भाषा के अंतर को अलग कर देता है, फिर भी इसका API कभी-कभी अजीब होता है, खासकर PHP 5.3 का उपयोग करते समय। उदाहरण के लिए, लंबे टेक्स्ट फ़ील्ड का मान प्राप्त करना आमतौर पर इस मार्ग को जाता है:
$field = $wrapper->field->value();
print $field['safe_value'];
सौभाग्य से, PHP 5.4 इस सिंटैक्स का समर्थन करता है print $wrapper->field->value()['safe_value'];
:।
लेकिन मेरा सवाल प्रदर्शन को लेकर अधिक चिंतित है। वे दोनों कैसे काम करते हैं? क्या वे मूल्य का अनुरोध करने पर हर बार डेटाबेस को क्वेरी करते हैं? entity_metadata_wrapper
सब कुछ एक ही बार में अनुरोध करता है ? ( field_get_item
एकल-मूल्य-पुनर्प्राप्ति के लिए अधिक अनुकूल बनाना ।)
मैं ड्रुपल स्रोत में गहरी गोता लगाने के लिए पर्याप्त बहादुर नहीं हूं।
field_get_items()
incurs डेटाबेस भूमि के ऊपर शून्य तो मुझे लगता है कि एक बहुत खुले और बंद मामला है :)
field_get_items()
शून्य डेटाबेस ओवरहेड आता है? यह कहीं न कहीं इसका डेटा प्राप्त करना है, है ना?
entity_metadata_wrapper
काम करता है, प्रदर्शन-वार।
field_get_items()
तो भूमि के ऊपर पहले से ही खर्च किया गया है ... यह D7 में एक गला मार्ग का एक सा ईमानदार होना है
field_view_field()
एक क्षेत्र प्रदान करने के लिए है। किसी फ़ील्ड का मान प्राप्त करने का कार्य फ़ील्ड_गेट_टाइम्स () है ।