استثمر للحياة

مواضيعنا

الضابط Controller و محرر Blade

حجم الخط

الكنترولر Controller  و  محرر Blade

قد يسأل سائل : هل نكتب Route لكل دالة فى المشروع ؟ إليس هذا شئً ممل !



الاجابة هي   الكنترولر , لقد عرفناه بإنه هو الضابط أو وحدة التحكم . فما هو عمله ... و ماذا يحتوي ؟
بدايةً  ندخل مجلد  Laravel  على السيرفر المحلي .... نفتح مجلد  app ثم نفتح مجلد controllers
سنجد ملفين هما   BaseController.php و هو مورث من " class BaseController  " و هذا الكلاس هو الأب لكل كنترولر سننشئه بعد ذلك ..
و الاخر  HomeController.php و يبدو من كلمة Home  إنه مخصص للصفحة الرئيسية  ‘/’
نلاحظ
أن كلا الكلمتين فى اسم الكنترولر تبدأ بحرف كبير . فإذا قمنا بفتح هذا الاخير Home  سنجد به دالة واحدة فقط هي  , تسمى  showWelcome  وهذا هو الكود

()  public function showWelcome
           }
                 ;( ' return View::make('hello
          {

 نلاحظ  أن :


1  محتوى الدلة هو فقط عمل شاشة عرض  View للملف hello.php   , كما كان مكتوباً في ملف الرَوت .
2  يمكن ربط  Viewمع  Controller مباشرة .
3  اننا لم نحدد مسار ... لتحديد المسار نذهب لملف  و نحذف الدلة الموجوده به و الخاصة بالصفحة الرئيسية و نكتب فقط هذه العبارة

;( 'Route::get('/', 'HomeController@showWelcome

و معناه وجهه الصفحة الرئيسية ‘/’  للكونترولر المسمى  HomeController  و تخصيصاً @ للدلة showWelcome
ندخل المسار 

http://localhost/lv/public

سنجد الرئيسية تعمل بشكل طبيعي رغم حذف دالة التوجيه الحاصة بها . ... ما معنى هذا !!
 


1- الضابط   Controller


كانت هذه مقدمة سريعة عن الضابط   Controller  . و الآن نبدأ الشرح . كيف نصنع كونترولر جديد و ما اسمه و ما محتواه ؟

أولاً لعمل كونترولر جديد  نذهب لمحرر الأوامر  command promt


composer


اكتب فيه

php artisan controller:make PhoneController


نفتح المجلد app\controllers سنجد ملف باسم   PhoneController.php .. هيا نفتح المف سنجد ما يشبه الصورة التالية

 

هذا نموذج لمحتوى كونترولر يتولد من الكمبوزر بهذا الشكل الثابت . الا إنه يمكن حذف دوال منه أو إضافة دوال آخرى .
على كل حال سنكتب فى محتوى  الدالة index   العبارة :

      ;  'أهلاً و سهلاً' return

ثانياً : ربط الكونترولر بمسار ما

راجع أيضاً الراوت Route

من ملف routes.php  نقوم بإنشاء Route  جديد

  ;( 'Route::get('phone', 'PhoneController@index

عندما نكتب المسار public/phone سيظهر على الشاشة اهلا و سهلا و هو محتوى الدلة index   
غير أن هناك طريقة أخرى للتعامل مع جميع دوال الكونترولر -  و هي الافضل عادة -  باستخدام الدالة  resource هكذا

;( 'Route:: resource ('phone', 'PhoneController

و هنا أيضاعندما نكتب المسار public/phone سيظهر على الشاشة اهلا و سهلا و هو محتوى الدلة index  , رغم اننا لم نذكر

كلمة index  في المسار و ذلك لان الدلة  index  تنفذ بشكل مباشر خلاف باقى الدوال الآخر و التي يجب استدعائها من المسار . فمثلا :

create  اذاكتبنا الكود التالى فى الدالة   

 

public function create()
    {
        return('مرحبا بك فى دالة إنشاء حقول قاعدة البيانات');
    }

علينا أن نكتب المسار هكذا

public/phone/create

و هكذا في باقى الدوال .



2- محرر البليد  Blade


في الدرس السابق تعرفنا على كيفية تمرير متغير ما من خلال المتصفح ...

راجع أيضاً الراوت و View


إنه يمكن تمرير متغير ما من المتصفح داخل شاشة العرض الخاصة بنا Viewعن طريق خطوتين . الاولى نضيف للكود اسم المتغير و كذلك الدالة with  ليصبح هكذا

و الثانية نكتب فى  ملفpages/ myfile    السطر التالي 

;<?Hello -- <?php echo $name

فإذا رغبنا   تمرير عدد أكبر من المتغيرات , بمعنى عندما يُدخل المستخدم المتغير name   يظهر له على الشاشة   و معه بعض المعلومات الاخرى مثل رقم الهاتف  و العمر ... مثلاً . سنقوم بعمل ملف 1  pages/ myfile  و نكتب فيه
<?php echo $name; ?>عدة مرات .. الا يوجد طريقة كتابة سهلة !! نعم إنها محرر Blade أو القوة السلسة .

يمكن استدعاء محرر Blade  فقط بمجرد انشاء ملف   Blade  بمعنى أننا من أي محرر نصوص و ليكن Notepad ++ سننشئ الملف فى المجلد pages باسم   Myfile1.blade.php     انتبه لإضافة .  blade في  اسم الملف

  1. سنستخدم دائماً و ابداً الاقواس المزدوجة {{  في بداية السطر و الاقواس المزدوجة }}  في نهايته .

  2. لا ينتهى أى سطر بالفاصلة المنقوطة ;... و ده فى حد ذاته انجاز كبير.

خلينا ننفذ
فى ملف الراوت Route.php  سنكتب

  و فى الملف سنكتب Myfile1.blade.php 

{{Hello - - {{ $name
<br >
{{your phone :  {{ $phone
<br >
{{your age : {{ $age

ثم نحفظه  ..و هذا كل ما فى الامر .. أه و الله .... نكتب المسار    /public/file1/ahmed  ,,,, و نرى الناتج .

محرر البليد  و المصفوفة   array و الدالة  foreach


كما يمكننا التعامل مع المصفوفة array ()   بسهولة .... افرض جدالاً إننا نريد كتابة كود بحيث إذا أدخل المستخدم اسمه فى المتصفح يظهر له كل إصدقاءه .... مثلاً .  في ملف  Routes.php   نكتب الكود هكذا

 
و في ملف Myfile2.blade.php  

نكتب المسار    /public/file1/ahmed  ,,,, و نرى الناتج .
 

 
 


 

الموضوع  :  *الضابط Controller و محرر Blade* المرجع : استثمر للحياة  investolife 

اعلان تجاري
اعلان 468