إنشاء وتشغيل مشروع CodeIgniter
ما هو CodeIgniter؟
CodeIgniter هو إطار عمل PHP خفيف الوزن، يُستخدم لتطوير تطبيقات الويب بسرعة وكفاءة. يتبع نمط تصميم MVC (Model-View-Controller)، ويوفر مجموعة غنية من الميزات والأدوات، مما يمكّن المطورين من تطوير تطبيقات ويب عالية الجودة بسرعة. يتميز CodeIgniter ببساطته، أدائه العالي وسهولة تعلمه، وهو الخيار المفضل لدى العديد من المطورين.
الميزات والفوائد الرئيسية لـ CodeIgniter
- خفة الوزن: نظام CodeIgniter الأساسي صغير جدًا، يحتوي فقط على المكونات الضرورية، وسرعة التحميل فيه عالية.
- الأداء العالي: مشهور بأدائه العالي وسرعته، ويمكنه التعامل مع الطلبات المتزامنة بكفاءة.
- سهولة التعلم: يوفر API بسيطًا وسهل الاستخدام وموثوقًا غنيًا، مما يمكن المطورين من البدء بسرعة.
- المرونة: يتيح للمطورين اختيار واستخدام مكتبات وإضافات الطرف الثالث بحرية، مما يسهل التوسيع والتخصيص.
- دعم مجتمعي قوي: يمتلك مجتمعًا نشطًا من المطورين والإضافات من الطرف الثالث.
يمكن أن يساعد CodeIgniter المطورين في بناء تطبيقات ويب عالية الأداء وعالية الجودة بسرعة، وهو مناسب للمشاريع من جميع الأحجام.
إنشاء وتشغيل مشروع CodeIgniter باستخدام ServBay
في هذه المقالة، سنستخدم البيئة التي توفرها ServBay لإنشاء وتشغيل مشروع CodeIgniter. سنستفيد من ميزة "المضيف" الخاصة بـ ServBay لتكوين خادم الويب، وتحقيق الوصول إلى المشروع من خلال إعدادات بسيطة.
ملاحظة: إذا كنت قد استخدمت NGINX أو Apache من قبل
بشكل افتراضي، يستخدم ServBay Caddy كخادم ويب. للمستخدمين الذين يهاجرون من NGINX وApache إلى ServBay، هناك بعض التغييرات التي يجب الانتباه إليها:
تكوين Caddy
يحتوي ServBay أصلاً على Caddy، وتم تحسين التكوين الافتراضي وضبطه بشكل جيد. يحتاج المطورون فقط إلى إدارة الموقع باستخدام ميزة "المضيف" الخاصة بـ ServBay دون الحاجة إلى تعديل ملفات تكوين Caddy يدويًا.
قواعد إعادة الكتابة و.htaccess
في NGINX وApache، عادةً ما يحتاج المطورون إلى كتابة قواعد إعادة الكتابة وملفات .htaccess يدويًا لمعالجة إعادة كتابة URL والتكوينات الأخرى. ومع ذلك، يحتوي ServBay على قواعد Caddy المهيأة مسبقًا، لذا ما لم تكن هناك حاجة مخصصة، فلا يحتاج المطورون إلى كتابة هذه القواعد بأنفسهم.
معرفة المزيد
لمزيد من المعلومات، يُرجى الرجوع إلى Rewrite وhtaccess، كيفية نقل موقع Apache إلى ServBay، كيفية نقل موقع NGINX إلى ServBay.
إنشاء مشروع CodeIgniter
TIP
يقترح ServBay على المطورين وضع الموقع في دليل /Applications/ServBay/www
لتسهيل الإدارة.
تثبيت Composer
يأتي ServBay مزودًا بـ Composer ولا يحتاج إلى تثبيت منفصل.
إنشاء مشروع CodeIgniter
استخدم Composer لإنشاء مشروع CodeIgniter جديد:
bashcd /Applications/ServBay/www mkdir servbay-codeigniter-app cd servbay-codeigniter-app composer create-project codeigniter4/appstarter .
1
2
3
4الدخول إلى دليل المشروع
ادخل إلى دليل مشروع CodeIgniter الذي تم إنشاؤه للتو:
bashcd /Applications/ServBay/www/servbay-codeigniter-app
1
إعداد التكوينات الأولية
تكوين اتصال قاعدة البيانات
قم بتكوين معلومات اتصال قاعدة البيانات في ملف
app/Config/Database.php
:phppublic $default = [ 'DSN' => '', 'hostname' => '127.0.0.1', 'username' => 'root', 'password' => 'password', 'database' => 'servbay_codeigniter_app', 'DBDriver' => 'MySQLi', 'DBPrefix' => '', 'pConnect' => false, 'DBDebug' => (ENVIRONMENT !== 'production'), 'charset' => 'utf8mb4', 'DBCollat' => 'utf8mb4_general_ci', 'swapPre' => '', 'encrypt' => false, 'compress' => false, 'strictOn' => false, 'failover' => [], 'port' => 3306, ];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
تكوين خادم الويب
استخدام ميزة "المضيف" الخاصة بـ ServBay للوصول إلى مشروع CodeIgniter. في إعدادات "المضيف" على ServBay، أضف مضيفًا جديدًا:
- الاسم:
My First CodeIgniter Dev Site
- النطاق:
servbay-codeigniter-test.local
- نوع الموقع:
PHP
- إصدار PHP: اختر
8.3
- دليل جذر الموقع:
/Applications/ServBay/www/servbay-codeigniter-app/public
لتفاصيل خطوات الإعداد، يُرجى الرجوع إلى إضافة أول موقع ويب.
إضافة رمز مثال
أضف الكود التالي في ملف app/Controllers/Home.php
:
namespace App\Controllers;
use CodeIgniter\Controller;
class Home extends Controller
{
public function index()
{
return 'Hello ServBay!';
}
public function memcached()
{
$cache = \Config\Services::cache();
$cache->save('key', 'Hello Memcached!', 60);
$value = $cache->get('key');
return $value;
}
public function redis()
{
$redis = \Config\Services::cache();
$redis->set('key', 'Hello Redis!');
$value = $redis->get('key');
return $value;
}
public function mysqlAdd()
{
$db = \Config\Database::connect();
$db->table('users')->insert([
'name' => 'ServBay',
'email' => '[email protected]',
]);
return 'User added';
}
public function mysql()
{
$db = \Config\Database::connect();
$users = $db->table('users')->get()->getResult();
return json_encode($users);
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
الوصول إلى الموقع
افتح المتصفح وقم بزيارة URL التالية:
https://servbay-codeigniter-test.local
: سترى أن الصفحة تعرضHello ServBay!
.
مثال على قاعدة بيانات NoSQL
مثال Memcached
تثبيت إضافة Memcached
في ServBay، تم تثبيت إضافة Memcached مسبقًا ولا تحتاج إلى تثبيت إضافي.
تكوين Memcached
قم بتكوين معلومات اتصال Memcached في ملف
app/Config/Cache.php
:phppublic $memcached = [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 1, ];
1
2
3
4
5استخدام Memcached
استخدم التخزين المؤقت في وحدة التحكم:
phppublic function memcached() { $cache = \Config\Services::cache(); $cache->save('key', 'Hello Memcached!', 60); $value = $cache->get('key'); return $value; }
1
2
3
4
5
6
7أضف المسار في ملف
app/Config/Routes.php
:php$routes->get('/memcached', 'Home::memcached');
1افتح المتصفح وقم بزيارة: https://servbay-codeigniter-test.local/memcached
مثال Redis
تثبيت إضافة Redis
في ServBay، تم تثبيت إضافة Redis مسبقًا ولا تحتاج إلى تثبيت إضافي.
تكوين Redis
قم بتكوين معلومات اتصال Redis في ملف
app/Config/Cache.php
:phppublic string $handler = 'redis'; public $default = [ 'host' => '127.0.0.1', 'password' => null, 'port' => 6379, 'timeout' => 0, 'database' => 0, ];
1
2
3
4
5
6
7
8
9استخدام Redis
استخدم التخزين المؤقت في وحدة التحكم:
phppublic function redis() { $redis = \Config\Services::cache(); $redis->save('key', 'Hello Redis!'); $value = $redis->get('key'); return $value; }
1
2
3
4
5
6
7أضف المسار في ملف
app/Config/Routes.php
:php$routes->get('/redis', 'Home::redis');
1افتح المتصفح وقم بزيارة: https://servbay-codeigniter-test.local/redis
مثال على قاعدة البيانات العلائقية
إنشاء بنية قاعدة البيانات وملف الهجرة
إنشاء ملف الهجرة
استخدم أداة CLI الخاصة بـ CodeIgniter لإنشاء ملف هجرة:
bashphp spark make:migration create_users_table
1تحرير ملف الهجرة
في دليل
app/Database/Migrations
، ابحث عن ملف الهجرة الذي أنشئته حديثًا وقم بتحريره لتعريف بنية الجدول:phpuse CodeIgniter\Database\RawSql; public function up() { $this->forge->addField([ 'id' => [ 'type' => 'INT', 'constraint' => 5, 'unsigned' => true, 'auto_increment' => true, ], 'name' => [ 'type' => 'VARCHAR', 'constraint' => '100', ], 'email' => [ 'type' => 'VARCHAR', 'constraint' => '100', 'unique' => true, ], 'created_at' => [ 'type' => 'TIMESTAMP', 'default' => new RawSql('CURRENT_TIMESTAMP'), ], 'updated_at' => [ 'type' => 'TIMESTAMP', 'default' => new RawSql('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'), ], ]); $this->forge->addKey('id', true); $this->forge->createTable('users'); }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32تشغيل الهجرة
استخدم أمر الهجرة الخاص بـ CodeIgniter لتشغيل الهجرة وإنشاء جدول قاعدة البيانات:
bashphp spark migrate
1
مثال MySQL
تكوين MySQL
قم بتكوين معلومات اتصال MySQL في ملف
app/Config/Database.php
:phppublic $default = [ 'DSN' => '', 'hostname' => '127.0.0.1', 'username' => 'root', 'password' => 'password', 'database' => 'servbay_codeigniter_app', 'DBDriver' => 'MySQLi', 'DBPrefix' => '', 'pConnect' => false, 'DBDebug' => (ENVIRONMENT !== 'production'), 'charset' => 'utf8', 'DBCollat' => 'utf8_general_ci', 'swapPre' => '', 'encrypt' => false, 'compress' => false, 'strictOn' => false, 'failover' => [], 'port' => 3306, ];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19إضافة المسار
أضف المسارات التالية في ملف
app/Config/Routes.php
:php$routes->get('/mysql-add', 'Home::mysqlAdd'); $routes->get('/mysql', 'Home::mysql');
1
2إدخال بيانات المستخدم
أضف بيانات المستخدم في وحدة التحكم:
phppublic function mysqlAdd() { $db = \Config\Database::connect(); $db->table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'User added'; }
1
2
3
4
5
6
7
8
9استخدام MySQL
استدعي قاعدة البيانات في وحدة التحكم:
phppublic function mysql() { $db = \Config\Database::connect(); $users = $db->table('users')->get()->getResult(); return json_encode($users); }
1
2
3
4
5
6افتح المتصفح وقم بزيارة:
https://servbay-codeigniter-test.local/mysql-add
وhttps://servbay-codeigniter-test.local/mysql
مثال PostgreSQL
تكوين PostgreSQL
قم بتكوين معلومات اتصال PostgreSQL في ملف
app/Config/Database.php
:phppublic $default = [ 'DSN' => '', 'hostname' => '127.0.0.1', 'username' => 'root', 'password' => 'password', 'database' => 'servbay_codeigniter_app', 'DBDriver' => 'Postgre', 'DBPrefix' => '', 'pConnect' => false, 'DBDebug' => (ENVIRONMENT !== 'production'), 'charset' => 'utf8', 'DBCollat' => 'utf8_general_ci', 'swapPre' => '', 'encrypt' => false, 'compress' => false, 'strictOn' => false, 'failover' => [], 'port' => 5432, ];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19إنشاء ملف الهجرة
استخدم الأمر التالي لإنشاء ملف الهجرة:
bashphp spark make:migration create_users_table
1تحرير ملف الهجرة
phpuse CodeIgniter\Database\RawSql; public function up() { $this->forge->addField([ 'id' => [ 'type' => 'INT', 'constraint' => 5, 'unsigned' => true, 'auto_increment' => true, ], 'name' => [ 'type' => 'VARCHAR', 'constraint' => '100', ], 'email' => [ 'type' => 'VARCHAR', 'constraint' => '100', 'unique' => true, ], 'created_at' => [ 'type' => 'TIMESTAMP', 'default' => new RawSql('NOW()'), ], 'updated_at' => [ 'type' => 'TIMESTAMP', 'default' => new RawSql('NOW()'), ], ]); $this->forge->addKey('id', true); $this->forge->createTable('users'); }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32تشغيل الهجرة
استخدم الأمر التالي لتشغيل الهجرة وإنشاء جدول قاعدة البيانات:
bashphp spark migrate
1إضافة المسار
أضف المسارات التالية في ملف
app/Config/Routes.php
:php$routes->get('/pgsql-add', 'Home::pgsqlAdd'); $routes->get('/pgsql', 'Home::pgsql');
1
2إدخال بيانات المستخدم
أضف بيانات المستخدم في وحدة التحكم:
phppublic function pgsqlAdd() { $db = \Config\Database::connect(); $db->table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'User added'; }
1
2
3
4
5
6
7
8
9استخدام PostgreSQL
استدعي قاعدة البيانات في وحدة التحكم:
phppublic function pgsql() { $db = \Config\Database::connect(); $users = $db->table('users')->get()->getResult(); return json_encode($users); }
1
2
3
4
5
6افتح المتصفح وقم بزيارة:
https://servbay-codeigniter-test.local/pgsql-add
وhttps://servbay-codeigniter-test.local/pgsql
من خلال الخطوات السابقة، تمت بنجاح إنشاء وتشغيل مشروع CodeIgniter واستخدام خدمات ServBay لإدارة والوصول إلى مشروعك، بالإضافة إلى الاتصال بأنواع مختلفة من قاعدة البيانات واستدعاء البيانات منها. نأمل أن تساعدك هذه المقالة على البدء السريع مع CodeIgniter وتطبيقه في مشاريعك الخاصة.