5 أساسيات Laravel 11: Controllers

Anis MarrouchiAbdoullah SghaierAI Bot
بواسطة Anis Marrouchi & Abdoullah Sghaier & AI Bot ·

جاري تحميل مشغل تحويل النص إلى كلام الصوتي...

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

مقدمة عن Controllers

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

كتابة Controllers

Controllers الأساسية

لإنشاء controller جديد بسرعة، استخدم أمر Artisan make:controller. بشكل افتراضي، يتم تخزين controllers في دليل app/Http/Controllers:

php artisan make:controller UserController

يمكن أن يحتوي controller الأساسي على أي عدد من الطرق العامة التي تستجيب لطلبات HTTP الواردة:

namespace App\Http\Controllers;
 
use App\Models\User;
use Illuminate\Http\Request;
 
class UserController extends Controller
{
    public function show($id)
    {
        return view('user.profile', ['user' => User::findOrFail($id)]);
    }
}

بمجرد كتابة فصل controller وطريقة، يمكنك تعريف مسار إلى طريقة controller على النحو التالي:

use App\Http\Controllers\UserController;
 
Route::get('/user/{id}', [UserController::class, 'show']);

عندما يتطابق طلب وارد مع URI المسار المحدد، سيتم استدعاء طريقة show في فصل UserController، وسيتم تمرير معلمات المسار إلى الطريقة.

Controllers ذات الإجراء الواحد

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

namespace App\Http\Controllers;
 
use App\Models\User;
use Illuminate\Http\Request;
 
class ShowProfile extends Controller
{
    public function __invoke($id)
    {
        return view('user.profile', ['user' => User::findOrFail($id)]);
    }
}

ثم يمكنك تسجيل controller مع المسار على النحو التالي:

use App\Http\Controllers\ShowProfile;
 
Route::get('/user/{id}', ShowProfile::class);

Middleware في Controllers

لتعيين middleware إلى controller، استخدم طريقة middleware داخل منشئ controller. يمكن تعيين middleware لإجراء محدد في controller أو لكامل controller:

namespace App\Http\Controllers;
 
use Illuminate\Http\Request;
 
class UserController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth');
    }
 
    public function show($id)
    {
        return view('user.profile', ['user' => User::findOrFail($id)]);
    }
}

Resource Controllers

تجعل resource controllers من السهل التعامل مع جميع عمليات CRUD الشائعة لمورد في سطر واحد من الكود. لإنشاء resource controller، استخدم الخيار --resource:

php artisan make:controller PhotoController --resource

سينشئ هذا الأمر controller بطرق للتعامل مع جميع عمليات CRUD. يمكنك تسجيل مسار resource controller باستخدام طريقة Route::resource:

use App\Http\Controllers\PhotoController;
 
Route::resource('photos', PhotoController::class);

تعرف على المزيد حول controllers في Laravel من التوثيق الرسمي لـ Laravel.

خاتمة

تعد controllers ميزة قوية في Laravel تساعد في الحفاظ على تنظيم الكود وسهولة إدارته. غطى هذا البرنامج التعليمي كيفية إنشاء واستخدام controllers في Laravel 11. لمزيد من المعلومات التفصيلية، راجع التوثيق الرسمي لـ Laravel.

تمنياتنا ببرمجة سعيدة مع Laravel 11!


هل تريد قراءة المزيد من الدروس التعليمية؟ تحقق من أحدث درس تعليمي لدينا على دمج ALLaM-7B-Instruct-preview مع Ollama.

ناقش مشروعك معنا

نحن هنا للمساعدة في احتياجات تطوير الويب الخاصة بك. حدد موعدًا لمناقشة مشروعك وكيف يمكننا مساعدتك.

دعنا نجد أفضل الحلول لاحتياجاتك.