मुझे लगता है कि यह एक सामान्य प्रश्न (इसलिए PHP प्रतिबंधित नहीं है) ddd और कमांड पैटर्न के संबंध में है।PHP अनुप्रयोगों में कमांड पैटर्न: नियंत्रक कार्यों को कैसे संभालें?
मान लें कि मैं अपने नियंत्रक की निर्माण कार्रवाई के भीतर से CreatePostCommand निष्पादित करता हूं, कमांड को संभाला जाएगा और अंततः सफलतापूर्वक निष्पादित किया जाएगा। नियंत्रक को सूचित करने का उचित तरीका क्या है जो कमांड विफल होने या सफल होने पर वापस लौटने का जवाब देता है? आदेश दिया गया हैडलर एक डोमेन विशिष्ट घटना को आग लगाएगा, मैं कंट्रोलर को घटना में जोड़ सकता हूं, लेकिन यह काफी अजीब लगता है, यह भी हर स्थिति के लिए उचित नहीं है (उदाहरण के लिए एक पोस्ट कहीं और बनाया जा सकता है और नियंत्रक वास्तव में नहीं करता है इसके बारे में जानें :))।
public function createAction($title, $content)
{
$this->commandBus->execute(new CreatePostCommand($title, $content);
$this->render('…'); // what if the command execution failed?
}
इस पर कोई विचार?
तो निष्पादन में विफल रहा है, तो एक अपवाद फेंका गया होता, लाइन आप टिप्पणी की है | भागा नहीं किया गया है, जिसका अर्थ है। –
हाँ यकीन है। मुझे यहां और अधिक विशिष्ट होना चाहिए था।आइए मान लें कि आदेश सफलतापूर्वक निष्पादित किया गया है और मैं/पोस्ट/एडिट/{$ आईडी} पर रीडायरेक्ट करना चाहता हूं, नियंत्रक पोस्ट आईडी के बारे में अवगत नहीं होगा जब तक कि नियंत्रक और कमांड हैंडलर शेयर उदा। पद भंडार। क्या इससे अधिक समझदारी होती है। – iwyg
कमांड से लौटने वाले मान पैटर्न को तोड़ देंगे। तो हाँ आप सही हैं कि दोनों नियंत्रक और कमांड हैंडलर को रेपो के बारे में जानना होगा। लेकिन अगर आपको कमांड से कुछ लौटने की ज़रूरत है तो उसे मज़ेदार पैटर्न पर नज़र डालें। –