إنشاء وتشغيل مشروع FuelPHP
ما هو FuelPHP؟
FuelPHP هو إطار عمل PHP مرن ومودولاري مصمم لتطوير تطبيقات الويب الحديثة. يتبع نمط التصميم HMVC (Hierarchical Model-View-Controller) ويوفر مجموعة غنية من الميزات والأدوات التي تُمكن المطورين من بناء تطبيقات ويب عالية الجودة بسرعة. يُعرف FuelPHP بمرونته، وأدائه العالي، وسهولة التوسيع، مما يجعله خيارًا مفضلاً للعديد من المطورين.
الميزات والفوائد الرئيسية لـ FuelPHP
- هندسة HMVC: يدعم أنماط تصميم MVC الهرمي، مما يسهل إعادة استخدام الكود والتطوير المودولاري.
- أداء عالي: يُعرف FuelPHP بأدائه الفعال وسرعته، القادر على معالجة الطلبات عالية التواقت.
- سهل التوسيع: يوفر آلية التوسيع الغنية التي تُمكن المطورين من إضافة الوظائف المخصصة بسهولة.
- الأمان: يشمل العديد من ميزات الأمان المدمجة مثل التحقق من صحة المدخلات، تصفية المخرجات، وحماية CSRF.
- دعم المجتمع القوي: لديه مجتمع مطورين نشط وثروة من الامتدادات الطرف الثالث.
يمكن أن يساعد FuelPHP المطورين على بناء تطبيقات ويب عالية الأداء والجودة بسرعة تناسب المشاريع بمختلف أحجامها.
إنشاء وتشغيل مشروع FuelPHP باستخدام ServBay
في هذا المقال، سنستخدم بيئة PHP التي تقدمها ServBay لإنشاء وتشغيل مشروع FuelPHP. سنقوم بإعداد خادم ويب باستخدام ميزة "Host" الخاصة بـ ServBay والوصول إلى المشروع من خلال تكوين بسيط.
ملاحظة: للمستخدمين الذين استخدموا مسبقًا NGINX أو Apache
تستخدم ServBay خادم الويب Caddy افتراضيًا. للمستخدمين الذين ينتقلون من NGINX وApache إلى ServBay، هناك بعض التغييرات الرئيسية التي يجب ملاحظتها:
تكوين Caddy
ServBay يحتوي على Caddy مدمج، وقد تم تحسين وتدريس التكوين الافتراضي. يحتاج المطورون فقط إلى إدارة المواقع عبر ميزة "Host" الخاصة بـ ServBay دون الحاجة إلى تعديل ملف تكوين Caddy يدويًا.
قواعد إعادة الكتابة وملف .htaccess
في NGINX وApache، يحتاج المطورون عادة إلى كتابة قواعد إعادة الكتابة الخاصة بهم وملفات .htaccess لأجل إعادة كتابة URL وتكوينات أخرى. ومع ذلك، فإن ServBay يأتي مُعدًا مسبقًا بقواعد Caddy، لذا لا يحتاج المطورون لكتابة هذه القواعد إلا إذا كانت هناك متطلبات خاصة.
اعرف المزيد
لمزيد من المعلومات، يرجى الاطلاع على Rewrite and htaccess، How to Migrate Apache Websites to ServBay، و How to Migrate NGINX Websites to ServBay.
إنشاء مشروع FuelPHP
TIP
توصي ServBay بوضع المواقع في دليل /Applications/ServBay/www
لتسهيل الإدارة.
تثبيت Composer
Composer مثبت مسبقًا مع ServBay، لذا لا يتطلب تثبيتًا منفصلاً.
إنشاء مشروع 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
تكوين خادم الويب
استخدم ميزة "Host" الخاصة بـ ServBay للوصول إلى مشروع FuelPHP عبر خادم الويب. في إعدادات "Host" الخاصة بـ ServBay، أضف مضيفًا جديدًا:
- الاسم:
My First FuelPHP Dev Site
- المجال:
servbay-fuelphp-test.local
- نوع الموقع:
PHP
- إصدار PHP: اختر
8.3
- دليل الجذر للموقع:
/Applications/ServBay/www/servbay-fuelphp-app/public
لخطوات الإعداد التفصيلية، يُرجى الرجوع إلى Adding the First Website.
إضافة كود عينة
أضف الكود التالي في ملف fuel/app/classes/controller/welcome.php
:
use Fuel\Core\Controller;
use Fuel\Core\Response;
use Fuel\Core\Cache;
use Fuel\Core\DB;
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()
{
Cache::set('key', 'Hello Redis!', 60);
$value = Cache::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
43
44
45
الوصول إلى الموقع
افتح متصفحك وزر الرابط التالي:
https://servbay-fuelphp-test.local
: ستشاهد الصفحة تعرضHello ServBay!
.
أمثلة على قواعد البيانات NoSQL
مثال Memcached
تثبيت امتداد Memcached
امتداد Memcached مُثبت مسبقًا مع ServBay، ولا يتطلب تثبيتًا إضافيًا.
إعداد Memcached
قم بإعداد معلومات اتصال Memcached في ملف
fuel/core/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
14إضافة المسارات
أضف المسارات التالية إلى
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
امتداد Redis مُثبت مسبقًا مع ServBay، ولا يتطلب تثبيتًا إضافيًا.
إعداد 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() { Cache::set('key', 'Hello Redis!', 60); $value = Cache::get('key'); return Response::forge($value); }
1
2
3
4
5
6
7افتح المتصفح وزر https://servbay-fuelphp-test.local/redis
أمثلة على قواعد البيانات العلائقية
مثال 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إنشاء ملفات الترحيل
استخدم أداة oil التابعة لـ 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تشغيل الترحيل
استخدم أداة oil التابعة لـ FuelPHP لتشغيل الترحيل وإنشاء جدول قاعدة البيانات:
bashphp oil refine migrate
1إضافة المسارات
أضف المسارات التالية إلى
fuel/app/config/routes.php
:phpreturn array( 'mysql_add' => 'welcome/mysql_add', 'mysql' => 'welcome/mysql', )
1
2
3
4إدخال بيانات المستخدم
أدخل بيانات المستخدم في المحكّم:
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
6افتح المتصفح وزر
https://servbay-fuelphp-test.local/mysql_add
وhttps://servbay-fuelphp-test.local/mysql
من خلال الخطوات السابقة، قد أنشأت وشغلت بنجاح مشروع FuelPHP باستخدام ميزات ServBay لإدارة والوصول إلى المشروع بينما تتصل وتستعلم عن قواعد بيانات متعددة. نأمل أن يساعدك هذا المقال في البدء بسرعة مع FuelPHP وتطبيقه في مشاريعك.