البرمجة

استخدام المراقبين في Laravel

في Laravel، يمكنك استخدام ميزة التوجيهات (Laravel Observers) لإنشاء دوال تُستدعى تلقائيًا قبل أو بعد عمليات الحفظ أو التحديث على النموذج. يُمكنك القيام بذلك عبر الخطوات التالية:

  1. إنشاء المراقب (Observer): يجب عليك أولاً إنشاء المراقب الذي يحتوي على الدوال التي تريد تنفيذها قبل أو بعد عمليات الحفظ أو التحديث. يُمكنك إنشاء ملف للمراقب في مجلد app/Observers.
php
php artisan make:observer UserObserver --model=User

سيُنشأ ملف UserObserver.php في المجلد المحدد، وسيحتوي على دوال created, updated, deleted, وغيرها التي يمكنك استخدامها.

  1. تسجيل المراقب:

    • يجب تسجيل المراقب في ملف app/Providers/AppServiceProvider.php في دالة boot():
    php
    use App\Models\User; use App\Observers\UserObserver; public function boot() { User::observe(UserObserver::class); }
  2. تنفيذ الدوال:

    • يمكنك الآن تنفيذ الدوال التي تريدها في المراقب. على سبيل المثال، إذا أردت تنفيذ دالة بعد عملية الحفظ، يمكنك استخدام دالة saved:
    php
    public function saved(User $user) { // تنفيذ الكود الذي تريده بعد عملية الحفظ }
    • كذلك، يمكنك استخدام دالة saving لتنفيذ كود قبل عملية الحفظ.

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

المزيد من المعلومات

بالطبع! في Laravel، يُستخدم مفهوم “المراقبين” (Observers) لتنفيذ السلوك الخاص بالنماذج (Models) قبل أو بعد عمليات معينة مثل الحفظ (saving)، التحديث (updating)، الحذف (deleting)، وغيرها. هذا يُسهل فصل السلوك عن الكود الرئيسي للنموذج، مما يجعل الكود أكثر نظافة وسهولة في الصيانة.

لتفعيل المراقبين، يجب أولاً إنشاء المراقب نفسه باستخدام الأمر make:observer كما ذكرت سابقًا. ثم، يُحدد المراقب الموديل الذي يجب مراقبته. يمكنك إضافة عدة دوال إلى المراقب، مثل created, updated, deleted، ويمكنك أيضًا إنشاء دوال مخصصة تُنفذ قبل أو بعد عمليات معينة.

على سبيل المثال، إذا أردت تنفيذ دالة بعد عملية الحفظ، يمكنك استخدام دالة saved كما ذكرت. وإذا كنت ترغب في تنفيذ دالة قبل عملية الحفظ، يمكنك استخدام دالة saving، وهكذا لبقية العمليات.

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

زر الذهاب إلى الأعلى