الإنتقال للتصميم الجديد

تجنب او إلغاء تنفيذ عملية برمجية في حال عدم اكتمال المتطلبات!

من مجتمع دورة برمجة الويب باستخدام لارافيل Laravel

في حال كان هناك اكثر من متطلب يجب تنفيذ من المستخدم لكي تتم العملية أو حصل امر ما في السيرفر،

 فهناك طرق مفيده يجب استخدامها منها try & catch

مثال : نموذج تسجيل مستخدم لدفع قيمة اشتراك،  هنا في حال تعثر الدفع فإن المستخدم لا يحفظ في قاعدة البيانات ويتم التراجع وارجاع رسالة خطأ يتم تخصيصها.

public function subscribe(array $data)
{
    DB::beginTransaction();
    try {
        $requestData = request()->all();
        $requestData['password'] = Hash::make($data['password']);
        $user = User::create($requestData);
        
        $paymentMethod = $requestData['payment_method'] ?? NULL;
        $user->newSubscription('default', 'plan_xxx')->create($paymentMethod);
            
        DB::commit();
    } catch (\Exception $ex) {
        DB::rollBack();
        throw $ex;
    }
}

 

نستخدم try & catch

مهم استخدام DB beginTransaction  في بداية الكود قبل try

وفي نهاية الكود داخل بلوك try نستخدم DB commit 

اما في حال حصل خطأ نستخدم DB rollback وهذا السطر يلغي العملية السابقة بالكامل بسبب عدم اكتمال المتطلبات .

الردود
تظهر النقاشات للطلاب المشتركين فقط