تفعيل ملحق إطار عمل Phalcon عالي الأداء في ServBay
يعد ServBay بيئة تطوير ويب محلية قوية صممت خصيصاً للمطورين، حيث تجمع بين العديد من التقنيات الرائجة. بالنسبة لمطوري PHP، يأتي ServBay مزوداً بملحق إطار العمل عالي الأداء Phalcon، ويوفر طريقة تفعيل سهلة للغاية. ويشتهر Phalcon، كإطار عمل PHP، بسرعته وكفاءته العالية وبنيته المعيارية التي تساعد المطورين على بناء تطبيقات ويب فعالة.
لمحة عن إطار عمل Phalcon
Phalcon هو إطار عمل PHP مفتوح المصدر ومتكامل، يشتهر بسرعته البارزة واستهلاكه الضئيل للموارد. وعلى عكس معظم الأطر المبنية على PHP النقي، فإن Phalcon مبرمج بلغة C ويتم تحميله كملحق PHP. هذه البنية الفريدة تمنحه أفضلية ملحوظة في الأداء مع تقديم مجموعة غنية من الخصائص القوية.
أهم الميزات
- أداء عالي: بفضل تنفيذه كملحق C منخفض المستوى، يتفوق Phalcon في السرعة ويستهلك ذاكرة ووحدة معالجة مركزية أقل مقارنة بالأطر المبنية على PHP فقط.
- عبء منخفض: صُمم Phalcon ليحسن استغلال الموارد، لذا يظل فعالاً مع تعدد الطلبات المتزامنة.
- خصائص غنية: يدعم Phalcon نموذج MVC (النموذج-العرض-المتحكم) بشكل كامل، ويوفر نظام ORM قوي، محرك قوالب، نظام توجيه مرن، آليات تخزين مؤقت وخدمات الكيو، والمزيد لتلبية أصعب متطلبات تطوير الويب.
- سهولة الاستخدام: رغم أن جوهره مكتوب بلغة C، إلا أن المطورين يمكنهم التعامل معه مباشرة باستخدام لغة PHP المألوفة. توفر واجهته البرمجية الواضحة ووثائقه الغنية منحنى تعلم منخفض.
- تصميم معياري: مكونات Phalcon قابلة للفصل والتركيب بشكل كبير، حيث يستطيع المطور اختيار المكونات المناسبة لكل مشروع.
إصدارات ملحق Phalcon المدمجة في ServBay
يدعم ServBay عدة إصدارات هامة من PHP، ويقوم بتضمين ملحق Phalcon المناسب لكل إصدار بشكل مسبق. وتستمر تحديثات ServBay لتواكب الإصدارات الأحدث لأقصى دعم تقني. غالباً ما تتوافق إصدارات ملحق Phalcon المدمجة مع إصدارات PHP المدعومة، ويمكنك مراجعة نسخ الملحق عبر واجهة إدارة الحزم داخل ServBay. فيما يلي أمثلة لبعض الإصدارات الشائعة (مع إمكانية وجود إصدارات أحدث في ServBay):
- PHP 5.6، 7.0، 7.1: Phalcon 3.4.5
- PHP 7.2، 7.3، 7.4: Phalcon 4.1.2
- PHP 8.0، 8.1، 8.2، 8.3: Phalcon 5.7.0
- PHP 8.4، 8.5-dev: Phalcon 5.8.0
كيفية تفعيل ملحق Phalcon
تفعيل ملحق Phalcon في ServBay عملية بديهية للغاية. غالباً يكون الملحق معطل افتراضياً للحفاظ على البيئة خفيفة، ويمكن تفعيله بسهولة عن طريق واجهة ServBay الرسومية.
الطريقة الموصى بها: التفعيل عبر واجهة ServBay الرسومية
هذه هي الطريقة الأسهل والأكثر توصية:
- افتح تطبيق ServBay.
- انتقل إلى خيار اللغات (Languages) في الشريط الجانبي.
- من قائمة الحزم، اختر إصدار PHP الذي ترغب بتفعيل Phalcon عليه مثل
PHP 8.3
أوPHP 8.4
. - اضغط على زر الإضافات (Extensions) بجانب إصدار PHP المحدد.
- من القائمة المنبثقة، ابحث عن ملحق Phalcon.
- فعّل الملحق عبر زر التبديل الموجود بجانبه.
- اضغط على زر حفظ (Save) أسفل النافذة.
- ستظهر رسالة تطالبك بإعادة تشغيل خدمة PHP ذات الصلة. وافق على إعادة التشغيل.
بعد الانتهاء، سيتم تحميل ملحق Phalcon بنجاح لإصدار PHP الذي اخترته.
التفعيل اليدوي عبر تحرير ملف الإعدادات (للمتقدمين)
لإجراء إعدادات تلقائية أو لأغراض تصحيح متقدمة، يمكنك تفعيل Phalcon يدوياً عبر تعديل ملف إعدادات PHP.
الخطوة الأولى: تحديد موقع ملف الإعدادات
حدد مجلد conf.d
لإصدار PHP المطلوب — هنا توضع ملفات إعدادات الإضافات. كمثال، لتفعيل Phalcon على PHP 8.3، يكون المسار غالباً:
bash
/Applications/ServBay/etc/php/8.3/conf.d/phalcon.ini
1
افتح الملف بواسطة محرر نصوص.
الخطوة الثانية: تعديل ملف إعدادات Phalcon
ابحث عن السطر التالي وأزل الفاصلة المنقوطة ;
من أمام extension = phalcon.so
لإلغاء التعليق وتفعيل الإضافة:
ini
[Phalcon]
; Uncomment the following line to enable Phalcon
extension = phalcon.so
1
2
3
2
3
يصبح هكذا بعد التعديل:
ini
[Phalcon]
extension = phalcon.so
1
2
2
الخطوة الثالثة: تفعيل ملحق PSR (لـ PHP 7.2 – 7.4 فقط)
ملاحظة: إذا قمت بالتفعيل عبر واجهة ServBay الرسومية، تجاوز هذه الخطوة.
بالنسبة إلى PHP 7.2 حتى 7.4، يعتمد Phalcon على ملحق PSR (معايير PHP القياسية). ServBay يدمج PSR مسبقاً، ويجب التأكد من تفعيله أيضاً. تحقق من وجود الأسطر التالية دون تعليق في phalcon.ini
أو ملف إعداد PSR (psr.ini
غالباً):
ini
; Uncomment both Psr & Phalcon to enable Phalcon
[Psr]
extension = psr.so
[Phalcon]
extension = phalcon.so
1
2
3
4
5
6
2
3
4
5
6
الخطوة الرابعة: إعادة تشغيل خدمة PHP
مهما كانت طريقة التفعيل، يجب إعادة تشغيل خدمة PHP المختارة ليعمل الملحق.
انتقل إلى الواجهة الرئيسية لـ ServBay أو قسم الحزم (Packages)، وحدد إصدار PHP المعدل، ثم اضغط زر إعادة التشغيل (عادةً أيقونة سهم دائري).
التحقق من تحميل ملحق Phalcon
أفضل وسيلة للتأكد من تحميل ملحق Phalcon هي مراجعة معلومات PHP التنفيذية (phpinfo()
).
- أنشئ ملفًا باسم
phpinfo.php
في جذر موقعك الذي يعمل عبر ServBay. مثلاً، لموقعservbay.demo
، أنشئ الملف ضمن:/Applications/ServBay/www/servbay.demo
- أضف الكود التالي إلى الملف:php
<?php phpinfo(); ?>
1
2
3 - افتح متصفحك وادخل على رابط الموقع المناسب مثل:
https://servbay.demo/phpinfo.php
- في صفحة معلومات PHP، ابحث عن قسم "Phalcon". إن رأيت تفاصيل الإصدار والإعدادات، فهذا يعني نجاح التحميل.
الصورة: ابحث عن معلومات Phalcon ضمن مخرجات phpinfo
مثال عملي
بعد تفعيل ملحق Phalcon، يمكنك بدء التطوير باستخدام إطار العمل. فيما يلي مثال لإنشاء تطبيق Phalcon أساسي وتشغيله عبر ServBay.
نفترض أن ملفات المشروع ستوضع في المسار: /Applications/ServBay/www/phalcon-demo
الخطوة الأولى: إنشاء هيكلية مجلد المشروع
اتبع ترتيب المجلدات وفق توصية Phalcon:
/Applications/ServBay/www/phalcon-demo/
├── app/
│ ├── controllers/
│ │ └── IndexController.php
│ └── views/
│ └── index/
│ └── index.phtml
└── public/
└── index.php
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
الخطوة الثانية: إنشاء إعداد موقع ServBay
أنشئ إعداد موقع (Website) جديد داخل ServBay، واعطِه اسم النطاق phalcon-demo.servbay.demo
، وحدد مجلد الجذر ليشير إلى مجلد public
(/Applications/ServBay/www/phalcon-demo/public
)، وتأكد من استخدام إصدار PHP المفعّل فيه Phalcon.
الخطوة الثالثة: كتابة كود المثال
المتحكم الرئيسي:
public/index.php
ملف نقطة دخول التطبيق.php<?php use Phalcon\Autoload\Loader; use Phalcon\Di\FactoryDefault; use Phalcon\Mvc\View; use Phalcon\Mvc\Url; use Phalcon\Mvc\Application; // تعريف ثابت لمجلد الجذر ومجلد التطبيق define('BASE_PATH', dirname(__DIR__)); // يشير إلى /Applications/ServBay/www/phalcon-demo define('APP_PATH', BASE_PATH . '/app'); // يشير إلى /Applications/ServBay/www/phalcon-demo/app // تسجيل محمل تلقائي للمتحكمات والنماذج $loader = new Loader(); $loader->setDirectories( [ APP_PATH . '/controllers/', APP_PATH . '/models/', // تسجيل مجلد النماذج إذا وجد ] ); $loader->register(); // إنشاء حاوية الاعتمادات (DI) $container = new FactoryDefault(); // تسجيل خدمة العرض في الحاوية $container->set( 'view', function () { $view = new View(); $view->setViewsDir(APP_PATH . '/views/'); // تحديد مجلد القوالب return $view; } ); // تسجيل خدمة الرابط URL في الحاوية $container->set( 'url', function () { $url = new Url(); $url->setBaseUri('/'); // تحديد المسار الأساس return $url; } ); // إنشاء تطبيق Phalcon $application = new Application($container); try { // معالجة الطلب وإرسال الرد $response = $application->handle( $_SERVER["REQUEST_URI"] ); $response->send(); } catch (\Exception $e) { // التقاط الاستثناءات وعرض رسالة الخطأ echo 'Exception: ', $e->getMessage(); } ?>
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62المتحكم:
app/controllers/IndexController.php
متحكم الصفحة الرئيسية.php<?php use Phalcon\Mvc\Controller; use Phalcon\Support\Version; // استيراد كلاس Version لجلب إصدار Phalcon الحالي class IndexController extends Controller { // الأكشن الافتراضي public function indexAction() { // جلب رقم إصدار Phalcon الحالي $phalconVersion = new Version(); $versionString = $phalconVersion->get(); // تمرير رقم الإصدار للقالب $this->view->phalconVersion = $versionString; // سيقوم بعرض الملف: app/views/index/index.phtml } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20القالب:
app/views/index/index.phtml
ملف العرض الذي يعرض رسالة ترحيب ورقم إصدار Phalcon.html<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Hello ServBay with Phalcon</title> <style> body { font-family: sans-serif; margin: 40px; text-align: center; } h1 { color: #333; } p { color: #666; } </style> </head> <body> <h1>Hello ServBay!</h1> <p>لقد نجحت في تشغيل تطبيق Phalcon على ServBay.</p> <p>إصدار Phalcon الحالي: **<?= $phalconVersion ?>**</p> </body> </html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
الخطوة الرابعة: تصفح التطبيق
تأكد من أن Nginx/Caddy وإصدار PHP المختار مفعَّلان في ServBay. قم بزيارة النطاق الذي قمت بإعداده مثل https://phalcon-demo.servbay.demo
. يجب أن تظهر لك صفحة تحمل عبارة "Hello ServBay!" مع إصدار Phalcon الحالي.
الصورة: تشغيل تطبيق Phalcon التجريبي بنجاح
ملاحظات هامة
- احرص أن يكون إصدار PHP المختار متوافقًا مع مشروع Phalcon لديك.
- بعد أي تعديل يدوي لملفات الإعدادات، لابد من إعادة تشغيل خدمة PHP ذات الصلة.
- إذا واجهت مشكلة، راجع سجل أخطاء PHP وسجلات خادم الويب (Nginx/Caddy) والتي غالبًا ما تجدها ضمن
/Applications/ServBay/var/log/
.
الأسئلة الشائعة (FAQ)
س1: فعّلت Phalcon لكن لا أراه ضمن نتائج phpinfo()
، ما السبب؟
ج1: تحقق من الآتي:
- تأكد من أنك عدّلت ملف إعدادات إصدار PHP الصحيح (إذا تم التفعيل يدويًا).
- تأكد من إزالة الفاصلة المنقوطة
;
من أمامextension = phalcon.so
. - تأكد من إعادة تشغيل خدمة PHP المرتبطة.
- تأكد من أن إعداد موقعك يستخدم إصدار PHP الذي فعَّلت فيه Phalcon.
- افحص سجل أخطاء PHP في ServBay لمعرفة أي رسائل متعلقة بفشل تحميل الإضافة.
س2: تظهر لي رسالة خطأ Class 'Phalcon\...' not found
عند تشغيل التطبيق!
ج2: ذلك يعني غالبًا أن ملحق Phalcon لم يتم تحميله في بيئة PHP الحالية. كرّر خطوات التفعيل والتحقق (بالأعلى)، وراجع phpinfo() للتأكد من تحميل الملحق. وإذا كان الملحق محملاً، تحقق من صحة تكوين مساحات الأسماء (namespaces) أو إعداد التحميل التلقائي في كودك.
س3: هل يحتاج Phalcon لاعتمادات (ملحقات) إضافية؟
ج3: فقط بالنسبة لإصدارات PHP من 7.2 إلى 7.4 يتطلب Phalcon ملحق PSR. ServBay يوفره مدمجًا، ما عليك سوى التأكد من تفعيل extension = psr.so
مع extension = phalcon.so
في phalcon.ini. أما مع PHP 8.0 وما بعده، فلا تحتاج لتفعيل PSR يدوياً؛ حيث يغطي Phalcon 5.x ذلك داخلياً.
الخلاصة
يسرّع ServBay بشكل كبير خطوات إعداد إطار عمل Phalcon في بيئة التطوير المحلية لديك. بفضل واجهته الرسومية البسيطة أو إمكانات إعداد الملف اليدوي، يمكنك بسهولة تفعيل ملحق Phalcon لأي إصدار PHP تريده. ومع دعم ServBay لكافة تقنيات الويب الأخرى، تستطيع بناء بيئة تطوير متكاملة وعالية الكفاءة لاستعمال Phalcon في تطوير تطبيقات ويب حديثة وسريعة وقليلة الاستهلاك للموارد.