برمجة | 8 دقائق للقراءة

ما هو Laravel لارافل ؟ تعرف على أهم اطار عمل للغة PHP

مقدمة

في عالم الويب شديد التنافسية , ان كنت فعلاً تريد البقاء فعليك اذاً دائماً تطوير مهاراتك , لم يعد عالم برمجة الويب مكاناً للمبرمجين الحقيقيين فقط , و لنكن واقعيين للحظة هنا , لقد أصبح اي مستجد في عالم البرمجة يبحث عن عمل في مجال الويب ويبدأ تعلم الويب , ربما لأنه الأسهل او لأن الطلب عليه كبير , بكلا الحالتين خلق هذه الأمر حالة حرب مستمرة بين المنافسين , ولتكون انت الطرف القوي عليك اذاً بالأسلحة القوية , أعرفك اليوم على Laravel لارافيل , ربما يكون قد تعدى مرحلة القنبلة الذرية كما ذكرنا في مقال سابق عن محرك Sass ل Css , من الواضح اننا اليوم نتحدث عن القنبلة الهيدروجينية الخاصة ب PHP ! سارع بامتلاكها لابادة أعدائك والفوز بالمعركة ...

ما هو لارافل Laravel ؟

ببساطة , لارافل Laravel هو اطار عمل خاص بلغة php سيجعلك تقع حرفياً في حب هذه اللغة حتى وان كنت مصمم في الاساس , يقدم لارافل بيئة عمل متكاملة لكل ما تحتاجه او قد تحتاجه في اي فترة مستقبلية من حياتك المهنية , لارافل Laravel مبني على طريقة MVC الشهيرة التي تفصل ال MODEL عن VIEW عن CONTROLLER , مما يوفر لك بيئة عمل سلسة وسهلة , وربما لحد الآن لم تستطع استيعاب ماهية لارافل Laravel تماماً , لا داع للقلق فالسطور القادمة كفيلة بمساعدتك للدخول الى بداية مشوارك في تعلم لارفل Laravel.

سنقدم في هذه المقالة المطولة تفاصيل كثيرة عن اطار العمل الكبير هذا , لذلك , نأمل عند انتهائك من قراءة هذه المقال ستجد نفسك على دراية واسعة بلارافل وستجد الطريق بدأ أمامك للبحث عن دورات تعليمية.

لم علي الاهتمام بتعلم لارافل Laravel ؟

لنطرح الأمر على شكل نقاط , ومن ثم نناقشها واحدة تلو الأخرى سنبدأ بأهم ميزة , لم سمينا لارافل أنه أفضل اطار عمل php ؟

واسع الانتشار

اطار عمل لارافل Laravel هو أكثر اطر عمل php انتشاراً , وبعملية حسابية بسيطة نستنتج أن الانتشار الهائل = مصادر هائلة للتعلم , وهنا يكمن بيت القصيد في تفضيل لارافل عن غيرها من المنافسين .

السهولة

كمعظم أطر العمل التي تعتمد بنية MVC , ستجد أن المصطلح بطبيعته متقدم قليلاً فهو تقريبا المرحلة المتقدمة من OOP (البرمجة كائنية التوجه) التي سبق أن تحدثنا عنها في مقال سابق بعنوان البرمجة كائنية التوجه , المرحلة المتقدمة من معمارية البرمجة , لكن في لارافل حتى ان كنت مبتدأ في البرمجة كائنية التوجه ل php ستجد لنفسك مكان بين مبرمجي لارافل , لكن نضيف ملاحظة مهمة هنا , تعلمك لبرنامج HelloWorld في php لا يكفيك للبدء في تعلم لارافل , للأسف

بنية ملفات واضحة

بعد تخطيك الأيام الأولى في تعلم لارافل ستجد أن الملفات التي تتعامل معها لا تزيد عن 4 مجلدات يحتوي المجلد فيهم ما يقارب ال 10 ملفات (يعتمد العدد الصحيح طبعاً على نوعية موقعك) , وستجد ان التنقل بين المهام في لارافل سهل للغاية

القوة الهائلة

قد تعتقد أن مصطلح القنبلة الهيدروجينية كان مبالغاً فيه في البداية , لكن مع بعض الوقت ستجد أنني محق تماماً , انها قنبلة ساحقة لجيع المنافسين !

الأمان العالي

يمتلك اطار عمل لارافل حماية لا يستهان بها , فهو الوسيلة الأمثل لمبرمج PHP يعتبر انه ضعيف في الحماية , لارافل تتولى الأمر عنك !

اضافات كثيرة

يمكنك اضافة ميزات كثيرة الى لارافل عبر الاضافات الموجودة بشكل مجاني في الانترنت , الأمر الذي سيوسع مشروعك الى حدود لا يمكن لأحد تصورها

أخيراً , توثيق سهل واضح

ربما ليست ميزة تنافسية خاصة بلارافل , لكن التوثيق المقدم من موقع لارافل سهل الفهم , ربما لن تحتاج أصلاً الى أي دورات لانجاح مسيرتك المهنية في لارافل , يكفي أنك متوسط المستوى في اللغة الانجليزية وتمتلك الحماس و الجرأة للضغط على زر اطلاق القنبلة .

تنصيب لارافل على جهازك

لتنصيب لارافل على جهازك , كل ما عليك هو استخدام Composer الذي تحدثنا عنه في مقالة سابقة بعنوان : ما هو Composer , تعرف عليه وعلى طريقة استعماله , واستخدام الأمر التالي

composer global require laravel/installer

وسيتم تنصيب حزمة جديدة على جهازك لاستخدامها في تنصيب مشاريع لارافل

laravel new blog

هذا الأمر سيقوم بانشاء مجلد باسم Blog في المسار الحالي وانشاء مشروع لارافل فيه

أو يمكنك اختار عملية تنصيب حزمة لارافل على جهازك وانشاء مشروع لارافل مباشرة باستخدام Composer

composer create-project --prefer-dist laravel/laravel blog

والآن كل ما عليك فعله , باستخدام ال Command Line اياً كان ما تفضل استخدامه الذهاب الى المشروع عبر الأمر cd وعند وصولك اليه , كتابة الأمر التالي :

php artisan serve

وسيظهر لك رابط المشروع , قم بفتحه في متصفحك وسيظهر لك مشروعك الأول باستخدام لارافل , وغالباً ما يكون الرابط كالتالي

http://localhost:8000

http://127.0.0.1:8000

وقد يختلف الرابط بحسب نوع نظام التشغيل و ال Ports المتوفرة , لكن الرابط الذي سيظهر لك هو ما سيعمل في النهاية وسيظهر لك هذه الصفحة الرائعة

نتيجة بحث الصور عن ‪first page laravel 5.8 project‬‏

الخطوة الأولى : ملف الاعدادت .env

ملف اساسي لاي مشروع لارافل , ستجده في جذر المشروع باسم .env وقد يكون مخفي في انظمة لينكس او ماك , عليك بالدخول اليه وتعديله واضافة معلومات الاصتال بقواعد البيانات ان وجدت , لكن في مشروعنا الحالي لن تحتاج الى التعديل على هذه الملف .

أنظمة لارفل , نظام التوجيهات Routing

نظام التوجيهات في لارافل بسيط وسهل بشكل لا تتخيله , سيحتاج منك تقريباً 20 ثانية لانشاء صفحة جديدة , وربما لن يزيد الأمر عن 3 دقائق لانشاء صفحة متكاملة (بدون التصميم)

جميع التوجيهات يمكنك ايجادها في المسار التالي : routes/web.php

الصيغة العامة للتوجيه في لارافل هي كالتالي :

Route::_METHOD('PAGE-LINK' , 'RESULT');

التوجيه المبسط , توجيه الى دالة function

بهذه الطريقة ستقوم باعادة التوجيه الى دالة تعيد محتوى معين , وستظهر العبارة او اياً كان نتيجة الدالة في الصفحة ففي مثالنا , عندما تفتح http://your-site.domain/page-link

سيظهر لك كلمة Hello World From Laravel , بهذه البساطة

Route::get('page-link' , function(){
   return "Hello World From Laravel";
});

كما يوجد أنواع أخرى للتوجيه , وسنقدم هنا أشهر الأنواع طبعاً والمدعومة من آخر اصدار Laravel 5.8

توجيه الى كونترولر

وأبسط كلمة يمكن قولها عن الكونترولور هو كلاس php يستمد العديد من خواصة من كلاس Controller الاساسي الموجود مع لارافل نفسه عند تنصيبها

Route::get('page-link' , '[email protected]');

أنظمة لارفل , Controllers

الكونترولور أو المتحكم باللغة العربية ان صح التعبير , هو يعتبر جوهر المشروع وقلبه النابض , في هذه الملفات يمكنك انشاء العمليات الخاصة بالمشروع وارسالها الى الصفحات التي ستظهر للمستخدم , ولانشاء كونترولور في لارافل قم باستخدام الأمر التالي في ال Command Line :

php artisan make:controller ControllerName

اذاً , أين اجد ال كونترولور في المشروع ؟ ستجد الكونترولور دائماً موجود في المسار التالي : app/Http/Controllers

وعند انشاء كونترولر يوجد نصيحة للتسمية , طبعاً يمكنك تسمية الكونترولور بما تشاء لكن الأفضل هو استخدام نظام كتابة يعتمد على اسم الكوترولور في البداية ومن ثم كلمة Controller , كمثال : AdminController وليس controllerForAdminStuff , طبعاً كلا التسميتان صحيحة , لكن ان كان هناك قواعد متعارف عليها ما المانع من اتباعها ؟

والآن بعد أن قمت بانشاء الكونترولور لنقم بعملية حسابية بسيطة فيه ...

<?php
namespace App\Http\Controllers;
class Admin extends Controller{
    public function count(){
       $a = 1;
       $b = 2;
       $c = $a + $b;
       return $c;
   }
}

تم بنجاح ! لقد قمت بانشاء الكونترولور , طبعاً الكونترولور وجد لعمل مهام أضخم من هذا بكثير , لكن المثال السابق بسيط وكافي للاختبار فقط , ولكي تستعرض النتيجة عليك انشاء Route جديد وتوجيهه الى ال Controller لعرض النتيجة , كيف ذلك ؟ بالكود التالي في ملف routes/web.php

Route::get('count' , '[email protected]'); //Change ControllerName to Your Controller Name to Avoid Errors...

والنتيجة في الصفحة ستكون ناتج الجمع , والذي هو 3 طبعاً ...

وهذه هي الفكرة العامة , مع تقدمك ستجد أن الأمور أكبر بكثير من مجرد عمليات حسابية , وستحتاج صفحات تستقبل فيها البيانات وتعرضها , وهنا يأتي دور ال Views وهي العنصر الثاني في بنية MVC

أنظمة لارفل , Views

ال views هي بأسهل كلمة يمكن قولها , صفحات html الخاصة بموقعك , ويمكن ايجاد جميع صفحاتك في المسار التالي : resources/views

ولانشاء view جديدة لا حاجة لل Command Line هنا , فقط في مجلد views قم بانشاء ملف جديد وليكن اسمه index.blade.php وقد لاحظت ان نوع الملف ليس HTML , فعليا هو ملف PHP لكن وضع اللاحقة blade.php لاضافة امكانية استخدام محرك Blade في الصفحة , يمكنك الاستغناء عنه لكن لماذا قد تفعل ذلك ؟ في اي صفحة blade يمكنك كتابة كود html عادي والاستفادة من بعض الاضافات المقدمة من Blade , لذا لا ننصح بعدم استخدام هذا المحرك لأي سبب ...

ولنفترض شيئ بسيط هنا , سنعيد كتابة نظام جمع عددين باستخدام ما تعلمناه حتى الآن , Routes , Controller , views

أولاً , سنقوم باستخدام نفس ال Controller و ال Route السابقين , فقط سنقوم بانشاء ملف view جديد وارسال نتيجة الجمع اليه , لذا لنبدأ , وليكن اسم الملف index.balde.php , ويمكنك تسميته ما تشاء طبعاً , والان لنستعرض الكود الكامل لمشروعنا , مشروع جمع عددين (مضحك قليلاً)

سنقوم بعمل تعديل بسيط على الكونترولور لارسال القيمة الى ملف وليس لعرضه بشكل مباشر , و التعديل بسيط وهو كالتالي :

<?php
namespace App\Http\Controllers;
class Admin extends Controller{
    public function count(){
       $a = 1;
       $b = 2;
       $c = $a + $b;
       return view('index')->with('c' , $c);
   }
}

كل ما قمنا بعمله هو ارسال النتيجة لل view المسماة index , ولا داع لاضافة الاسم الكامل هنا , يكفي استخدام الاسم ما قبل .blade.php ومن ثم استخدمنا دالة with التي تساعد على ارسال متغيرات الى ال view .

وفي ملف routes/web.php الكود سيبقى بدون اي تغيير كالتالي :

Route::get('count' , '[email protected]'); //Change ControllerName to Your Controller Name to Avoid Errors...

أما ال view , سنقوم بكتابة كود html عادي , لكن باضافة بسيطة يعطينا اياها محرك Blade

ملف resources/views/index.blade.php

<h1>{{ $c }}</h1> <!-- {{ }} Used Almost as <?php echo $c; ?> -->

تم بنجاح , مشروعنا الان جاهز ! , لنقم باستعراضه في المتصفح عبر فتح الرابط : http://127.0.0.1:8000/count وستجد النتيجة أمامك , وملاحظة مهمة هنا , ليعمل المشروع يجب على أمر php artisan serve ان يكون عاملاً في الخلفية , لا تغلق هذا الأمر أبداً اثناء عملك على المشروع...


في النهاية

على الرغم من طول المقال , فربما كل ما شرحناه هو أقل من 2% من اطار العمل , فنحن لم نتطرق لل MODEL الذي هو يعتبر المتحكم في قواعد البيانت والاتصال بها , يوجد الكثير لتعلمه , وننصحك فعلاً بتعلم اطار عمل جبار كلارافل , لا توجد احتمالية خسارة , ولنعطيك المزيد من الأمل , من ضمن المشاريع التي يمكن تصميمها ب لارافل مشروع مدونة بسيط , حتى مشروع متجر الكتروني متكامل , لا تضيع الفرصة وأبدا الآن!