إنشاء وتشغيل مشروع FuelPHP
ما هو FuelPHP؟
FuelPHP هو إطار عمل PHP مرن ومركب، مصمم لتطوير تطبيقات الويب الحديثة. يتبع نمط التصميم HMVC (متحكم العرض الطراز الهرمي)، ويوفر مجموعة كبيرة من الميزات والأدوات التي تُمكّن المطورين من بناء تطبيقات ويب عالية الجودة بسرعة. يشتهر FuelPHP بمرونته، وأدائه العالي، وسهولة تمديده، وهو إطار العمل المفضل لدى العديد من المطورين.
الميزات والفوائد الرئيسية لـ FuelPHP
- بنية HMVC: يدعم نمط التصميم MVC الهرمي، مما يسهل إعادة استخدام الكود والتطوير المركب.
- أداء عالي: يُعرف FuelPHP بأدائه العالي وسرعته الفائقة في معالجة الطلبات المتزامنة العالية.
- سهولة التمديد: يوفر آليات تمديد متعددة، مما يسهل على المطورين إضافة وظائف مخصصة بسهولة.
- أمان: يتضمن ميزات أمان متعددة مثل التحقق من المدخلات، تصفية الإخراج، وحماية CSRF.
- دعم مجتمعي قوي: يحتوي على مجتمع مطورين نشط وملحقات طرف ثالث غنية.
يمكن لـ FuelPHP مساعدة المطورين في بناء تطبيقات ويب عالية الأداء والجودة بسرعة، مما يجعله مناسباً لمشاريع بأحجام مختلفة.
استخدام ServBay لإنشاء وتشغيل مشروع FuelPHP
في هذه المقالة، سنستخدم بيئة PHP المقدمة من ServBay لإنشاء وتشغيل مشروع FuelPHP. سنستخدم ميزة "المضيف" في 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.
إنشاء مشروع FuelPHP
TIP
يُوصي ServBay بأن يضع المطورون مواقعهم في دليل /Applications/ServBay/www
لتسهيل الإدارة.
تثبيت Composer
يأتي ServBay مع Composer مثبتاً مسبقًا، لذا لا حاجة لتثبيته بشكل منفصل.
إنشاء مشروع FuelPHP
استخدم Composer لإنشاء مشروع جديد لـ FuelPHP:
bashcd /Applications/ServBay/www mkdir servbay-fuelphp-app cd servbay-fuelphp-app composer create-project fuel/fuel .
1
2
3
4الدخول إلى دليل المشروع
انتقل إلى دليل مشروع FuelPHP الذي تم إنشاؤه حديثًا:
bashcd /Applications/ServBay/www/servbay-fuelphp-app
1
إعداد التكوين
تكوين اتصال قاعدة البيانات
قم بتكوين معلومات اتصال قاعدة البيانات في ملف
fuel/app/config/development/db.php
:phpreturn [ 'default' => [ 'connection' => [ 'dsn' => 'mysql:host=localhost;dbname=fuel_dev', 'username' => 'root', 'password' => 'root', ], ], ];
1
2
3
4
5
6
7
8
9
تكوين خادم الويب
استخدم ميزة "المضيف" في ServBay للوصول إلى مشروع FuelPHP عبر خادم الويب. في إعدادات "المضيف" في ServBay، أضف مضيفًا جديدًا:
- الاسم:
My First FuelPHP Dev Site
- النطاق:
servbay-fuelphp-test.local
- نوع الموقع:
PHP
- إصدار PHP: اختر
8.3
- دليل الجذر للموقع:
/Applications/ServBay/www/servbay-fuelphp-app/public
لمزيد من التفاصيل حول كيفية إضافة مضيف جديد، يرجى مراجعة إضافة أول موقع ويب.
إضافة كود نموذجي
في ملف fuel/app/classes/controller/welcome.php
، قم بإضافة الكود التالي:
use Fuel\Core\Controller;
use Fuel\Core\Response;
use Fuel\Core\Cache;
class Controller_Welcome extends Controller
{
public function action_index()
{
return Response::forge('Hello ServBay!');
}
public function action_memcached()
{
Cache::set('key', 'Hello Memcached!', 60);
$value = Cache::get('key');
return Response::forge($value);
}
public function action_redis()
{
$redis = \Redis::instance();
$redis->set('key', 'Hello Redis!');
$value = $redis->get('key');
return Response::forge($value);
}
public function action_mysql_add()
{
\DB::insert('users')->set([
'name' => 'ServBay',
'email' => '[email protected]',
])->execute();
return Response::forge('User added');
}
public function action_mysql()
{
$users = \DB::select()->from('users')->execute()->as_array();
return Response::forge(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
الوصول إلى الموقع
افتح المتصفح وانتقل إلى URL التالي:
https://servbay-fuelphp-test.local
: ستشاهد صفحة تعرض الرسالةHello ServBay!
.
أمثلة على قواعد بيانات NoSQL
مثال Memcached
تثبيت امتداد Memcached
في ServBay، يتم تثبيت امتداد Memcached مسبقًا، ولا حاجة لتثبيت إضافي.
تكوين Memcached
قم بتكوين معلومات اتصال Memcached في ملف
fuel/app/config/cache.php
:phpreturn [ 'driver' => 'memcached', 'memcached' => [ 'cache_id' => 'fuel', 'servers' => [ 'default' => [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100, ], ], ], ];
1
2
3
4
5
6
7
8
9
10
11
12
13إضافة مسارات
أضف المسارات التالية في ملف
fuel/app/config/routes.php
:phpreturn array( 'memcached' => 'welcome/memcached', );
1
2
3استخدام Memcached
استخدم التخزين المؤقت في وحدة التحكم:
phppublic function action_memcached() { Cache::set('key', 'Hello Memcached!', 60); $value = Cache::get('key'); return Response::forge($value); }
1
2
3
4
5
6
7افتح المتصفح وزر: https://servbay-fuelphp-test.local/memcached
مثال Redis
تثبيت امتداد Redis
في ServBay، يتم تثبيت امتداد Redis مسبقًا، ولا حاجة لتثبيت إضافي.
تكوين Redis
قم بتكوين معلومات اتصال Redis في ملف
fuel/app/config/redis.php
:phpreturn [ 'driver' => 'redis', 'redis' => [ 'database' => 'default', ], ];
1
2
3
4
5
6إضافة مسارات
أضف المسارات التالية في ملف
fuel/app/config/routes.php
:phpreturn array( 'redis' => 'welcome/redis', );
1
2
3استخدام Redis
استخدم التخزين المؤقت في وحدة التحكم:
phppublic function action_redis() { $redis = \Redis::instance(); $redis->set('key', 'Hello Redis!'); $value = $redis->get('key'); return Response::forge($value); }
1
2
3
4
5
6
7
8افتح المتصفح وزر: https://servbay-fuelphp-test.local/redis
أمثلة على قواعد بيانات العلاقات
إنشاء بنية قاعدة بيانات وملفات الترحيل
إنشاء ملف الترحيل
استخدم أداة النفط من FuelPHP لإنشاء ملف الترحيل:
bashphp oil g migration create_users_table
1تحرير ملف الترحيل
في دليل
fuel/app/migrations
، حدد ملف الترحيل الجديد وقم بتحريره لتعريف بنية الجدول قاعدة البيانات:php<?php namespace Fuel\Migrations; use Fuel\Core\DBUtil; class Create_users_table { public function up() { DBUtil::create_table('users', [ 'id' => ['type' => 'int', 'constraint' => 11, 'auto_increment' => true], 'name' => ['type' => 'varchar', 'constraint' => 100], 'email' => ['type' => 'varchar', 'constraint' => 100, 'unique' => true], ], ['id']); } public function down() { DBUtil::drop_table('users'); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21تشغيل الترحيل
استخدم أداة النفط من FuelPHP لتشغيل الترحيل وإنشاء جدول قاعدة البيانات:
bashphp oil refine migrate
1
مثال MySQL
تكوين MySQL
قم بتكوين معلومات اتصال MySQL في ملف
fuel/app/config/development/db.php
:phpreturn [ 'default' => [ 'connection' => [ 'dsn' => 'mysql:host=localhost;dbname=fuel_dev', 'username' => 'root', 'password' => 'root', ], ], ];
1
2
3
4
5
6
7
8
9إدخال بيانات المستخدم
أدخل بيانات المستخدم في وحدة التحكم:
phppublic function action_mysql_add() { \DB::insert('users')->set([ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return Response::forge('User added'); }
1
2
3
4
5
6
7
8
9استخدام MySQL
استدعي قاعدة البيانات في وحدة التحكم:
phppublic function action_mysql() { $users = \DB::select()->from('users')->execute()->as_array(); return Response::forge(json_encode($users)); }
1
2
3
4
5
من خلال اتباع هذه الخطوات، تكون قد نجحت في إنشاء وتشغيل مشروع FuelPHP واستخدام الميزات التي يوفرها ServBay لإدارة والوصول إلى مشروعك، بالإضافة إلى الاتصال بأنواع متعددة من قواعد البيانات واستدعاء البيانات. نأمل أن تساعدك هذه المقالة على البدء بسرعة مع FuelPHP وتطبيقه في مشاريعك.