إنشاء وتشغيل مشروع PHPixie
ما هو PHPixie؟
PHPixie هو إطار عمل PHP خفيف الوزن، مناسب لتطوير تطبيقات الويب عالية الأداء بسرعة. يتبع نمط التصميم HMVC (Model-View-Controller الهرمي)، ويقدم بنية شفرة نظيفة وأداء فعال. يشتهر PHPixie بكونه بسيطًا ومرنًا وعالي الأداء، مما يجعله الخيار الأول للعديد من المطورين.
الخصائص والمميزات الرئيسية لـ PHPixie
- خفيف الوزن: نظام PHPixie الأساسي صغير جدًا فقط يشمل المكونات الضرورية، مما يجعله سريع التحميل.
- عال الأداء: يشتهر PHPixie بأدائه الفعال وسرعته، وقادر على التعامل مع طلبات عالية التزامن.
- سهل التعلم: يوفر API بسيط وسهل الاستخدام ووثائق غنية، مما يمكّن المطورين من البدء سريعًا.
- مرونة: يسمح للمطورين بحرية اختيار واستخدام المكتبات والإضافات الخارجية، مما يسهل التوسيع والتخصيص.
- دعم مجتمع قوي: يحتوي على مجتمع مطورين نشط والكثير من الإضافات الخارجية.
يمكن أن يساعد PHPixie المطورين في بناء تطبيقات ويب عالية الأداء وعالية الجودة بسرعة، ومناسب لمشاريع بأحجام مختلفة.
إنشاء وتشغيل مشروع PHPixie باستخدام ServBay
في هذا المقال، سنستخدم بيئة PHP المقدمة من ServBay لإنشاء وتشغيل مشروع PHPixie. سنستخدم ميزة 'الاستضافة' الخاصة بـ ServBay لضبط خادم الويب وتكوين الوصول إلى المشروع بطريقة بسيطة.
ملاحظة: إذا كنت من مستخدمي NGINX أو Apache سابقاً
يستخدم ServBay افتراضياً Caddy كخادم ويب. بالنسبة للمستخدمين الذين ينتقلون من NGINX وApache إلى ServBay، هناك بعض التغييرات الأساسية التي يجب معرفتها:
تكوين Caddy
تم تضمين Caddy بالفعل في ServBay وتم تحسين وتكوين الإعداد الافتراضي. يمكن للمطورين إدارة المواقع من خلال ميزة 'الاستضافة' في ServBay دون الحاجة إلى تعديل ملفات تكوين Caddy يدوياً.
قواعد إعادة الكتابة و .htaccess
في NGINX وApache، كان على المطورين كتابة قواعد إعادة الكتابة وملفات .htaccess بأنفسهم لمعالجة إعادة كتابة URL والتكوينات الأخرى. ومع ذلك، يأتي ServBay مسبقاً بتكوينات Caddy، لذلك إلا إذا كانت هناك احتياجات خاصة، فلا حاجة لكتابة هذه القواعد يدويًا.
لمعرفة المزيد
لمزيد من المعلومات، يرجى إلقاء نظرة على Rewrite وhtaccess، كيفية نقل موقع Apache إلى ServBay، كيفية نقل موقع NGINX إلى ServBay.
إنشاء مشروع PHPixie
TIP
يوصى بواسطة ServBay وضع المواقع في الدليل /Applications/ServBay/www
لتسهيل الإدارة.
تثبيت Composer
يأتي ServBay مزوداً بـ Composer بالفعل، لذا لا حاجة لتثبيته بشكل منفصل.
إنشاء مشروع PHPixie
استخدم Composer لإنشاء مشروع PHPixie جديد:
bashcd /Applications/ServBay/www mkdir servbay-phpixie-app cd servbay-phpixie-app composer create-project phpixie/project .
1
2
3
4دخول دليل المشروع
ادخل الدليل الخاص بمشروع PHPixie الجديد:
bashcd /Applications/ServBay/www/servbay-phpixie-app
1
إعداد التكوين
تكوين اتصال قاعدة البيانات
في ملف
assets/config/database.php
قم بإعداد معلومات اتصال قاعدة البيانات:phpreturn [ 'default' => [ 'driver' => 'pdo', 'connection' => 'mysql:host=127.0.0.1;dbname=servbay_phpixie_app', 'user' => 'root', 'password' => 'password', 'options' => [] ] ];
1
2
3
4
5
6
7
8
9
إعداد خادم الويب
استخدم ميزة 'الاستضافة' الخاصة بـ ServBay للوصول إلى مشروع PHPixie عن طريق خادم الويب. في إعدادات 'الاستضافة' في ServBay، أضف مضيف جديد:
- الاسم:
My First PHPixie Dev Site
- اسم النطاق:
servbay-phpixie-test.local
- نوع الموقع:
PHP
- إصدار PHP: اختر
8.3
- دليل جذر الموقع:
/Applications/ServBay/www/servbay-phpixie-app/web
للحصول على خطوات الإعداد التفصيلية، يرجى الرجوع إلى إضافة أول موقع ويب.
إضافة كود المثال
في ملف src/App/HTTP/Controller/Home.php
أضف الكود التالي:
namespace App\HTTP\Controller;
use PHPixie\HTTP\Request;
use PHPixie\Template;
class Home extends \PHPixie\Controller
{
protected $template;
public function __construct(Template $template)
{
$this->template = $template;
}
public function action_index(Request $request)
{
return $this->template->render('app:home');
}
public function action_memcached(Request $request)
{
$cache = $this->components->cache();
$cache->set('key', 'Hello Memcached!', 60);
$value = $cache->get('key');
return $this->response()->string($value);
}
public function action_redis(Request $request)
{
$redis = $this->components->redis();
$redis->set('key', 'Hello Redis!');
$value = $redis->get('key');
return $this->response()->string($value);
}
public function action_mysql_add(Request $request)
{
$query = $this->components->database()->query();
$query->insert('users')->data([
'name' => 'ServBay',
'email' => '[email protected]',
])->execute();
return $this->response()->string('User added');
}
public function action_mysql(Request $request)
{
$query = $this->components->database()->query();
$users = $query->select('*')->from('users')->execute()->fetchAll();
return $this->response()->json($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
46
47
48
49
50
51
52
في ملف assets/templates/app/home.php
أضف الكود التالي:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Welcome to PHPixie</title>
</head>
<body>
<h1>Welcome to PHPixie</h1>
<p>The page you are looking at is being generated dynamically by PHPixie.</p>
</body>
</html>
2
3
4
5
6
7
8
9
10
11
12
الوصول إلى الموقع
افتح المتصفح وزر الـ URL التالي:
https://servbay-phpixie-test.local
: سترى صفحة تعرضWelcome to PHPixie
.
أمثلة قاعدة البيانات NoSQL
مثال Memcached
تثبيت إضافة Memcached
في ServBay، يتم تثبيت إضافة Memcached مسبقًا، لذا لا حاجة لتثبيتها بشكل إضافي.
تكوين Memcached
في ملف
assets/config/cache.php
قم بإعداد معلومات اتصال Memcached:phpreturn [ 'default' => [ 'driver' => 'memcached', 'servers' => [ [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100, ], ], ], ];
1
2
3
4
5
6
7
8
9
10
11
12استخدام Memcached
في المحـكمـة دوام ذاكرة التخزين المؤقت:
phppublic function action_memcached(Request $request) { $cache = $this->components->cache(); $cache->set('key', 'Hello Memcached!', 60); $value = $cache->get('key'); return $this->response()->string($value); }
1
2
3
4
5
6
7
مثال Redis
تثبيت إضافة Redis
في ServBay، يتم تثبيت إضافة Redis مسبقًا، لذا لا حاجة لتثبيتها بشكل إضافي.
تكوين Redis
في ملف
assets/config/redis.php
قم بإعداد معلومات اتصال Redis:phpreturn [ 'default' => [ 'hostname' => '127.0.0.1', 'port' => 6379, 'timeout' => 0, 'database' => 0, ], ];
1
2
3
4
5
6
7
8استخدام Redis
في المحـكمـة دوام ذاكرة التخزين المؤقت:
phppublic function action_redis(Request $request) { $redis = $this->components->redis(); $redis->set('key', 'Hello Redis!'); $value = $redis->get('key'); return $this->response()->string($value); }
1
2
3
4
5
6
7
أمثلة قاعدة البيانات العلائقية
إنشاء هيكل قاعدة البيانات وملفات الهجرة
إنشاء ملف الهجرة
استخدم أداة CLI الخاصة بـ PHPixie لإنشاء ملف الهجرة:
bashphp pixie generate:migration create_users_table
1تحرير ملف الهجرة
في دليل
assets/migrations
، ابحث عن ملف الهجرة الجديد وقم بتحريره لتعريف بنية الجدول:phppublic function up() { $this->schema->create('users', function($table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); }); } public function down() { $this->schema->drop('users'); }
1
2
3
4
5
6
7
8
9
10
11
12
13
14تشغيل الهجرة
استخدم أداة CLI الخاصة بـ PHPixie لتشغيل الهجرة وإنشاء الجداول:
bashphp pixie migrate
1
مثال MySQL
تكوين MySQL
في ملف
assets/config/database.php
قم بإعداد معلومات اتصال MySQL:phpreturn [ 'default' => [ 'driver' => 'pdo', 'connection' => 'mysql:host=127.0.0.1;dbname=servbay_phpixie_app', 'user' => 'root', 'password' => 'password', 'options' => [] ] ];
1
2
3
4
5
6
7
8
9إدخال بيانات المستخدم
في المحـكمـة أضف بيانات المستخدم:
phppublic function action_mysql_add(Request $request) { $query = $ هذا.query(); $query->insert('users')->data([ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return $this->response()->string('User added'); }
1
2
3
4
5
6
7
8
9استخدام MySQL
في المحـكمـة استخدم قاعدة البيانات:
phppublic function action_mysql(Request $request) { $query = $ هذا.query(); $users = $query->select('*')->from('users')->execute()->fetchAll(); return $this->response()->json($users); }
1
2
3
4
5
6
مثال PostgreSQL
تكوين PostgreSQL
في ملف
assets/config/database.php
قم بإعداد معلومات اتصال PostgreSQL:phpreturn [ 'default' => [ 'driver' => 'pdo', 'connection' => 'pgsql:host=127.0.0.1;dbname=servbay_phpixie_app', 'user' => 'root', 'password' => 'password', 'options' => [] ] ];
1
2
3
4
5
6
7
8
9إدخال بيانات المستخدم
في المحـكمـة أضف بيانات المستخدم:
phppublic function action_pgsql_add(Request $request) { $query = $ هذا.query(); $query->insert('users')->data([ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return $this->response()->string('User added'); }
1
2
3
4
5
6
7
8
9استخدام PostgreSQL
في المحـكمـة استخدم قاعدة البيانات:
phppublic function action_pgsql(Request $request) { $query = $ هذا.query(); $users = $query->select('*')->from('users')->execute()->fetchAll(); return $this->response()->json($users); }
1
2
3
4
5
6
من خلال الخطوات أعلاه، قمت بإنشاء وتشغيل مشروع PHPixie بشكل ناجح، واستخدمت الميزات المقدمة من ServBay لإدارة والوصول إلى مشروعك، وفي نفس الوقت الاتصال بعدة قواعد بيانات واستدعاء البيانات. آمل أن يكون هذا المقال قد ساعدك في بدء PHPixie بسرعة وتطبيقه في مشاريعك.