بضائع

Laravel: ما هي أجهزة تحكم Laravel

في إطار عمل MVC ، يشير الحرف "C" إلى وحدات التحكم ، وفي هذه المقالة سنرى كيفية استخدام وحدات التحكم في Laravel. يعمل كحركة مباشرة بين وجهات النظر والنماذج. نرى في هذا المقال كيفية إنشاء وإعداد وحدات التحكم في Laravel.

Creare un controller في Laravel

لخلق controller، يجب علينا فتح موجه الأوامر أو المحطة الطرفية ، وفقًا لنظام التشغيل الذي نستخدمه ، واكتب الأمر التالي لإنشاء وحدة التحكم باستخدام Artisan CLI (Command Line Interface).

php artisan make:controller <controller-name> --plain

يحل محل <controller-name> باسمك controller. سيؤدي هذا إلى إنشاء ملف controller. ال controller يمكن عرضها في app/Http/Controllers .

سترى أن بعض الترميز الأساسي قد تم بالفعل من أجلك ويمكنك إضافة الترميز المخصص الخاص بك. ال controller يمكن استدعاءه من web.php بالصيغة التالية.

بناء الجملة
Route::get(‘base URI’,’controller@method’);
مثال

1 : قم بتشغيل الأمر التالي للإنشاء MyController

php artisan make:controller MyController

2 - بعد التنفيذ الناجح ، ستحصل على الناتج التالي.

3 - سنجد وحدة التحكم التي تم إنشاؤها بتنسيق app/Http/Controller/MyController.php مع بعض التعليمات البرمجية الأساسية المكتوبة بالفعل ويمكننا إجراء التغييرات حسب الحاجة.

الوسيطة للتحكم

لقد رأينا بالفعل middleware ويمكننا أيضًا استخدامه مع controller. ال middleware يمكن أيضًا تعيينه لمسار وحدة التحكم أو داخل مُنشئ وحدة التحكم. يمكنك استخدام الطريقة middleware لتعيين middleware al controller. ال middleware المسجل يمكن أن يقتصر أيضًا على طرق معينة لـ controller.

تعيين البرامج الوسيطة للمسار
Route::get('profile', [
   'middleware' => 'auth',
   'uses' => 'UserController@showProfile'
]);

نحن هنا نقوم بتعيين برمجية مصادقة وسيطة لـ UserController في مسار ملف التعريف.

تعيين برمجية وسيطة داخل مُنشئ وحدة التحكم
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class MyController extends Controller {
   public function __construct() {
      $this->middleware('auth');
   }
}

هنا نقوم بتعيين middleware من المصادقة باستخدام الطريقة middleware في المنشئ MyController .

لاحظ أن $this->middleware() أعمال فقط إذا قمت بتعيينه في المنشئ. إذا اتصلنا $this->middleware() من طريقة تحكم معينة ، فلن يؤدي ذلك إلى ظهور أي أخطاء ، لكن البرامج الوسيطة لن تعمل بالفعل.

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

مثال

1 - دعنا نضيف سطور التعليمات البرمجية التالية إلى الملف الطرق / web.php وننقذ.

<?php
Route::get('/mycontroller/path',[
   'middleware' => 'First',
   'uses' => 'MyController@showPath'
]);

2 - لنقم بإنشاء ملف middleware ودعا FirstMiddleware عن طريق تشغيل السطر التالي من التعليمات البرمجية.

php artisan make:middleware FirstMiddleware

3 : أضف الكود التالي في الطريقة مقبض من FirstMiddleware تم إنشاؤه للتو في app / Http / Middleware .

<?php

namespace App\Http\Middleware;
use Closure;

class FirstMiddleware {
   public function handle($request, Closure $next) {
      echo '<br>First Middleware';
      return $next($request);
   }
}

4 - لنقم بإنشاء ملف middleware ودعا SecondMiddleware عن طريق تشغيل الأمر التالي.

php artisan make:middleware SecondMiddleware

5 : دعنا نضيف الكود التالي في طريقة handle لملف SecondMiddleware تم إنشاؤه للتو في app / Http / Middleware .

النشرة الإخبارية
لا تفوّت أهم أخبار الابتكار. قم بالتسجيل لتلقيهم عن طريق البريد الإلكتروني.
<?php

namespace App\Http\Middleware;
use Closure;

class SecondMiddleware {
   public function handle($request, Closure $next) {
      echo '<br>Second Middleware';
      return $next($request);
   }
}

6 : لنقم بإنشاء ملف controller ودعا MyController عن طريق تشغيل السطر التالي.

php artisan make:controller MyController

7 - بعد تنفيذ عنوان url بنجاح ، ستحصل على الإخراج التالي -

8 - انسخ الكود التالي إلى الملف app/Http/MyController.php.

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class MyController extends Controller {
   public function __construct() {
      $this->middleware('Second');
   }
   public function showPath(Request $request) {
      $uri = $request->path();
      echo '<br>URI: '.$uri;
      
      $url = $request->url();
      echo '<br>';
      
      echo 'URL: '.$url;
      $method = $request->method();
      echo '<br>';
      
      echo 'Method: '.$method;
   }
}

9 - لنبدأ الآن خادم الويب الداخلي php عن طريق تشغيل الأمر التالي ، إذا لم تكن قد قمت بذلك بالفعل.

php artisan serve

10 - قم بزيارة الرابط التالي.

http://localhost:8000/mycontroller/path

11 - سيظهر الإخراج كما هو موضح في الصورة التالية.

عمليًا ، يتم تضمين كل من البرامج الوسيطة ، ولكن واحدة فقط

Controller di restful resource

غالبًا عند إنشاء تطبيق ما ، تحتاج إلى القيام بشيء ما CRUD (Create, Read, Update, Delete)يجعل Laravel هذه المهمة سهلة. فقط قم بإنشاء ملف controller وسيوفر Laravel جميع طرق العمليات تلقائيًا CRUD. يمكننا أيضًا تسجيل مسار واحد لجميع الطرق الموجودة في الملف route.php.

مثال

1 : إنشاء وحدة تحكم تسمى MyController عن طريق تشغيل الأمر التالي.

php artisan make:controller MyController

2 : أضف الكود التالي في app/Http/Controllers/MyController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class MyController extends Controller {
   public function index() {
      echo 'index';
   }
   public function create() {
      echo 'create';
   }
   public function store(Request $request) {
      echo 'store';
   }
   public function show($id) {
      echo 'show';
   }
   public function edit($id) {
      echo 'edit';
   }
   public function update(Request $request, $id) {
      echo 'update';
   }
   public function destroy($id) {
      echo 'destroy';
   }
}

3 - دعنا نضيف السطر التالي من التعليمات البرمجية في الملف routes/web.php .

Route::resource('my','MyController');

4 - نقوم الآن بتسجيل جميع طرق MyController عن طريق تسجيل وحدة تحكم مع مورد. يوجد أدناه جدول الإجراءات التي تديرها وحدة التحكم في الموارد.

الفعلمساراكشناسم الطريق
للحصول على/ ليمؤشرالفهرس الخاص بي
للحصول على/ بلدي / إنشاءخلقإنشاء بلدي
سأعين/ ليمتجرmy.store
للحصول على/لي لي}إظهارعرضي
للحصول على/ بلدي / {my} / تحريرتحريرتعديلي
وضع / التصحيح/لي لي}تحديثالتحديث الخاص بي
حذف/لي لي}هدمتدمير

5 - حاول تشغيل عناوين URL الموضحة في الجدول أدناه.

URLوصفخروج
http://localhost:8000/myقم بتنفيذ طريقة الفهرس الخاصة بـ MyController.phpمؤشر
http://localhost:8000/my/createقم بتنفيذ طريقة الإنشاء الخاصة بـ MyController.phpخلق
http://localhost:8000/my/1قم بتنفيذ طريقة العرض الخاصة بـ MyController.phpإظهار
http://localhost:8000/my/1/editقم بتنفيذ طريقة التحرير الخاصة بـ MyController.phpتحرير

Ercole Palmeri

النشرة الإخبارية
لا تفوّت أهم أخبار الابتكار. قم بالتسجيل لتلقيهم عن طريق البريد الإلكتروني.

المقالات الأخيرة

الذكاء الاصطناعي الجديد من جوجل يمكنه نمذجة الحمض النووي الريبي (DNA) والحمض النووي الريبوزي (RNA) و"جميع جزيئات الحياة"

تقدم Google DeepMind نسخة محسنة من نموذج الذكاء الاصطناعي الخاص بها. لا يوفر النموذج المحسن الجديد فقط ...

9 مايو 2024

استكشاف بنية Laravel المعيارية

Laravel، المشهور بتركيبه الأنيق وميزاته القوية، يوفر أيضًا أساسًا متينًا للهندسة المعمارية المعيارية. هناك…

9 مايو 2024

Cisco Hypershield والاستحواذ على Splunk يبدأ عصر الأمان الجديد

تساعد Cisco وSplunk العملاء على تسريع رحلتهم إلى مركز العمليات الأمنية (SOC) المستقبلي من خلال...

8 مايو 2024

ما وراء الجانب الاقتصادي: التكلفة غير الواضحة لبرامج الفدية

سيطرت برامج الفدية على الأخبار خلال العامين الماضيين. معظم الناس يدركون جيداً أن الهجمات…

6 مايو 2024

التدخل المبتكر في الواقع المعزز، مع عارض Apple في مستوصف كاتانيا

تم إجراء عملية رأب العين باستخدام العارض التجاري Apple Vision Pro في مستوصف كاتانيا...

3 مايو 2024

فوائد صفحات التلوين للأطفال - عالم السحر لجميع الأعمار

إن تطوير المهارات الحركية الدقيقة من خلال التلوين يؤهل الأطفال لمهارات أكثر تعقيدًا مثل الكتابة. للتلوين…

2 مايو 2024

المستقبل هنا: كيف تُحدث صناعة الشحن ثورة في الاقتصاد العالمي

يعد القطاع البحري قوة اقتصادية عالمية حقيقية، وقد اتجه نحو سوق يبلغ حجمه 150 مليارًا...

1 مايو 2024

يوقع الناشرون وOpenAI اتفاقيات لتنظيم تدفق المعلومات التي تتم معالجتها بواسطة الذكاء الاصطناعي

أعلنت صحيفة فاينانشيال تايمز يوم الاثنين الماضي عن صفقة مع OpenAI. "فاينانشيال تايمز" ترخص صحافتها ذات المستوى العالمي...

أبريل 30 2024

اقرأ الابتكار بلغتك

النشرة الإخبارية
لا تفوّت أهم أخبار الابتكار. قم بالتسجيل لتلقيهم عن طريق البريد الإلكتروني.

تابعنا