سؤال

وأنا باستخدام أكتيفيريكورد للحفاظ على معلومات حول المستخدمين. الطبقة العضو لديه حمولة المتوقع ()، إدراج ()، التحديث ()، وحذف () الطرق، وواضعي، حاصل، وعدد قليل من الآخرين. ولكن أواجه مشكلة في تحديد ما إذا كان أو لم يكن بعض أساليب أخرى ينبغي أن تدرج في فئة المستخدم، أو التعامل معها من قبل المتعاونين.

وهنا مثال:

وهناك العديد من الصفقات التي يمكن للمستخدم أن يطلب أن تحتاج إلى تأكيد. يتم التعامل مع هذه المسألة بطريقة تقليدية - إرسال البريد الإلكتروني للمستخدم مع وصلة. بالنقر على الوصلة يؤكد أن المستخدم لا يريد حقا المعاملة للمتابعة. تجزئة المفتاح التحقق وانها تاريخ انتهاء الصلاحية / وقت تستمر كجزء من سجل المستخدم.

وأين يجب أن نرسم الخط الفاصل في هذه العملية؟ يجب أن يكون هناك متعاون الذي يعالج التحقق (على سبيل المثال عن طريق أخذ مفتاح التحقق نص عادي من سلسلة الاستعلام وقبول كائن العضو بمثابة المعلمة)؟ أو ينبغي التعامل مع هذا داخليا من قبل فئة المستخدم (تمرير مفتاح التحقق نص عادي في استدعاء أسلوب)؟

والشيء التالي للغاية من شأنه أن يحدث على التحقق، بطبيعة الحال، هو أن الصفقة لن تمضي تتطلب تحديثا إلى السجل النشط - وهناك، كما يبدو لي، يجب أن يكون لدى فئة المستخدم المسؤولية

وأي اقتراحات؟

هل كانت مفيدة؟

المحلول

ويجب أن تفوض هذه المهمة إلى متعاون، التي تدير الجدول confirmations.

ويمكنك أن استخدام نموذج Confirmation لتتبع جميع متطلبات تأكيد. فإن نموذج تنتمي إلى User، فضلا عن إدارة التجزئة التأكيد والعمل لمؤكدة أن (على سبيل المثال activate_account، change_password أو change_email الخ.).

وحدة تحكم Confirmation ستكون مسؤولة عن التحقق من صحة التجزئة التأكيد وتسلسل الإجراءات المناسبة على النموذج المناسب (على سبيل المثال activate_account -> user.activate()، change_password -> user.setPassword() الخ) وإزالة Confirmation من الجدول confirmations عند الانتهاء بنجاح <. / P>

وهذا سيسمح للانفصال أفضل من المنطق، وكذلك يسمح لك لتوسيع نطاق أفضل، على سبيل المثال للترفيه أكثر من انتظار تأكيد لمستخدم معين (مثلا تأكيد إلى تغيير كلمة المرور وتأكيدا لتغيير شيء آخر).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top