Ui घटकों को डीबग करना


16

मैं एक CRUD मॉड्यूल बनाने की कोशिश कर रहा हूं जो एडमिन ग्रिड और फॉर्म के लिए UI घटकों का उपयोग करता है।
मैंने पहले भी ऐसा किया है और काम किया है, लेकिन यह एक अलग सा है और जाहिर तौर पर मैंने कुछ गड़बड़ की है।
समस्या यूआई घटक फ़ाइल या यूआई घटक फ़ाइल द्वारा संदर्भित कुछ वर्ग के लिए है। अगर मैं लेआउट फ़ाइल से UI घटक संदर्भ हटाता हूं, तो पृष्ठ लोड होता है (ग्रिड के बिना स्पष्ट रूप से)।
जब UI घटक शामिल होता है तो पृष्ठ रिक्त होता है और डेवलपर मोड पर भी, कहीं भी कोई त्रुटि लॉग नहीं होती है।

मैं / यूआई घटकों के लोडिंग और रेंडरिंग को डिबगिंग कैसे / कहां से शुरू कर सकता हूं?


मुझे कुछ दिन पहले भी यही समस्या थी। यह ui_component फ़ोल्डर की गलत फ़ोल्डर संरचना के कारण था। तब di.xml में मुद्दा था
भूपेंद्र जडेजा

फिलहाल मुझे अपनी गलती की परवाह नहीं है। मुझे इस बात की परवाह है कि मैं इसे कैसे डिबेट कर सकता हूं क्योंकि यह भविष्य में हो सकता है।
मेरियस

XML को डिबग करना बहुत थकाऊ काम है। हर बार मुझे रिपोर्ट और system.xml में त्रुटि मिली। आशा है कि हमें कोर टीम से जवाब मिलेगा।
भूपेंद्र जडेजा

क्या आपको XML को डिबग करने का कोई तरीका मिला?
भूपेंद्र जडेजा

1
मुझे एप्लिकेशन में एक बिंदु मिला जहां मैं शुरू कर सकता हूं, लेकिन मुझे अभी तक यकीन नहीं है कि यह करने के लिए सबसे अच्छा बिंदु नहीं है। अगर मुझे कुछ ठोस मिलता है तो मैं आज या कल जवाब दूंगा।
मेरियस

जवाबों:


12

मैंने अब तक जो पाया है वह यह है कि लेआउट को प्रस्तुत करते समय इस स्टैक का पालन किया जाता है।

  • \Magento\Framework\View\Layout::generateElements
  • \Magento\Framework\View\Layout\GeneratorPool::process

अब, लेआउट के प्रकार के आधार पर एक अलग लेआउट जनरेटर को कहा जाता है

foreach ($this->generators as $generator) {
    $generator->process($readerContext, $generatorContext);
}

यूआई घटकों के लिए ... स्टैक जारी रखना:

  • \Magento\Framework\View\Layout\Generator\UiComponent::process()
  • \Magento\Framework\View\Layout\Generator\UiComponent::generateComponent()
  • \Magento\Framework\View\Element\UiComponentFactory::create()
  • \Magento\Ui\Model\Manager::prepareData()
  • \Magento\Ui\Model\Manager::evaluateComponents()
  • Magento\Framework\Data\Argument\InterpreterInterface::evaluate

यहाँ फिर से यह तर्क प्रकार पर निर्भर करता है जिसकी व्याख्या करने की आवश्यकता है।
आप कुछ दुभाषियों को यहां पा सकते हैंlib/internal/Magento/Framework/Data/Argument/Interpreter/

यह उतना ही है जितना मुझे मिला।
मुझे पता है कि यह एक पूर्ण विवरण नहीं है, लेकिन ये कुछ बिंदु हैं जहां आप पहचान सकते हैं कि क्या आपके यूआई घटक के साथ कुछ गलत है।


1

प्रयत्न:

Source/vendor/magento/module-ui/Component/Wrapper/UiComponent.php

तरीका: protected function _toHtml()

लगभग 57 लाइन में शुरू

डिबग $resultऔर इसमें वे सभी घटक होने चाहिए जो लोड किए गए हैं।


0

जिस तरह से मैं ui घटकों को डीबग करने में सक्षम हो गया है वह सिर्फ घटक xml से सब कुछ हटाने और एक समय में आइटम में जोड़ने के लिए सुनिश्चित करें कि विशेषताएँ xsd में समर्थित हैं।


1
फ़ाइल xsd फ़ाइल के विरुद्ध मान्य है। और मुझे यकीन है कि फ़ाइल के बिट्स को हटाने के अलावा एक और तरीका है। एक जगह होनी चाहिए जहां फ़ाइल लोड और संसाधित होती है।
मेरियस

0

आप डिबगिंग शुरू करने के लिए सीएसएस का उपयोग करके शुरू कर सकते हैं। आप ऐप / डिज़ाइन / फ्रंटेंड / एमजीएस / मोली / वेब / सीएसएस के तहत थीम.लेस फ़ाइल का उपयोग कर सकते हैं। उदाहरण के लिए बेस रंग जो @ बेस-कलर है: @ 7c7bad

किसी भी कोड को बदलने के बाद आपके पास var निर्देशिका को हटा दिया जाता है, आपके पास pub / static / frontend / के frontend निर्देशिका के अंतर्गत स्पष्ट सामग्री है

Cmd php bin / magento सेटअप में अंतिम हिट कमांड पर : स्थिर-सामग्री: परिनियोजित


सीएसएस का डिबगिंग यूआई घटकों के साथ क्या करना है?
मेरियस

आप इसका लेआउट या रंग बदल सकते हैं। @ मरियम
vnnogile_user

इसका सवाल से कोई लेना-देना नहीं है। मैंने रंग बदलने के बारे में नहीं पूछा।
मेरियस

0

मैं इसके साथ शुरू करूंगा:

Magento\Ui\TemplateEngine\Xhtml\Result->__toString( )

यह वह जगह है जहाँ Ui XML को एक साथ खींचा जाता है। तो यह Ui XML डिबग के लिए एक प्रारंभिक बिंदु होना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.