إنشاء وتشغيل مشروع Phalcon
ما هو Phalcon؟
Phalcon هو إطار عمل مفتوح المصدر وعالي الأداء لتطوير تطبيقات الويب بلغة PHP، ويُنفذ على شكل ملحق بلغة C. هذا الأسلوب الفريد يضمن استهلاكًا منخفضًا جدًا للموارد وسرعة تنفيذ عالية، متفوقًا بذلك على معظم أطر عمل PHP التقليدية. يعتمد Phalcon على نمط هندسة MVC (النموذج-العرض-المتحكم)، ويوفر مجموعة غنية من الأدوات والمكوّنات مثل ORM (رسم الخرائط الكائنية العلائقية)، محرك القوالب، التوجيه، التخزين المؤقت، ومدير الأحداث، وغير ذلك، لتمكين المطورين من بناء تطبيقات ويب وواجهات API قوية وعالية الأداء بسرعة.
المزايا والخصائص الرئيسية لـ Phalcon
- أداء استثنائي: Phalcon يُنفذ كملحق بلغة C، مما يجنّب التحميل والتفسير المستمر لملفات PHP ويوفر أداءً على مستوى النظام الحقيقي.
- كفاءة في استهلاك الموارد: استهلاك ذاكرة منخفض جدًا، يناسب المشاريع ذات المتطلبات العالية من حيث الأداء وقابلية التوسع.
- شمولية في الوظائف: يحتوي على معظم المكونات الأساسية لبناء تطبيق ويب، مما يقلل الاعتماد على مكتبات خارجية.
- سهولة الاستخدام: يوفر واجهات برمجة تطبيقات واضحة وموثقة جيدًا، حتى المبتدئين يمكنهم تعلمه بسرعة.
- هيكلية مرنة: وحدات النظام مصممة بشكل منفصل، مما يتيح للمطور حرية استخدام أو استبدال المكوّنات حسب الحاجة.
- أمان متكامل: يتضمن مكوّنات متقدمة للحماية مثل تصفية المدخلات، الحماية من CSRF وغيرها.
يُعد Phalcon خيارًا مثاليًا لبناء تطبيقات الويب وواجهات API عالية الأداء وقابلة للتوسع، خاصة للمشاريع التي تتطلب سرعة وأداءً عالياً وكفاءة في استغلال الموارد.
إنشاء وتشغيل مشروع Phalcon باستخدام ServBay
ServBay هو بيئة تطوير ويب محلية مصممة خصيصًا لأنظمة macOS، ويدمج إصدارات متعددة من PHP، وقواعد بيانات مختلفة (مثل MySQL، PostgreSQL، MongoDB، Redis) وخوادم ويب (Caddy، Nginx، Apache) بالإضافة إلى مجموعة أدوات للمطورين. باستخدام ServBay، يمكنك بسهولة إعداد وإدارة بيئة العمل الخاصة بمشروع Phalcon.
هذا الدليل سيرشدك خطوة بخطوة لإنشاء مشروع Phalcon أساسي باستخدام بيئة PHP من ServBay، وتكوين خادم الويب لجعله قابلًا للوصول، بالإضافة إلى كيفية دمج قاعدة بيانات علائقية (MySQL) وقاعدة بيانات NoSQL (Redis).
المتطلبات الأساسية
قبل البدء، تأكد من تحقيق الشروط التالية:
- تنصيب وتشغيل ServBay: تأكد من أنك قمت بتثبيت ServBay بنجاح على نظام macOS وقمت بتشغيله.
- تفعيل إصدار PHP المطلوب: ضمن ServBay، تأكد من تفعيل إصدار PHP الذي تنوي استخدامه.
- تفعيل وحدة Phalcon: يأتي ServBay مع وحدة Phalcon مدمجة، لكنها قد لا تكون مفعلة افتراضيًا. تأكد من تفعيل ملحق Phalcon الخاص بإصدار PHP الذي تريد استخدامه وفقًا لدليل كيفية تفعيل وحدة Phalcon مع ServBay، وأعد تشغيل خدمة PHP بعد ذلك.
- توفر Composer: يأتي Composer مدمجًا مع ServBay، فلا حاجة لتثبيته يدويًا. تأكد من إمكانية استخدام أمر
composer
مباشرة في الطرفية.
توافق نسخ Phalcon وDevTools
إطار عمل Phalcon وأداته المرافقة (Phalcon DevTools) يجب أن تتوافق مع إصدار PHP المستخدم. تُبين الجدول التالي العلاقة بين إصدارات PHP وإصدارات Phalcon وDevTools الموصى بها:
إصدار PHP | إصدار Phalcon الموصى به | إصدار DevTools الموصى به | ملاحظات |
---|---|---|---|
PHP 5.6, 7.0, 7.1 | Phalcon 3.4.5 | 3.4.x | |
PHP 7.2, 7.3, 7.4 | Phalcon 4.1.2 | ~4.1 (أو 4.3.x ) | |
PHP 8.0, 8.1, 8.2 | Phalcon 5.x | 5.0.x (رسمي) | قد تواجه DevTools الرسمية مشاكل توافق مع PHP 8.x. |
PHP 8.3, 8.4 | Phalcon 5.x | dev-master (نسخة مُعالجة من المجتمع) | يُنصح باستخدام النسخة المُعالجة لزيادة التوافقية. |
تنبيه هام: بالنسبة لإصدارات PHP 8.x وما بعدها، قد لا تكون DevTools الرسمية متوافقة بالكامل. يوصى باستخدام النسخة المعدلة من المجتمع. سنتناول لاحقًا كيفية تثبيت هذه النسخة عبر Composer.
إنشاء مشروع Phalcon
مسار تخزين المواقع الموصى به
لتسهيل إدارة المشاريع، يوصي ServBay بحفظ جميع مشروعاتك داخل مجلد الجذر الافتراضي للمواقع: /Applications/ServBay/www
. سيُستخدم هذا المسار في الأمثلة أدناه.
الدخول إلى مجلد جذر المواقع وإنشاء مجلد المشروع
افتح الطرفية وانتقل إلى مجلد جذر المواقع في ServBay، ثم أنشئ مجلدًا جديدًا لمشروع Phalcon الخاص بك (مثلاً
servbay-phalcon-app
):bashcd /Applications/ServBay/www mkdir servbay-phalcon-app cd servbay-phalcon-app
1
2
3تثبيت Phalcon DevTools
Phalcon DevTools هي مجموعة أوامر طرفية تساعد المطورين على إنشاء الهيكل الأساسي للمشروع، إدارة الهجرات وغيرها. يتم تثبيتها باستخدام Composer، حسب إصدار PHP:
لـ PHP 5.6, 7.0, 7.1 (Phalcon DevTools
^3.4
):bashcomposer require phalcon/devtools:"^3.4"
1لـ PHP 7.2, 7.3, 7.4 (Phalcon DevTools
~4.1
):bashcomposer require phalcon/devtools:"~4.1"
1لـ PHP 8.0 فما فوق (Phalcon DevTools نسخة مجتمع
dev-master
): بسبب محدودية دعم النسخة الرسمية لـ DevTools مع PHP 8.x، ستحتاج لاستخدام النسخة المُعالجة من المجتمع. في مجلد المشروع (/Applications/ServBay/www/servbay-phalcon-app
)، أنشئ أو عدل ملفcomposer.json
ليشمل إعداد المستودع الخاص بالنسخة المعدلة:json{ "repositories": [ { "url": "https://github.com/daleffe/phalcon-devtools-5.x-fixed.git", "type": "git" } ], "require": { "phalcon/devtools": "dev-master" }, "minimum-stability": "dev", "prefer-stable": true }
1
2
3
4
5
6
7
8
9
10
11
12
13ثم نفذ أمر التحديث:
bashcomposer update
1
بعد اكتمال التثبيت، ستجد أدوات DevTools القابلة للتنفيذ في المسار
vendor/bin/phalcon
داخل مجلد المشروع (servbay-phalcon-app
).إنشاء هيكل المشروع باستخدام DevTools
استخدم الأمر التالي لإنشاء البنية الأساسية لمشروع Phalcon (سيتم إنشاء المجلد الفعلي للمشروع داخل المجلد الحالي):
bashvendor/bin/phalcon project servbay-phalcon-app
1سينشئ هذا الأمر مجلدًا فرعيًا باسم
servbay-phalcon-app
داخل/Applications/ServBay/www/servbay-phalcon-app
، ويضع فيه جميع ملفات مشروع Phalcon.الدخول إلى مجلد كود المشروع
انتقل إلى المجلد الذي يحتوي على كود المشروع الفعلي:
bashcd servbay-phalcon-app
1يجب أن تكون الآن في المسار
/Applications/ServBay/www/servbay-phalcon-app/servbay-phalcon-app
.
إعداد بيئة المشروع
غالبًا ما تتم إعدادات مشروع Phalcon عبر ملف app/config/config.php
. ستحتاج لتعديل معلومات الاتصال بقاعدة البيانات، ومسارات التطبيق وغير ذلك.
تعديل ملف الإعدادات
افتح الملف
/Applications/ServBay/www/servbay-phalcon-app/servbay-phalcon-app/app/config/config.php
باستخدام المحرر المفضل لديك. أضف أو عدّل إعدادات قاعدة البيانات. المستخدم الافتراضي في ServBay هوroot
وكلمة السر فارغة (ينبغي تعيين كلمة مرور قوية لأمان أكبر). استخدم اسم قاعدة البياناتservbay_phalcon_app
أو أي اسم آخر حسب رغبتك (ستحتاج لإنشائها يدويًا):phpreturn new \Phalcon\Config([ // ... إعدادات أخرى ... 'database' => [ 'adapter' => 'Mysql', // أو 'Postgres' حسب الحاجة 'host' => '127.0.0.1', 'username' => 'root', // المستخدم الافتراضي في ServBay 'password' => 'password', // <-- غيّرها إلى كلمة السر الخاصة بك 'dbname' => 'servbay_phalcon_app', // <-- غيّرها إلى اسم قاعدة بياناتك ], // ... إعدادات أخرى ... ]);
1
2
3
4
5
6
7
8
9
10
11ملاحظة هامة: تأكد من بدء خدمة قاعدة البيانات المطلوبة (MySQL أو MariaDB) في ServBay، وأن بيانات المستخدم وكلمة السر مطابقة للإعدادات أعلاه. يجب أيضًا إنشاء قاعدة البيانات يدويًا عبر أدوات ServBay (مثل phpMyAdmin أو Adminer).
إعداد خادم الويب (عبر خاصية المواقع في ServBay)
لتتصفح مشروعك عبر المتصفح، استخدم خاصية المواقع في ServBay لإعداد نطاق افتراضي يشير إلى مجلد الويب الخاص بالمشروع.
- افتح تطبيق ServBay
- ادخل إلى إعدادات "المواقع": من الواجهة الرئيسية لـ ServBay، اختر خيار "المواقع".
- أضف موقعًا جديدًا:
- الاسم: أدخل اسمًا يسهل تمييز المشروع به، مثل "My First Phalcon Dev Site".
- النطاق: أدخل نطاقًا محليًا مثل
servbay-phalcon-test.local
(سيتولى ServBay ربطه بجهازك تلقائيًا). - نوع الموقع: اختر
PHP
. - إصدار PHP: حدد إصدار PHP الذي فعّلت معه ملحق Phalcon.
- المجلد الجذري للموقع: يجب أن يشير إلى مجلد
public
الخاص بمشروعك:/Applications/ServBay/www/servbay-phalcon-app/servbay-phalcon-app/public
- احفظ الإعدادات: سيتم تطبيق التغييرات تلقائيًا. قد تحتاج لإعادة تشغيل خادم الويب (Caddy أو Nginx).
لشرح مفصل يمكنك مراجعة إضافة أول موقع. سيتولى ServBay جميع إجراءات ربط النطاق المحلي وتكوينات خادم الويب تلقائيًا.
إضافة كود تجريبي
لنتحقق من جاهزية المشروع، سنضيف بعض الشيفرات البسيطة.
إعداد التوجيه (Route)
عدل الملف
/Applications/ServBay/www/servbay-phalcon-app/servbay-phalcon-app/app/config/routes.php
لإضافة مسار أساسي يعالج الطلب الموجه إلى/
:php<?php use Phalcon\Mvc\Router; $router = new Router(false); // تعريف المسار الافتراضي، ربط '/' بـ IndexController وindexAction $router->add( '/', [ 'controller' => 'index', 'action' => 'index', ] ); // ... يمكن إضافة المزيد من المسارات هنا ... $router->handle($_SERVER['REQUEST_URI']); return $router;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19إنشاء متحكم (Controller)
حرر أو أنشئ الملف
/Applications/ServBay/www/servbay-phalcon-app/servbay-phalcon-app/app/controllers/IndexController.php
وأضف بداخله طريقةindexAction
بسيطة:php<?php namespace App\Controllers; // تأكد من صحة مساحة الاسم use Phalcon\Mvc\Controller; class IndexController extends Controller { // معالجة الطلب على المسار '/' public function indexAction() { // تظهر هذه الرسالة عند زيارة الموقع return 'Hello ServBay!'; } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
تصفح الموقع
بعد حفظ جميع الملفات والتأكد من استمرار تشغيل ServBay، افتح متصفح الويب وادخل النطاق الذي قمت بإعداده:
https://servbay-phalcon-test.local
إن كانت الإعدادات صحيحة، ستظهر لك رسالةHello ServBay!
تكامل قاعدة البيانات
يوفر Phalcon طبقة قوية للتعامل مع قواعد البيانات وORM. مع ServBay يمكنك دمج مختلف قواعد البيانات بسهولة. سنوضح مثالين: MySQL وRedis.
مثال قاعدة بيانات علائقية: MySQL
سنوضح كيفية الاتصال بخدمة MySQL الخاصة بـ ServBay من خلال Phalcon وتنفيذ استعلامات للإدخال والقراءة.
إنشاء هيكل قاعدة البيانات (بالهجرات)
يدعم Phalcon DevTools الهجرات كآلية لإدارة بنية قاعدة البيانات.
توليد ملف هجرة: من داخل مجلد كود المشروع (
/Applications/ServBay/www/servbay-phalcon-app/servbay-phalcon-app
) نفّذ:bashvendor/bin/phalcon migration generate
1سيظهر ملف جديد في مجلد
migrations
مثلYYYYMMDDHHMMSS_MigrationName.php
.تعديل ملف الهجرة: افتح الملف الجديد وأضف تعريفًا لجدول
users
:php<?php use Phalcon\Db\Column; use Phalcon\Db\Index; use Phalcon\Migrations\Mvc\Model\Migration; /** * Class UsersMigration_100 */ class UsersMigration_100 extends Migration // تأكد من تطابق اسم الكلاس مع اسم الملف { /** * تثبيت (أو تحديث) الجداول * * @return void */ public function morph() { $this->morphTable('users', [ 'columns' => [ new Column( 'id', [ 'type' => Column::TYPE_INTEGER, 'autoIncrement' => true, 'notNull' => true, 'primary' => true, ] ), new Column( 'name', [ 'type' => Column::TYPE_VARCHAR, 'size' => 255, 'notNull' => true, ] ), new Column( 'email', [ 'type' => Column::TYPE_VARCHAR, 'size' => 255, 'notNull' => true, 'unique' => true, ] ), ], 'indexes' => [ new Index('PRIMARY', ['id'], 'PRIMARY'), new Index('email_UNIQUE', ['email'], 'UNIQUE'), ], 'options' => [ 'TABLE_ENGINE' => 'InnoDB', 'CHARACTER SET' => 'utf8mb4', 'COLLATE' => 'utf8mb4_unicode_ci', ], ]); } /** * التراجع (التراجع عن الهجرة) * * @return void */ public function down() { // اختياري: كود حذف الجداول عند التراجع // $this->getConnection()->dropTable('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
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
63
64
65
66
67
68
69
70ملاحظة: يجب التطابق بين اسم الكلاس واسم ملف الهجرة.
تشغيل الهجرة: من داخل مجلد الكود نفّذ الأمر لإنشاء جدول
users
في قاعدة البيانات:bashvendor/bin/phalcon migration run
1إذا ظهرت أخطاء اتصال، تحقق من إعدادات قاعدة البيانات في
app/config/config.php
، وتأكد من عمل خدمة MySQL/MariaDB في ServBay.
إعداد الاتصال بقاعدة البيانات (تم مسبقًا أعلاه)
تأكد من أن إعدادات قسم
'database'
في ملف الإعدادات تشير لخدمة MySQL/MariaDB التي تعمل عبر ServBay (عادة المضيف127.0.0.1
، المنفذ 3306، المستخدمroot
وكلمة السر حسب إعدادك).إضافة مسارات تجريبية
حرر ملف
app/config/routes.php
لإضافة مسارات الإدخال والقراءة:php<?php use Phalcon\Mvc\Router; $router = new Router(false); $router->add('/', [ 'controller' => 'index', 'action' => 'index', ]); // مسار لإدخال بيانات مستخدم $router->add( '/mysql-add', [ 'controller' => 'index', 'action' => 'mysqlAdd', ] ); // مسار لقراءة بيانات المستخدمين $router->add( '/mysql', [ 'controller' => 'index', 'action' => 'mysql', ] ); $router->handle($_SERVER['REQUEST_URI']); return $router;
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تنفيذ العمليات على قاعدة البيانات في المتحكم
حرر ملف
app/controllers/IndexController.php
وأضف طرائقmysqlAddAction
وmysqlAction
:php<?php namespace App\Controllers; use Phalcon\Mvc\Controller; use Phalcon\Db\Adapter\Pdo\Mysql; // استيراد ملحق MySQL use Phalcon\Db\Enum; // لتحديد نوع الجلب class IndexController extends Controller { public function indexAction() { return 'Hello ServBay!'; } // مثال على إدخال بيانات مستخدم public function mysqlAddAction() { // إنشاء الاتصال بقاعدة البيانات (يفضل عمله مرة واحدة عبر Services في التطبيق الفعلي) $connection = new Mysql([ 'host' => '127.0.0.1', 'username' => 'root', 'password' => 'password', // <-- غيّرها إلى كلمة السر الخاصة بك 'dbname' => 'servbay_phalcon_app', 'charset' => 'utf8mb4', // مستحسن تحديد الترميز ]); // إدخال سجل لمستخدم جديد $success = $connection->insert( 'users', // اسم الجدول ['ServBay Demo User', 'demo@servbay.test'], // بيانات الأعمدة ['name', 'email'] // أسماء الأعمدة ); // عرض نتيجة العملية echo $success ? 'User added successfully.' : 'Failed to add user.'; } // قراءة بيانات المستخدمين public function mysqlAction() { $connection = new Mysql([ 'host' => '127.0.0.1', 'username' => 'root', 'password' => 'password', // <-- غيّرها إلى كلمة السر الخاصة بك 'dbname' => 'servbay_phalcon_app', 'charset' => 'utf8mb4', ]); // جلب جميع المستخدمين $users = $connection->fetchAll('SELECT * FROM users', Enum::FETCH_ASSOC); // عرض النتيجة بشكل JSON header('Content-Type: application/json'); echo json_encode($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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56ملاحظة: في التطبيقات الفعلية يُنصح بإنشاء اتصال القاعدة كخدمة ضمن النظام واستخدام DI بدلاً من إنشائه عند كل طلب.
تجربة الوظائف
- زر
https://servbay-phalcon-test.local/mysql-add
. إذا نجح الإدخال ستظهر رسالة "User added successfully.". - زر
https://servbay-phalcon-test.local/mysql
. يجب أن ترى بيانات جدول المستخدمين بصيغة JSON.
- زر
مثال قاعدة بيانات NoSQL: Redis
سنبيّن كيفية استخدام Redis كذاكرة مؤقتة (كاش) في مشروع Phalcon عبر ServBay.
تفعيل ملحق Redis
عادة ما يعتمد PHP في ServBay على ملحق Redis مُدمج. فقط تأكد من تفعيله مع إصدار PHP الذي تستخدمه في ServBay.
إعداد الاتصال بـ Redis
عدل أو أضف إعدادات Redis في ملف
app/config/config.php
(يعمل Redis افتراضيًا على127.0.0.1:6379
):phpreturn new \Phalcon\Config([ // ... إعدادات أخرى ... 'cache' => [ 'adapter' => 'Redis', 'host' => '127.0.0.1', 'port' => 6379, 'index' => 0, // قاعدة Redis الافتراضية 'persistent' => false, // اتصال غير دائم 'auth' => null, // ضع كلمة السر إذا كانت مطلوبة ], // ... إعدادات أخرى ... ]);
1
2
3
4
5
6
7
8
9
10
11
12إضافة مسار تجريبي لـ Redis
حرر ملف
app/config/routes.php
، أضف المسار التالي:php<?php use Phalcon\Mvc\Router; $router = new Router(false); $router->add('/', [ 'controller' => 'index', 'action' => 'index', ]); $router->add('/mysql-add', [ 'controller' => 'index', 'action' => 'mysqlAdd', ]); $router->add('/mysql', [ 'controller' => 'index', 'action' => 'mysql', ]); // مسار تجربة Redis $router->add( '/redis', [ 'controller' => 'index', 'action' => 'redis', ] ); $router->handle($_SERVER['REQUEST_URI']); return $router;
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تجريب Redis في المتحكم
أضف الطريقة
redisAction
في ملفapp/controllers/IndexController.php
:php<?php namespace App\Controllers; use Phalcon\Mvc\Controller; use Phalcon\Db\Adapter\Pdo\Mysql; use Phalcon\Db\Enum; use Phalcon\Cache\Adapter\Redis; // استيراد ملحق Redis use Phalcon\Storage\SerializerFactory; // استيراد وحدات التسلسل class IndexController extends Controller { public function indexAction() { return 'Hello ServBay!'; } public function mysqlAddAction() { $connection = new Mysql([/* ... */]); $success = $connection->insert(/* ... */); echo $success ? 'User added successfully.' : 'Failed to add user.'; } public function mysqlAction() { $connection = new Mysql([/* ... */]); $users = $connection->fetchAll('SELECT * FROM users', Enum::FETCH_ASSOC); header('Content-Type: application/json'); echo json_encode($users); } // مثال على التخزين المؤقت باستخدام Redis public function redisAction() { // إنشاء فابريكا التسلسل $serializerFactory = new SerializerFactory(); // إعدادات Redis (تطابق إعدادات config.php) $options = [ 'defaultSerializer' => 'Json', 'lifetime' => 3600, // صلاحية الكاش بالثواني 'host' => '127.0.0.1', 'port' => 6379, 'index' => 0, // 'auth' => 'your_redis_password', // إن وجدت ]; // إنشاء الملحق $cache = new Redis($serializerFactory, $options); $cacheKey = 'my_servbay_redis_cache_key'; $cachedData = $cache->get($cacheKey); // محاولة جلب البيانات من الكاش if ($cachedData === null) { // لا يوجد بيانات بالكاش echo "Data not found in cache, fetching from source..."; $cachedData = 'Data fetched from source: Hello Redis from ServBay!'; $cache->set($cacheKey, $cachedData); // حفظ في الكاش echo "Data stored in cache."; } else { // البيانات وجدت في الكاش echo "Data found in cache: "; } // عرض النتيجة (من الكاش أو من المصدر) return $cachedData; } }
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
63
64
65
66
67
68ملاحظة: في التطبيقات الكبيرة، يفضل تعريف خدمات الكاش عبر DI.
تجربة الوظيفة
زر
https://servbay-phalcon-test.local/redis
- في الزيارة الأولى ستجد رسالة "Data not found in cache, fetching from source...Data stored in cache."، متبوعة بالقيمة المخزنة.
- في الزيارات التالية ستجد "Data found in cache: ..." مع البيانات نفسها، ما يدل أن القيم أخذت من الكاش.
الأسئلة المتكررة (FAQ)
- س: ماذا أفعل إذا ظهرت رسالة 404 Not Found عند تصفح الموقع؟
- ج: تأكد أن مجلد الجذر للموقع في إعدادات ServBay يشير لمجلد
public
الخاص بمشروع Phalcon. تحقق أيضًا من أن خادم الويب (Caddy أو Nginx) يعمل بشكل صحيح وأن النطاق المحلي مرتبط بالجهاز.
- ج: تأكد أن مجلد الجذر للموقع في إعدادات ServBay يشير لمجلد
- س: تظهر رسالة خطأ بعدم العثور على وحدة Phalcon (مثلاً Class 'Phalcon\Mvc\Application' not found)؟
- ج: غالبًا لم يتم تفعيل ملحق Phalcon لإصدار PHP الذي يستخدمه مشروعك. عدْ لإعدادات ServBay وفعلّ ملحق Phalcon للإصدار المطلوب ثم أعد تشغيل خدمة PHP. راجع كيفية تفعيل وحدة Phalcon مع ServBay.
- س: فشل الاتصال بقاعدة البيانات؟
- ج: راجع إعدادات الاتصال بقاعدة البيانات في
app/config/config.php
(المضيف، المستخدم، كلمة السر واسم القاعدة). تأكد من تشغيل خدمة MySQL/MariaDB في ServBay، وأن المستخدم لديه صلاحية الاتصال وأن قاعدة البيانات منشأة.
- ج: راجع إعدادات الاتصال بقاعدة البيانات في
الخلاصة
مع ServBay، يمكنك بناء بيئة تطوير عالية الأداء لإطار عمل Phalcon بسهولة على جهازك المحلي. وضّح هذا الدليل كيفية إنشاء الهيكل الأولي للمشروع، ضبط خادم الويب، ودمج كل من MySQL وRedis بشكل عملي. تضمن حزم ServBay المُدمجة وواجهة الإدارة سهلة الاستخدام أن يصبح بناء وصيانة بيئة العمل عملية بسيطة، لتتمكن من التركيز على تطوير تطبيقك.
نتمنى أن يساعدك هذا الدليل للبدء في تطوير تطبيقات ويب فعالة وعالية الأداء باستخدام Phalcon وServBay!