وحدات تحكم CodeIgniter، وتوجيه العروض: تعلم باستخدام تطبيق المثال
في هذا البرنامج التعليمي، سوف تتعلم المواضيع التالية.
- التوجيه – التوجيه مسؤول عن الاستجابة لطلبات URL. يطابق التوجيه عنوان URL للمسارات المحددة مسبقًا. إذا لم يتم العثور على تطابق للمسار، فسيقوم CodeIgniter بطرح استثناء للصفحة التي لم يتم العثور عليها.
- التحكم – الطرق مرتبطة بوحدات التحكم. تقوم وحدات التحكم بلصق النماذج ووجهات النظر معًا. طلب البيانات/منطق الأعمال من النموذج وإرجاع النتائج في العرض التقديمي. بمجرد مطابقة عنوان URL للمسار، تتم إعادة توجيهه إلى الوظيفة العامة لوحدة التحكم. تتفاعل هذه الوظيفة مع مصدر البيانات ومنطق الأعمال وتقوم بإرجاع العرض الذي يعرض النتائج.
- المشاهدات - الآراء هي المسؤولة عن العرض. عادةً ما يكون العرض عبارة عن مزيج من HTML وCSS و Javaالبرنامج النصي. هذا هو الجزء المسؤول عن عرض صفحة الويب للمستخدم. عادةً ما يتم استرداد البيانات المعروضة من قاعدة البيانات أو أي مصادر بيانات أخرى متاحة.
كيفية إنشاء مشروع CodeIgniter جديد
سنستخدم Composer لإنشاء مشروع جديد. سأستخدم خادم PHP المدمج، لذا ليس من الضروري أن يكون لديك برامج إضافية مثل Apache. في هذا البرنامج التعليمي، نحن نستخدم Windows نظام التشغيل. لذلك، قمنا بإنشاء مجلد Sites على محرك الأقراص C. يمكنك استخدام أي دليل مناسب لك.
افتح سطر الأوامر/المحطة الطرفية وقم بتشغيل الأمر التالي
cd C:\Sites
سنقوم الآن بإنشاء مشروع CodeIgniter باستخدام Composer. قم بتشغيل الأمر التالي
composer create-project CodeIgniter/framework ci-app
هنا،
- يقوم الأمر أعلاه بإنشاء إصدار جديد لمشروع CodeIgniter 3 باستخدام أحدث إصدار ثابت، أي 3.1.9 في دليل ci-app.
عندما يكتمل تشغيل الأمر أعلاه، يجب أن تكون قادرًا على الحصول على نتائج مشابهة لما يلي في المحطة الطرفية
قم بتشغيل الأمر التالي للانتقال إلى دليل المشروع الذي تم إنشاؤه حديثًا ci-app
cd ci-app
لنبدأ الآن خادم الويب المدمج PHP
php -S localhost:3000
هنا،
- يعمل الأمر أعلاه على تشغيل خادم PHP المدمج على المنفذ 3000.
افتح متصفح الويب واستعرض عنوان URL التالي: http://localhost:3000/
سوف تحصل على الصفحة التالية
إذا كان بإمكانك رؤية الصفحة أعلاه، فتهانينا، لقد قمت بالتثبيت بنجاح كود إغنيتر.
كما يمكنك القراءة من صفحة الويب أعلاه، يتم عرض الصفحة أعلاه بواسطة العرض الموجود في application/views/welcome_message.php ويوجد المتحكم المسؤول في application/controllers/Welcome.php
توجيه CodeIgniter
في الوقت الحالي، يحتوي تطبيقنا على عنوان URL واحد فقط وهو الصفحة الرئيسية. في هذا القسم، سوف نقوم بتخصيص القسم الرئيسي. سنقوم بإنشاء بعض عناوين URL الجديدة التي ستستجيب للطلبات المختلفة.
لنبدأ بمسار الصفحة الرئيسية
افتح ملف المسارات كما هو موضح بالمسار أدناه
application/config/routes.php
يجب أن تكون قادرًا على رؤية المحتوى التالي
$route['default_controller'] = 'welcome'; $route['404_override'] = ''; $route['translate_uri_dashes'] = FALSE;
هنا،
- $route['default_controller'] = 'مرحبًا'; يحدد وحدة التحكم الافتراضية التي تستجيب لطلبات URI
- $route['404_override'] = "; يتيح لك هذا المسار تحديد مسار مخصص لأخطاء 404. يحدث خطأ 404 عندما لا يتم العثور على الصفحة. يحتوي CodeIgniter على معالج افتراضي للخطأ ولكن يمكنك تحديد المعالج الخاص بك إذا كنت ترغب في ذلك.
- $route['translate_uri_dashes'] = FALSE; يتيح لك هذا الخيار ترجمة الشرطات إلى الشرطة السفلية. سنتحدث عن هذا الخيار عندما ننظر إلى كيفية عمل المسارات في CodeIgniter.
دعونا الآن نلقي نظرة على طريقة التحكم المسؤولة عن عرض الصفحة الرئيسية التي رأيناها عندما فتحنا عنوان URL http://localhost:3000/ في متصفح الويب.
افتح الملف التالي
application/controllers/Welcome.php
يجب أن تكون قادرًا على رؤية الكود التالي
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Welcome extends CI_Controller {
public function index()
{
$this->load->view('welcome_message');
}
}
هنا،
- تم تعريفه ('BASEPATH') أو الخروج ('لا يُسمح بالوصول المباشر إلى البرنامج النصي')؛ يحمي من الوصول المباشر إلى فئة وحدة التحكم دون المرور عبر ملف Index.php. تذكر، في نموذج MVC، تحتوي جميع الطلبات على نقطة إدخال واحدة، وبالنسبة لـ CodeIgniter، فإن ملف Index.php الخاص بها. يحظر هذا الرمز جميع الطلبات التي لا تأتي من خلال ملف Index.php
- فئة الترحيب تمتد CI_Controller {...} تحدد فئة الترحيب التي توسع الفئة الأصلية CI_Controller
- يحدد فهرس الوظيفة العامة () وظيفة عامة يتم استدعاؤها افتراضيًا عند فتح الصفحة الرئيسية
- $this->load->view('welcome_message'); يقوم هذا السطر بتحميل العرض Welcome_message. يوجد الملف Welcome_message في الدليل application/views/welcome_message.php
حتى الآن، استكشفنا فقط ما يأتي خارج الصندوق مع CodeIgniter، فلنحاول الآن إجراء بعض التغييرات. سنقوم بإنشاء صفحتنا الرئيسية واستبدال الصفحة الافتراضية
قم بإنشاء ملف جديد في application/views/home.php
أضف الكود التالي إلى home.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Hello CodeIgniter!</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css">
<script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script>
</head>
<body>
<section class="section">
<div class="container">
<h1 class="title">
CodeIgniter Hello World
</h1>
</div>
</section>
</body>
</html>
هنا،
يقوم كود HTML أعلاه بتحميل إطار عمل Burma SSS والخط من شبكة CDN لإنشاء مستند HTML أساسي جدًا. إنه يطبق قاعدة CSS بسيطة جدًا من إطار بورما CSS.
افتح الرابط التالي في متصفحك: http://localhost:3000/
يجب أن تكون قادرًا على رؤية ما يلي
رائع، لقد نجحنا للتو في تعديل الصفحة الرئيسية. المضي قدما، دعونا نحدد طريقنا. لنفترض أن تطبيقنا يحتاج أيضًا إلى أن يكون قادرًا على عرض صفحة "نبذة عنا".
أنشئ طريقًا
افتح ملف المسارات application/config.routes.php
أضف المسار التالي
$route['about-us'] = 'welcome/about_us';
هنا،
- عندما يقوم زائر بزيارة عنوان URL /about-us، فإننا نطلب من CodeIgniter البحث عن وحدة تحكم مرحبًا وتنفيذ الطريقة about_us.
إنشاء وحدة تحكم
دعونا الآن نحدد طريقة التحكم عنا
افتح التطبيق/وحدات التحكم/Welcome.php
أضف الطريقة التالية
public function about_us(){
$this->load->view('about_us');
}
هنا،
- يحدد الكود أعلاه وظيفة about_us ويقوم بتحميل طريقة عرض about_us.
إنشاء طريقة عرض
لنقم الآن بإنشاء العرض الذي أشرنا إليه للتو في القسم أعلاه
قم بإنشاء ملف جديد about_us.php في application/views/about_us.php
أضف الكود التالي
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>About CodeIgniter!</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css">
<script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script>
</head>
<body>
<section class="section">
<div class="container">
<h1 class="title">
About us yap...
</h1>
</div>
</section>
</body>
</html>
نحن على استعداد للذهاب، افتح عنوان URL التالي في متصفح الويب الخاص بك: http://localhost:3000/index.php/about-us
سوف ترى الصفحة التالية
إذا تمكنت من رؤية الصفحة أعلاه، فتهانينا، لقد نجحت في إنشاء تطبيق بسيط في CodeIgniter.
ملخص
في هذا البرنامج التعليمي، قمنا بتغطية ثلاثة (3) مكونات رئيسية تشكل تطبيق CodeIgniter. لقد نظرنا إلى المسارات وكيفية تحديدها ووحدات التحكم وكيفية إنشاء طرق تستجيب لطلبات المسار وإنشاء طرق عرض بسيطة يتم إرجاعها إلى المستخدمين عندما يطلبون موردًا.




