जब मेनू को रूट करने के लिए उपयोग नहीं किया जाता है, तो मुझे मेनू के सक्रिय-राज्य हैंडलिंग के आसपास मेरे सिर को प्राप्त करने में परेशानी हो रही है।
मैं Drupal से आता हूँ जहाँ मेनू सिस्टम रूटिंग को भी हैंडल करता है। इसलिए सक्रिय राज्य और सक्रिय-ट्रेल स्टेट सेट करना मार्ग द्वारा नियंत्रित किया जाता है (जो मेनू रेंडरिंग सिस्टम के रूप में भी कार्य करता है)।
अब, बहुत सारे PHP फ्रेमवर्क में राउटर कक्षाएं हैं जो रूटिंग को संभालती हैं। यह एक अच्छा जुदाई लगता है क्योंकि एक मेनू POST के बारे में पता नहीं होना चाहिए || विकल्प || ... निवेदन।
लेकिन जब दृश्यपटल लिखते हैं, तो मैंने अपने आप को मेनू को हार्ड कोडिंग पाया। या DB में सब कुछ भंडारण और एक दृश्य के लिए उन मूल्यों को पारित। मुझे यह दृष्टिकोण पसंद नहीं है कि आप अपने राउटर में पहले से ही लिखे गए मेनू का उपयोग करके कॉपी करने का एक तरीका बना रहे हैं।
एक उदाहरण:
Route::get('/somewhere','routename.somewhere','showStuffController');
Route::post('/somewhere','routename.somewhere','saveStuffController');
Menu::add('label.somewhere','routename.somewhere');
आप यहां चिंताओं को अलग कर रहे हैं, इसलिए यह अच्छा है। लेकिन मेनू अपनी सक्रिय स्थिति निर्धारित करने के लिए रूट पर बहुत अधिक निर्भर करता है। मेनू को सक्रिय-पगडंडी सेट करने के लिए पदानुक्रम के बारे में भी जानना होगा।
तो हाँ, सक्रिय राह और सक्रिय स्थिति वर्गों की स्थापना वास्तव में एक देखने वाली बात है। लेकिन होने
if ( Route::currentName() === $menuitem->getRouteName() ) { print 'active'; }
आपके विचार से सभी बेवकूफ लग रहे हैं। फिर उन सभी कष्टप्रद सक्रिय-ट्रेल को जोड़ें यदि वह है और यह एक वास्तविक ब्लोट है। यह देखते हुए कि इससे पहले कि यह देखने लायक हो जाए और एक सक्रिय-ट्रैग फ़्लैग को स्थापित करना सच में इतना बदसूरत लगने लगे कि मुझे यह कैसे पता चले (सभी बच्चों पर एक फ़ॉर्चिंग लूप जो सभी बच्चों पर लूप करता है, ...)
मेरा सवाल यह है कि:
क्या इस क्लीनर को पाने के लिए कोई पैटर्न या स्मार्ट तरीका है, बेहतर है, ...? सक्रिय-ट्रेल 'समस्या' को कैसे संभालना चाहिए?
मैं बच्चे के बारे में सोच रहा था -> माता-पिता। इसलिए विज्ञापन को सबसे गहरे स्तर से शुरू करें और फिर अपने तरीके से काम करें। लेकिन तब बच्चा अपने माता-पिता के बारे में जानता है लेकिन माता-पिता को अपने बच्चों के बारे में कुछ नहीं पता (अजीब लगता है)।