إنشاء وتشغيل مشروع ThinkPHP 8
ما هو ThinkPHP؟
ThinkPHP هو إطار عمل ويب PHP مفتوح المصدر تم إنشاؤه بواسطة مطورين صينيين. يهدف إلى توفير مجموعة أدوات بسيطة وفعالة للمطورين لبناء تطبيقات ويب حديثة. يوفر ThinkPHP ميزات غنية مثل التوجيه، الجلسات، التخزين المؤقت، والمصادقة، مما يبسط المهام الشائعة لتطوير الويب.
الميزات والفوائد الرئيسية لـ ThinkPHP
- البساطة والكفاءة: يوفر ThinkPHP كتابة كود بسيطة وفعالة، مما يجعل الكود أكثر قابلية للقراءة والصيانة.
- مجموعة ميزات غنية: تشمل التوجيه، المصادقة، إدارة الجلسات والتخزين المؤقت، مما يبسط أعمال التطوير بشكل كبير.
- ORM قوية: توفر ThinkPHP قدرات قوية للتعامل مع قواعد البيانات بسهولة.
- تصميم معياري: يتيح التكامل السهل مع المكتبات والإضافات الخارجية باستخدام مدير الحزم Composer.
- دعم مجتمعي قوي: يمتاز بمجتمع كبير من المطورين ونظام بيئي غني.
يمكن لـ ThinkPHP مساعدة المطورين في بناء تطبيقات ويب عالية الجودة وواجهات برمجة تطبيقات بسرعة، وهو مناسب للمشاريع من جميع الأحجام من تطبيقات صغيرة وحتى أنظمة على مستوى المؤسسات الكبيرة.
إنشاء وتشغيل مشروع ThinkPHP 8 باستخدام ServBay
في هذه المقالة، سنستخدم البيئة المقدمة من ServBay لإنشاء وتشغيل مشروع ThinkPHP 8. سنستفيد من ميزة "المضيف" لتكوين خادم ويب وإتاحة الوصول إلى المشروع عبر إعدادات بسيطة.
ملاحظة: إذا كنت مستخدمًا سابقًا لـ NGINX أو Apache
يستخدم ServBay بشكل افتراضي خادم الويب Caddy. يوجد بعض التغييرات الرئيسية التي يجب على المستخدمين الذين يهاجرون من NGINX و Apache ملاحظتها:
تكوين Caddy
يأتي ServBay مزودًا بـ Caddy وقد تم تحسين التكوين الافتراضي واختباره بالفعل. يمكن للمطورين إدارة المواقع عبر ميزة "المضيف" دون الحاجة إلى تعديل ملفات تكوين Caddy يدويًا.
قواعد Rewrite و .htaccess
في NGINX و Apache، يحتاج المطورون عادةً إلى كتابة قواعد Rewrite وملفات .htaccess يدويًا لمعالجة إعادة كتابة الروابط والإعدادات الأخرى. ومع ذلك، يأتي ServBay مجهزًا بالفعل بقواعد Caddy، وبالتالي لا يحتاج المطورون لكتابة هذه القواعد بأنفسهم إلا إذا كان لديهم احتياجات خاصة.
لمعرفة المزيد
لمزيد من المعلومات، يُنصح بقراءة Rewrite و htaccess، كيفية نقل موقع Apache إلى ServBay، كيفية نقل موقع NGINX إلى ServBay.
إنشاء مشروع ThinkPHP
TIP
تنصح ServBay بوضع المواقع في الدليل /Applications/ServBay/www
لسهولة الإدارة.
تثبيت Composer
يأتي ServBay مجهزًا بـ Composer مثبت مسبقًا، ولا حاجة لتثبيته بشكل منفصل.
إنشاء مشروع ThinkPHP
استخدم Composer لإنشاء مشروع ThinkPHP جديد:
bashcd /Applications/ServBay/www composer create-project topthink/think servbay-thinkphp-app
1
2الدخول إلى مجلد المشروع
ادخل إلى المجلد الخاص بالمشروع الجديد:
bashcd /Applications/ServBay/www/servbay-thinkphp-app
1
إعداد التكوين
تكوين متغيرات البيئة
قم بتكوين معلومات الاتصال بقاعدة البيانات والمتغيرات الأخرى في ملف
config/database.php
. تأكد من إعداد الإعدادات التالية بشكل صحيح:php'type' => 'mysql', 'hostname' => '127.0.0.1', 'database' => 'servbay_thinkphp_app', 'username' => 'root', 'password' => 'password', 'hostport' => '3306',
1
2
3
4
5
6
تكوين خادم الويب
DANGER
قواعد Rewrite في ThinkPHP تختلف بعض الشيء عن القواعد العامة، لذا قد تحتاج إلى تخصيص.
استخدم ميزة "المضيف" في ServBay للوصول إلى مشروع ThinkPHP عبر خادم الويب. في إعدادات "المضيف" في ServBay، اضف مضيف جديد:
- الاسم:
My First ThinkPHP Dev Site
- الدومين:
servbay-thinkphp-test.local
ثم في أعلى اليمين، انقر على تكوين مخصص
وأدخل المحتوى التالي:
encode zstd gzip
import set-log servbay-thinkphp-test.local
tls internal
@canonicalPath {
file {
try_files {path}/index.php
}
not path */
}
redir @canonicalPath {path}/ 308
root * /Applications/ServBay/www/servbay-thinkphp-app/public
route {
try_files {path} {path}/ /index.php?s={path}&{query}
php_fastcgi unix//Applications/ServBay/tmp/php-cgi-8.3.sock
}
file_server
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
TIP
إذا كنت بحاجة إلى إصدار مختلف من PHP، يرجى تعديل php-cgi-8.3.sock
إلى إصدار PHP المطلوب. وأيضًا يجب تعديل set-log
لتتوافق مع دومين الموقع.
للحصول على تفاصيل خطوات الإعداد، يُرجى قراءة إضافة أول موقع.
إضافة كود تجريبي
أضف الكود التالي إلى ملف route/app.php
لإظهار "Hello ServBay!":
Route::get('servbay', function () {
return 'Hello ServBay!';
});
2
3
زيارة الموقع
افتح المتصفح وزر https://servbay-thinkphp-test.local/servbay
، وسترى صفحة تعرض Hello ServBay!
.
مثال قاعدة بيانات NoSQL
مثال Memcached
تثبيت ملحق Memcached
ملحق Memcached مثبت مسبقًا في ServBay، ولا يحتاج إلى تثبيت إضافي.
تكوين Memcached
قم بتكوين معلومات الاتصال بـ Memcached في ملف
config/cache.php
:php'type' => 'memcached', 'host' => '127.0.0.1',
1
2استخدام Memcached
استخدم التخزين المؤقت في وحدة التحكم:
phpuse think\facade\Cache; Route::get('/memcached', function () { Cache::set('key', 'value', 600); return Cache::get('key'); });
1
2
3
4
5
6
مثال Redis
تثبيت ملحق Redis
ملحق Redis مثبت مسبقًا في ServBay، ولا يحتاج إلى تثبيت إضافي.
تكوين Redis
قم بتكوين معلومات الاتصال بـ Redis في ملف
config/cache.php
:php'type' => 'redis', 'host' => '127.0.0.1', 'port' => 6379, 'password' => '',
1
2
3
4استخدام Redis
استخدم التخزين المؤقت في وحدة التحكم:
phpuse think\facade\Cache; Route::get('/redis', function () { Cache::set('key', 'value'); return Cache::get('key'); });
1
2
3
4
5
6
مثال قاعدة بيانات علائقية
إنشاء بنية قاعدة البيانات وملفات الترحيل
تثبيت أداة ترحيل قواعد البيانات
قبل استخدام أداة الترحيل الخاصة بـ ThinkPHP، قم بتثبيتها:
bashcomposer require topthink/think-migration
1إنشاء ملف ترحيل
استخدم أداة سطر الأوامر الخاصة بـ ThinkPHP لإنشاء ملف ترحيل:
bashphp think migrate:create CreateUserTable
1تحرير ملف الترحيل
ابحث عن ملف الترحيل الجديد في مجلد
database/migrations
وقم بتحريره لتحديد بنية قاعدة البيانات:phppublic function up() { Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); }); }
1
2
3
4
5
6
7
8
9تشغيل الترحيل
استخدم أداة سطر الأوامر الخاصة بـ ThinkPHP لتشغيل الترحيل وإنشاء الجداول في قاعدة البيانات:
bashphp think migrate:run
1
مثال MySQL
تكوين MySQL
قم بتكوين معلومات الاتصال بـ MySQL في ملف
config/database.php
:php'type' => 'mysql', 'hostname' => '127.0.0.1', 'database' => 'servbay_thinkphp_app', 'username' => 'root', 'password' => 'password', 'hostport' => '3306',
1
2
3
4
5
6إضافة بيانات المستخدمين
أضف بيانات المستخدمين في وحدة التحكم:
phpuse think\Db; Route::get('/mysql-add', function () { Db::table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'User added'; });
1
2
3
4
5
6
7
8
9استخدام MySQL
استدعاء البيانات من قاعدة البيانات في وحدة التحكم:
phpuse think\Db; Route::get('/mysql', function () { $users = Db::table('users')->select(); return json($users); });
1
2
3
4
5
6
مثال PostgreSQL
تكوين PostgreSQL
قم بتكوين معلومات الاتصال بـ PostgreSQL في ملف
config/database.php
:php'type' => 'pgsql', 'hostname' => '127.0.0.1', 'database' => 'servbay_thinkphp_app', 'username' => 'root', 'password' => 'password', 'hostport' => '5432',
1
2
3
4
5
6إضافة بيانات المستخدمين
أضف بيانات المستخدمين في وحدة التحكم:
phpuse think\Db; Route::get('/pgsql-add', function () { Db::table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'User added'; });
1
2
3
4
5
6
7
8
9استخدام PostgreSQL
استدعاء البيانات من قاعدة البيانات في وحدة التحكم:
phpuse think\Db; Route::get('/pgsql', function () { $users = Db::table('users')->select(); return json($users); });
1
2
3
4
5
6
بتنفيذ الخطوات أعلاه، تكون قد نجحت في إنشاء وتشغيل مشروع ThinkPHP 8 واستخدام مميزات ServBay لإدارة والوصول إلى مشروعك، بالإضافة إلى الاتصال بقاعدة البيانات المتنوعة واستدعاء البيانات منها.