لا شيئ سيضاهي الجافاسكربت في إطاراتها الشهيرة و الكثيرة، إلا أن الجافاسكربت ليست لغة البرمجة الوحيدة ذات إطارات عمل قوية و ينافسها أكبر اللغات البرمجية مثل بايثون بإطارات مثل Django، او الروبي بإطارات مثل Rails، لكن الـ Php تزعمت نطاق الويب على مصراعيه بمجموعة كبيرة من إطارات العمل الشهيرة للـ Php مثل Symfony و Zend و Cake php ...
1 - لأنه مجاني و مفتوح المصدر :
أولى الأسباب التي تجعل المبرمجين يعتنقون تقنيات محددة هي إمكانية الوصول لكل خواصها و إمكانياتها بشكل حر دون الحاجة للدفع مقابل الحصول على تلك الإمتيازات، إطار العمل Laravel مثال رائع في هذه الحالة، فهو مجاني كليا، مفتوح المصدر و يمكنك إستخدامه حسب حاجياتك الشخصية.
لإطار العمل لارافيل (Laravel) أيضا جانب مدفوع يتعلق بالإستضافة، لكن هذا الأمر قائم بذاته في جميع التقنيات و ليس فقط إطار العمل لارافيل، فصناعتك لأي موقع على أي منصة (Wordpress, Rails, Joomla, Native Php ...) سيتطلب منك في الأخير الدفع للحصول على إستضافة من أجل رفع و إستضافة موقعك، لكن مشكلة Laravel أو الإطارات الكبرى بشكل عام مثل Django و Rails أنها تحتاج الى منصات مخصصة مثل إستضافة Heroku او Degintal Oceans و ليس أي إستضافة.
لكن بشكل عام، إن كنت فرداً في شركة محددة فألقي عاتق الإستضافات عليهم، فلارافيل يضم كل التقنيات التي تريد بشكل مجاني و مفتوح المصدر لصناعة أي برمجية مهما كان نوعها دون الحاجة للدفع مقابل أي خدمات جانبية.
معمارية الـ MVC كذلك لا تقل قوة و إحترافية، فهي تقوم بتقسيم مشروعك البرمجي لـ 3 أجزاء : الـ Model الذي يتحكم في قواعد البيانات و تهيئتها و بنائها و ملأ البيانات، كما يمكنه إستخدام تقنية الـ ORM التي تساعدك على التحكم أكثر في محتوى قواعد البيانات و المدخلات بطريقة أكثر إحترافية، يأتي بعدها جزء الـ View الذي يمكنك من بناء واجهة إحترافية بإستخدام قوالب الـ Blade، في الـ View نهتم فقط بالـ Front End و كيف ستبدو صفحات الويب، ثم الجزء الأخير Controller الذي يربط بين الجزئين السابقين عبر مجموعة من الأوامر و التقنيات و الـ Methods التي تجعل من الربط بين الواجهة و قواعد البيانات محمية جيداً ، ذو هيكلة أفضل، و أسهل بالطبع.
كل هذا يمكنك أن تجده تقريبا في أي إطار آخر، لكن Laravel يضم هذه التقنيات بطريقة سهلة و مفهومة و واضحة الإستخدام على عكس إطارات أخرى، و هو ما جعله أشهر إطار Php / MVC حاليا.
تقنية الـ MVC و التقسيم الذي يأتي به Laravel يجعل من السهل التحكم في موارد المشروع، إذ يمكن مثلا لمطور Front End أن يشتغل على جانب الـ View مباشرة دون الحاجة للإطلاع على ما يوجد على مستوى الـ Back End و الأمر سيان بالنسبة لمطور Back End فهمه الوحيد صناعة الـ Controllers، توجيه الصفحات عبر الـ Routes و توفير البيانات التي سيتم جلبها فقط، و دع عاتق تزيينها على مطور الـ Front End.
تقنيا إن كنت تستخدم تقنيات أخرى غير Laravel فسيتوجب عليك إدراج خدمات خارجية (API's)، لكن إن كنت تستخدم الـ Laravel ستجد ان هذه التقنيات موجودة في الأصل و مدرجة و يكفي إستدعائها من أجل العمل بها.
أيضا، أثناء تعاملك مع Laravel ستتعامل مع ما يسمى بالـ Middlewear، و هي برمجيات وسيطة يتم تنفيذها أثناء تنفيذ كود برمجي معين، على سبيل المثال في الـ Routing قد ينقر المستخدم على صفحة Profile من أجل الإطلاع على بياناته، لكن قبلا عليك التأكد إن كان المستخدم مسجلا ام لا، هنا سأستخدم Middlewear يحمل إسم Authentication موجود مسبقا في Laravel، يوجد الكثير من الـ Middlewears الكثيرة في لارافيل، و يمكن تطوير خاصتك كذلك.
خلاصة القول، أن لارافيل يأتي مجهزا بأطنان من الإضافات الجانبية التي تجعله يسهل عليك الكثير من الأعمال البرمجية و المهمات الصعبة أحيانا.
كل هذه التقنيات عليك توظيفها أثناء إستخدامك لإطار لارافيل، بشكل عام قبل إستخدام إطار لارافيل عليك ان تجيد التعامل مع لغة البرمجة Php بشكل إحترافي ( ليس فقط الإتصال مع قواعد البيانات بل فهم الكلاسات و التعمق أكثر في الـ Php ) ثم توجب عليك إيجاد تقنيات الـ OOP ( خصوصا التقنيات الأربع : Inheritance, Abstraction, Encapsulation, Polymorphisme )، عليك إيجاد التعامل مع قواعد البيانات و هيكلتها ( يمكنك إستخدام في لارافيل خاصية DB::Select من أجل تنفيذ Query مباشرة )، ثم عليك إيجاد التعامل مع الكونسول او سطر الأوامر ( يستخدم Laravel الـ Artisan من أجل تنفيذ مجموعة من الأوامر مثل صناعة الـ Models , الـ Controllers، القيام بعمليات الـ Migrations ...).
لارافيل رغم سهولته فإنه يتطلب حصيلة من المعارف البرمجية السابقة، و أفضل طريقة لتوظيفها إستخدام إطار لارافيل الذي يجمع بين كل هذه التقنيات في منصة واحدة.
لحسن الحظ ان إطار Laravel خصب، و يمكنه إدراج أي تقنيات برمجية أخرى ( خاصة بالويب طبعا ) في المنصة و العمل بها، من حيث الإطارات المعقدة الى الإطارات البسيطة.
يمكن إدراج شتى البرمجيات في مشروعك البرمجي لارافيل، فقط احرص على ان يكون المشروع في الأخير متكاملا لتجنب أي عرقلات بين المنصات او ثقل في إستخدام المنصة التي قمت ببنائها.
لكن هذا لا يعني إستخدامه دائما لنفس الغرض، يمكننا تسمية لارافيل بورقة الـ " جوكر " هنا، و إستخدامه حين تنفذ منا جميع الإختيارات للإطارات او المنصات التي ستساعدنا في تجسيد تلك الفكرة و تحقيقها، إن لم تجد الإطار المناسب، فلارافيل حتما سيكون هو الإطار المناسب لعملك.
لإطار العمل لارافيل (Laravel) أيضا جانب مدفوع يتعلق بالإستضافة، لكن هذا الأمر قائم بذاته في جميع التقنيات و ليس فقط إطار العمل لارافيل، فصناعتك لأي موقع على أي منصة (Wordpress, Rails, Joomla, Native Php ...) سيتطلب منك في الأخير الدفع للحصول على إستضافة من أجل رفع و إستضافة موقعك، لكن مشكلة Laravel أو الإطارات الكبرى بشكل عام مثل Django و Rails أنها تحتاج الى منصات مخصصة مثل إستضافة Heroku او Degintal Oceans و ليس أي إستضافة.
لكن بشكل عام، إن كنت فرداً في شركة محددة فألقي عاتق الإستضافات عليهم، فلارافيل يضم كل التقنيات التي تريد بشكل مجاني و مفتوح المصدر لصناعة أي برمجية مهما كان نوعها دون الحاجة للدفع مقابل أي خدمات جانبية.
2 - أشهر إطار حاليا مبني على الـ Php و MVC :
الـ Php لغة برمجة قوية حين يتعلق الأمر بتطوير مواقع و تطبيقات الويب، قد لا يتفق الكل على هذه الفكرة بإعتبار الـ Php كلغة برمجة أصلية او Native غير قادرة على تطوير تطبيقات متكاملة من حيث الحماية، لكن بإستخدام الـ Php كركيزة لبناء إطار عمل مع تضمين معمارية الـ MVC القائمة على فصل أي مشروع برمجي الى 3 أقسام من أجل سهولة التطوير و الحماية، فإن النتيجة ستكون إطارات عديدة و كثيرة، أشهرها Laravel.كل هذا يمكنك أن تجده تقريبا في أي إطار آخر، لكن Laravel يضم هذه التقنيات بطريقة سهلة و مفهومة و واضحة الإستخدام على عكس إطارات أخرى، و هو ما جعله أشهر إطار Php / MVC حاليا.
3 - سهولة الإستخدام و التقسيم المثالي :
مشروع برمجي كامل عبارة عن تطبيق ويب بإستخدام إطار Laravel يعني ان العديد من المطورين سيستخدمون نفس المشروع و كل مبرمج سيحظى بجزء من تطبيق الويب ليعمل عليه و يطوره بشكل خاص، بالنسبة لتشارك المشروع البرمجي فنسستخدم منصة Git بالطبع من أجل توزيع المشروع و مستجداته على جميع المستخدمين، لكن العمل على مشروع غير مهيكل و مقسم سيؤدي بنا في الأخير الى فشله.تقنية الـ MVC و التقسيم الذي يأتي به Laravel يجعل من السهل التحكم في موارد المشروع، إذ يمكن مثلا لمطور Front End أن يشتغل على جانب الـ View مباشرة دون الحاجة للإطلاع على ما يوجد على مستوى الـ Back End و الأمر سيان بالنسبة لمطور Back End فهمه الوحيد صناعة الـ Controllers، توجيه الصفحات عبر الـ Routes و توفير البيانات التي سيتم جلبها فقط، و دع عاتق تزيينها على مطور الـ Front End.
4 - العديد من البرمجيات الجانبية المدرجة ... حقا العديد :
حين تطور الأساسيات التي تحتاجه في أي مشروع برمجي، ستود إضافة بعض التقنيات الجانبية التي تعزز وجود برمجيتك، على سبيل المثال إضافة خاصية تفعيل الحساب عبر البريد الإلكتروني، او إضافة الإشعارات و الـ Notifications لبرمجيتك ....تقنيا إن كنت تستخدم تقنيات أخرى غير Laravel فسيتوجب عليك إدراج خدمات خارجية (API's)، لكن إن كنت تستخدم الـ Laravel ستجد ان هذه التقنيات موجودة في الأصل و مدرجة و يكفي إستدعائها من أجل العمل بها.
أيضا، أثناء تعاملك مع Laravel ستتعامل مع ما يسمى بالـ Middlewear، و هي برمجيات وسيطة يتم تنفيذها أثناء تنفيذ كود برمجي معين، على سبيل المثال في الـ Routing قد ينقر المستخدم على صفحة Profile من أجل الإطلاع على بياناته، لكن قبلا عليك التأكد إن كان المستخدم مسجلا ام لا، هنا سأستخدم Middlewear يحمل إسم Authentication موجود مسبقا في Laravel، يوجد الكثير من الـ Middlewears الكثيرة في لارافيل، و يمكن تطوير خاصتك كذلك.
خلاصة القول، أن لارافيل يأتي مجهزا بأطنان من الإضافات الجانبية التي تجعله يسهل عليك الكثير من الأعمال البرمجية و المهمات الصعبة أحيانا.
5 - يجمع بين تقنيات عديدة مختلفة تجسد المبرمج :
إن سألتك : ما الذي يجعل من المبرمج مبرمج حقا؟ قد تكون الإجابات كالتالي : عليه أن يجيد كتابة كود برمجي صحيح، عليه ان يفهم المغزى من الكود، عليه ان يدرك تقنيات مثل OOP او Design Patterns، عليه ان يجيد حل المشاكل ....كل هذه التقنيات عليك توظيفها أثناء إستخدامك لإطار لارافيل، بشكل عام قبل إستخدام إطار لارافيل عليك ان تجيد التعامل مع لغة البرمجة Php بشكل إحترافي ( ليس فقط الإتصال مع قواعد البيانات بل فهم الكلاسات و التعمق أكثر في الـ Php ) ثم توجب عليك إيجاد تقنيات الـ OOP ( خصوصا التقنيات الأربع : Inheritance, Abstraction, Encapsulation, Polymorphisme )، عليك إيجاد التعامل مع قواعد البيانات و هيكلتها ( يمكنك إستخدام في لارافيل خاصية DB::Select من أجل تنفيذ Query مباشرة )، ثم عليك إيجاد التعامل مع الكونسول او سطر الأوامر ( يستخدم Laravel الـ Artisan من أجل تنفيذ مجموعة من الأوامر مثل صناعة الـ Models , الـ Controllers، القيام بعمليات الـ Migrations ...).
لارافيل رغم سهولته فإنه يتطلب حصيلة من المعارف البرمجية السابقة، و أفضل طريقة لتوظيفها إستخدام إطار لارافيل الذي يجمع بين كل هذه التقنيات في منصة واحدة.
6 - سهولة دمج أي تقنيات أخرى مع لارافيل :
نرى اليوم العديد من الإطارات الخاصة بالجافاسكربت التي تسهل علينا أيضا تطوير واجهات ويب إحترافية، مثلا الـ Vuejs، ماذا لو أردت إدراج هذه التقنية في لارافيل و العمل بها في مشروع برمجي كبير يضم كلا من Laravel و Vuejs ؟لحسن الحظ ان إطار Laravel خصب، و يمكنه إدراج أي تقنيات برمجية أخرى ( خاصة بالويب طبعا ) في المنصة و العمل بها، من حيث الإطارات المعقدة الى الإطارات البسيطة.
يمكن إدراج شتى البرمجيات في مشروعك البرمجي لارافيل، فقط احرص على ان يكون المشروع في الأخير متكاملا لتجنب أي عرقلات بين المنصات او ثقل في إستخدام المنصة التي قمت ببنائها.
7 - يمكنك صناعة أي تطبيق ويب من خلاله :
ادعوني بالأحمق، لكن لما لا نقوم بتطوير أي فكرة موقع تخطر ببالنا بإستخدام لارافيل ؟ أشاطرك الرأي ان بعض المشاريع لها إطارات مخصصة ( مثلا مواقع الـ Ecommerce لها منصات مثل Magento او Wordpress/Woocommerce ) لكن لارافيل بإمكانه كذلك تطوير هذا الموقع، في الحقيقة لارافيل يمكنه تطوير أي موقع او تطبيق ويب من الصفر و حتى النهاية بدون مشاكل و بإحترافية كاملة، لديك فكرة موقع إجتماعي ؟ مدونة ؟ منصة تدوين بكاملها ؟ او أي فكرة مشروع ويب، اللارافيل قادر على تحقيق فكرتك و صناعتها.لكن هذا لا يعني إستخدامه دائما لنفس الغرض، يمكننا تسمية لارافيل بورقة الـ " جوكر " هنا، و إستخدامه حين تنفذ منا جميع الإختيارات للإطارات او المنصات التي ستساعدنا في تجسيد تلك الفكرة و تحقيقها، إن لم تجد الإطار المناسب، فلارافيل حتما سيكون هو الإطار المناسب لعملك.