قم بإنشاء وتشغيل مشروع Slim
ما هو Slim؟
Slim هو إطار عمل PHP خفيف الوزن مصمم لبناء تطبيقات ويب وواجهات برمجة تطبيقات بسيطة وعالية الأداء بسرعة. يوفر وظائف أساسية للتوجيه ومعالجة الطلبات والاستجابة، وهو مناسب للمشاريع التي تتطلب التطوير والنشر السريع.
الميزات الرئيسية والمزايا في Slim
- خفة الوزن: إطار Slim صغير الحجم، مناسب لبناء التطبيقات الصغيرة والمتوسطة.
- المرونة: يمكن دمجه مع أي مكونات أو مكتبات طرف ثالث، مما يوفر قدرة هائلة على التكيف.
- سهولة الاستخدام: بفضل واجهة برمجة التطبيقات البسيطة والوثائق الواضحة، يمكن للمطورين البدء بسرعة.
- وظائف توجيه قوية: يدعم طرق HTTP متنوعة وتكوينات توجيه معقدة.
- دعم الوسائط: يمكن إضافة وسائط بسهولة للتعامل مع الطلبات والاستجابات.
Slim هو الخيار المثالي لبناء واجهات برمجة تطبيقات RESTful والتطوير السريع للنموذج الأولي.
إنشاء وتشغيل مشروع Slim باستخدام ServBay
في هذه المقالة، سنستخدم بيئة PHP التي توفرها ServBay لإنشاء وتشغيل مشروع Slim. سنستخدم ميزة "المضيف" في ServBay لتخصيص خادم الويب، وتحقيق الوصول إلى المشروع من خلال إعداد بسيط.
انتباه
إذا كنت مستخدمًا سابقًا لـ NGINX أو Apache، فاستخدم ServBay الذي يعتمد على Caddy كخادم ويب افتراضي. بالنسبة للمستخدمين الذين ينتقلون من NGINX و Apache إلى ServBay، هناك بعض نقاط التحول الرئيسية التي تحتاج إلى الاهتمام بها:
تكوين Caddy
تتضمن ServBay Caddy بشكل مسبق، والتكوين الافتراضي مضبوط جيدًا ومختبر. يحتاج المطورون فقط إلى إدارة المواقع باستخدام ميزة "المضيف" في ServBay دون الحاجة إلى تعديل ملفات تكوين Caddy يدويًا.
قواعد إعادة الكتابة وملف .htaccess
في NGINX و Apache، يحتاج المطورون عادةً إلى كتابة قواعد إعادة الكتابة وملفات .htaccess بأنفسهم لمعالجة إعادة كتابة URL والتكوينات الأخرى. مع ServBay، تكون قواعد Caddy معدة مسبقًا، ولا يحتاج المطورون إلى كتابة هذه القواعد بأنفسهم إلا في حالات خاصة.
لمعرفة المزيد
لمزيد من المعلومات، يرجى الرجوع إلى Rewrite and htaccess، How to migrate Apache website to ServBay، How to migrate NGINX website to ServBay.
إنشاء مشروع Slim
TIP
تنصح ServBay المطورين بوضع المواقع تحت الدليل /Applications/ServBay/www
من أجل إدارة سهلة.
تثبيت Composer
يتم شحن ServBay مسبقًا مع Composer، لذلك لا تحتاج إلى تثبيته بشكل منفصل.
إنشاء مشروع Slim
استخدم Composer لإنشاء مشروع Slim جديد:
bashcd /Applications/ServBay/www mkdir servbay-slim-app cd servbay-slim-app composer require slim/slim "^4.0" composer require slim/psr7 -W
1
2
3
4
5الدخول إلى دليل المشروع
ادخل إلى دليل مشروع Slim الذي تم إنشاؤه حديثًا:
bashcd /Applications/ServBay/www/servbay-slim-app
1
تهيئة التكوين
إنشاء ملف الدخول الرئيسي
في دليل الجذر للمشروع، أنشئ ملف
public/index.php
وأضف الكود التالي:php<?php require __DIR__ . '/../vendor/autoload.php'; use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; use Slim\Factory\AppFactory; $app = AppFactory::create(); $app->get('/', function (Request $request, Response $response, $args) { $response->getBody()->write("Hello ServBay!"); return $response; }); $app->run();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
إعداد خادم الويب
استخدام ميزة "المضيف" في ServBay للوصول إلى مشروع Slim عبر خادم الويب. في إعدادات "المضيف" في ServBay، أضف مضيفًا جديدًا:
- الاسم:
My First Slim Dev Site
- الدومين:
servbay-slim-test.local
- نوع الموقع:
PHP
- إصدار PHP: اختر
8.3
- دليل الجذر للموقع:
/Applications/ServBay/www/servbay-slim-app/public
للحصول على خطوات الإعداد بالتفصيل، راجع إضافة أول موقع على الويب.
أضف الكود النموذجي
في ملف public/index.php
أضف الكود التالي لإظهار "Hello ServBay!":
$app->get('/', function (Request $request, Response $response, $args) {
$response->getBody()->write("Hello ServBay!");
return $response;
});
2
3
4
زيارة الموقع
افتح المتصفح وزر https://servbay-slim-test.local
، سترى صفحة تعرض "Hello ServBay!".
مثال على قواعد البيانات NoSQL
مثال Memcached
تثبيت امتداد Memcached
يتم شحن ServBay مسبقًا بامتداد Memcached، لذلك لست بحاجة إلى تثبيته.
تكوين Memcached
أضف اعتماد Memcached في ملف
composer.json
:json{ "require": { "slim/slim": "^4.0", "memcached/memcached": "^3.1" } }
1
2
3
4
5
6ثم شغل
composer update
لتثبيت الاعتمادات.تكوين التوجيه
في ملف
public/index.php
أضف الكود التالي:php$app->get('/memcached', function (Request $request, Response $response, $args) { $memcached = new Memcached(); $memcached->addServer('127.0.0.1', 11211); $cacheKey = 'my_cache_key'; $cachedData = $memcached->get($cacheKey); if ($cachedData === false) { $cachedData = 'Hello Memcached!'; $memcached->set($cacheKey, $cachedData); } $response->getBody()->write($cachedData); return $response; });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15استخدام Memcached
افتح المتصفح وزر
https://servbay-slim-test.local/memcached
مثال Redis
تثبيت امتداد Redis
يتم شحن ServBay مسبقًا بامتداد Redis، لذلك لست بحاجة إلى تثبيته.
تكوين Redis
أضف اعتماد Redis في ملف
composer.json
:json{ "require": { "slim/slim": "^4.0", "predis/predis": "^1.1" } }
1
2
3
4
5
6ثم شغل
composer update
لتثبيت الاعتمادات.تكوين التوجيه
في ملف
public/index.php
أضف الكود التالي:php$app->get('/redis', function (Request $request, Response $response, $args) { $redis = new Predis\Client([ 'scheme' => 'tcp', 'host' => '127.0.0.1', 'port' => 6379, ]); $cacheKey = 'my_cache_key'; $cachedData = $redis->get($cacheKey); if ($cachedData === null) { $cachedData = 'Hello Redis!'; $redis->set($cacheKey, $cachedData); } $response->getBody()->write($cachedData); return $response; });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18استخدام Redis
افتح المتصفح وزر
https://servbay-slim-test.local/redis
مثال على قواعد البيانات العلائقية
إنشاء هيكل قاعدة البيانات وملف الهجرة
إنشاء ملف الهجرة
استخدم Phinx لإنشاء ملف الهجرة:
bashcomposer require robmorgan/phinx vendor/bin/phinx init
1
2تحرير ملف الهجرة
في دليل
db/migrations
أنشئ ملف هجرة جديد وقم بتحريره لتحديد بنية جدول قاعدة البيانات:phpuse Phinx\Migration\AbstractMigration; class CreateUsersTable extends AbstractMigration { public function change() { $table = $this->table('users'); $table->addColumn('name', 'string') ->addColumn('email', 'string', ['unique' => true]) ->create(); } }
1
2
3
4
5
6
7
8
9
10
11
12تشغيل الهجرة
استخدم أمر Phinx لتشغيل الهجرة وإنشاء جدول قاعدة البيانات:
bashvendor/bin/phinx migrate
1
مثال MySQL
تكوين MySQL
أضف اعتماد MySQL في ملف
composer.json
:json{ "require": { "slim/slim": "^4.0", "illuminate/database": "^8.0" } }
1
2
3
4
5
6ثم شغل
composer update
لتثبيت الاعتمادات.تكوين التوجيه
في ملف
public/index.php
أضف الكود التالي:phpuse Illuminate\Database\Capsule\Manager as Capsule; $capsule = new Capsule; $capsule->addConnection([ 'driver' => 'mysql', 'host' => '127.0.0.1', 'database' => 'servbay_slim_app', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ]); $capsule->setAsGlobal(); $capsule->bootEloquent(); $app->get('/mysql-add', function (Request $request, Response $response, $args) { $user = Capsule::table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]' ]); $response->getBody()->write('User added'); return $response; }); $app->get('/mysql', function (Request $request, Response $response, $args) { $users = Capsule::table('users')->get(); $response->getBody()->write($users->toJson()); return $response; });
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إضافة بيانات المستخدم
افتح المتصفح وزر
https://servbay-slim-test.local/mysql-add
وhttps://servbay-slim-test.local/mysql
مثال PostgreSQL
تكوين PostgreSQL
أضف اعتماد PostgreSQL في ملف
composer.json
:json{ "require": { "slim/slim": "^4.0", "illuminate/database": "^8.0" } }
1
2
3
4
5
6ثم شغل
composer update
لتثبيت الاعتمادات.تكوين التوجيه
في ملف
public/index.php
أضف الكود التالي:phpuse Illuminate\Database\Capsule\Manager as Capsule; $capsule = new Capsule; $capsule->addConnection([ 'driver' => 'pgsql', 'host' => '127.0.0.1', 'database' => 'servbay_slim_app', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', 'prefix' => '', 'schema' => 'public', ]); $capsule->setAsGlobal(); $capsule->bootEloquent(); $app->get('/pgsql-add', function (Request $request, Response $response, $args) { $user = Capsule::table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]' ]); $response->getBody()->write('User added'); return $response; }); $app->get('/pgsql', function (Request $request, Response $response, $args) { $users = Capsule::table('users')->get(); $response->getBody()->write($users->toJson()); return $response; });
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إضافة بيانات المستخدم
افتح المتصفح وزر
https://servbay-slim-test.local/pgsql-add
وhttps://servbay-slim-test.local/pgsql
من خلال هذه الخطوات، لقد قمت بإنشاء وتشغيل مشروع Slim بنجاح، واستخدام الميزات التي توفرها ServBay لإدارة الوصول إلى مشروعك، مع الربط بين قواعد بيانات متعددة واستعلام البيانات.