إنشاء وتشغيل مشروع Yii 2
ما هو Yii 2؟
Yii 2 هو إطار عمل PHP عالي الأداء ومناسب لتطوير تطبيقات الويب الحديثة. يتبع نمط التصميم MVC (Model-View-Controller) ويوفر مجموعة غنية من الميزات والأدوات التي تمكّن المطورين من بناء تطبيقات ويب عالية الجودة بسرعة. يتميز Yii 2 بالكفاءة والمرونة والقابلية للتوسع، ويعد خيارًا مفضلًا للعديد من المطورين.
الميزات والفوائد الرئيسية لـ Yii 2
- أداء عالي: Yii 2 هو إطار عمل عالي الأداء ويمكنه التعامل مع الطلبات المتزامنة العديدة.
- قابلية التوسع: يوفر العديد من الوحدات والإضافات لتوسيع وتخصيص الوظائف.
- الأمان: يحتوي على ميزات أمان مدمجة مثل التحقق من الإدخال، تصفية الإخراج، حماية CSRF، وغيرها.
- سهولة الاستخدام: يوفر واجهة برمجية سهلة الاستخدام ووثائق غنية لتمكين المطورين من البدء بسرعة.
- دعم مجتمعي قوي: لديه مجتمع من المطورين النشطين والعديد من التوسعات الخارجية.
Yii 2 يمكن أن يساعد المطورين في بناء تطبيقات ويب عالية الأداء والجودة بسرعة، ومناسب لمشاريع من جميع الأحجام.
إنشاء وتشغيل مشروع Yii 2 باستخدام ServBay
في هذه المقالة، سنستخدم بيئة PHP التي يوفرها ServBay لإنشاء وتشغيل مشروع Yii 2. سنستفيد من ميزة الـ "Host" في ServBay لإعداد خادم ويب وتكوين الوصول إلى المشروع بسهولة.
ملاحظة: إذا كنت مستخدماً سابقاً لـ NGINX أو Apache
بشكل افتراضي، يستخدم ServBay خادم الويب Caddy. بالنسبة للمستخدمين الذين ينتقلون من NGINX و Apache إلى ServBay، هناك بعض التغييرات الرئيسية التي يجب ملاحظتها:
تكوين Caddy
ServBay يأتي مدمجًا مع Caddy، والتكوين الافتراضي له تم تحسينه واختباره مسبقًا. يمكن للمطورين إدارة المواقع عبر ميزة الـ "Host" في ServBay دون الحاجة إلى تعديل ملفات تكوين Caddy يدويًا.
قواعد إعادة الكتابة و .htaccess
في NGINX و Apache، عادةً ما يحتاج المطورون إلى كتابة قواعد إعادة الكتابة وملفات .htaccess يدويًا لمعالجة إعادة كتابة عناوين URL وتكوينات أخرى. ومع ذلك، في ServBay، تم تكوين قواعد Caddy افتراضيًا، لذا ما لم تكن هناك حاجة مخصصة، لا يلزم كتابة هذه القواعد يدويًا.
المزيد من المعلومات
للمزيد من المعلومات ذات الصلة، يرجى مراجعة Rewrite والأدلة وكيفية نقل موقع Apache إلى ServBay وكيفية نقل موقع NGINX إلى ServBay.
إنشاء مشروع Yii 2
TIP
يوصى ServBay بوضع المواقع في الدليل /Applications/ServBay/www
لتسهيل الإدارة.
تثبيت Composer
يأتي ServBay مع Composer مثبت مسبقًا، لذا ليست هناك حاجة لتثبيته بشكل منفصل.
إنشاء مشروع Yii 2
استخدم Composer لإنشاء نموذج تطبيق جديد لـ Yii 2:
bashcd /Applications/ServBay/www mkdir servbay-yii2-app cd servbay-yii2-app composer create-project --prefer-dist yiisoft/yii2-app-basic .
1
2
3
4الدخول إلى دليل المشروع
ادخل إلى دليل مشروع Yii 2 الجديد:
bashcd /Applications/ServBay/www/servbay-yii2-app
1
إعداد التكوين
تكوين اتصال قاعدة البيانات
في ملف
config/db.php
قم بتكوين معلومات اتصال قاعدة البيانات:phpreturn [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=127.0.0.1;dbname=servbay_yii2_app', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', ];
1
2
3
4
5
6
7تكوين ذاكرة التخزين المؤقت ومكون Redis
أضف تكوينات ذاكرة التخزين المؤقت ومكون Redis في ملف
config/web.php
:php'components' => [ 'cache' => [ 'class' => 'yii\caching\MemCache', 'servers' => [ [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100, ], ], ], 'redis' => [ 'class' => 'yii\redis\Connection', 'hostname' => '127.0.0.1', 'port' => 6379, 'database' => 0, ], // ... ],
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
تكوين خادم الويب
استخدم ميزة الـ "Host" في ServBay للوصول إلى مشروع Yii 2 عبر خادم الويب. في إعدادات الـ "Host" في ServBay، أضف مضيفًا جديدًا:
- الاسم:
My First Yii 2 Dev Site
- النطاق:
servbay-yii2-test.local
- نوع الموقع:
PHP
- إصدار PHP: اختر
8.3
- دليل الجذر للموقع:
/Applications/ServBay/www/servbay-yii2-app/web
لخطوات الإعداد التفصيلية، راجع إضافة أول موقع ويب.
إضافة كود مثال
في ملف controllers/SiteController.php
، أضف الكود التالي:
namespace app\controllers;
use Yii;
use yii\web\Controller;
use yii\web\Response;
class SiteController extends Controller
{
public function actionIndex()
{
return $this->render('index');
}
public function actionMemcached()
{
$cache = Yii::$app->cache;
$cache->set('key', 'Hello Memcached!', 60);
$value = $cache->get('key');
return $this->asText($value);
}
public function actionRedis()
{
$redis = Yii::$app->redis;
$redis->set('key', 'Hello Redis!');
$value = $redis->get('key');
return $this->asText($value);
}
public function actionMysqlAdd()
{
Yii::$app->db->createCommand()->insert('users', [
'name' => 'ServBay',
'email' => '[email protected]',
])->execute();
return $this->asText('User added');
}
public function actionMysql()
{
$users = Yii::$app->db->createCommand('SELECT * FROM users')->queryAll();
return $this->asJson($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
في ملف views/site/index.php
، أضف الكود التالي:
<?php
/* @var $this yii\web\View */
$this->title = 'My Yii2 Application';
?>
<div class="site-index">
<div class="jumbotron">
<h1>Congratulations!</h1>
<p class="lead">You have successfully created your Yii2 application.</p>
</div>
</div>
2
3
4
5
6
7
8
9
10
الوصول إلى الموقع
افتح المتصفح وقم بزيارة URL التالي:
https://servbay-yii2-test.local
: سترى صفحة الترحيب الافتراضية لـ Yii 2.
أمثلة على قواعد البيانات NoSQL
مثال على Memcached
تثبيت إضافة Memcached
في ServBay، تم تثبيت إضافة Memcached مسبقًا، لذلك لا حاجة لتثبيتها بشكل إضافي.
تكوين Memcached
في ملف
config/web.php
، قم بإضافة معلومات الاتصال بـ Memcached:php'components' => [ 'cache' => [ 'class' => 'yii\caching\MemCache', 'servers' => [ [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100, ], ], ], // ... ],
1
2
3
4
5
6
7
8
9
10
11
12
13استخدام Memcached
في وحدة التحكم، استخدم ذاكرة التخزين المؤقت:
phppublic function actionMemcached() { $cache = Yii::$app->cache; $cache->set('key', 'Hello Memcached!', 60); $value = $cache->get('key'); return $this->asText($value); }
1
2
3
4
5
6
7
مثال على Redis
تثبيت إضافة Redis
في ServBay، تم تثبيت إضافة Redis مسبقًا، لذلك لا حاجة لتثبيتها بشكل إضافي.
تكوين Redis
في ملف
config/web.php
، قم بإضافة معلومات الاتصال بـ Redis:php'components' => [ 'redis' => [ 'class' => 'yii\redis\Connection', 'hostname' => '127.0.0.1', 'port' => 6379, 'database' => 0, ], // ... ],
1
2
3
4
5
6
7
8
9استخدام Redis
في وحدة التحكم، استخدم ذاكرة التخزين المؤقت:
phppublic function actionRedis() { $redis = Yii::$app->redis; $redis->set('key', 'Hello Redis!'); $value = $redis->get('key'); return $this->asText($value); }
1
2
3
4
5
6
7
أمثلة على قواعد البيانات العلائقية
إنشاء بنية قاعدة البيانات وملفات الترحيل
إنشاء ملف الترحيل
استخدم أداة Gii في Yii 2 لإنشاء ملف ترحيل:
bashphp yii migrate/create create_users_table
1تحرير ملف الترحيل
في دليل
migrations
، اعثر على ملف الترحيل الجديد وقم بتحريره لتعريف بنية الجدول:phppublic function up() { $this->createTable('users', [ 'id' => $this->primaryKey(), 'name' => $this->string()->notNull(), 'email' => $this->string()->notNull()->unique(), 'created_at' => $this->timestamp()->defaultExpression('CURRENT_TIMESTAMP'), 'updated_at' => $this->timestamp()->defaultExpression('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'), ]); }
1
2
3
4
5
6
7
8
9
10تشغيل الترحيل
استخدم أمر الترحيل في Yii 2 لتشغيل الترحيل وإنشاء الجدول:
bashphp yii migrate
1
مثال على MySQL
تكوين MySQL
في ملف
config/db.php
، قم بإضافة معلومات الاتصال بـ MySQL:phpreturn [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=127.0.0.1;dbname=servbay_yii2_app', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', ];
1
2
3
4
5
6
7كتابة بيانات المستخدم
في وحدة التحكم، اكتب بيانات المستخدم:
phppublic function actionMysqlAdd() { Yii::$app->db->createCommand()->insert('users', [ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return $this->asText('User added'); }
1
2
3
4
5
6
7
8استخدام MySQL
في وحدة التحكم، قم باستدعاء قاعدة البيانات:
phppublic function actionMysql() { $users = Yii::$app->db->createCommand('SELECT * FROM users')->queryAll(); return $this->asJson($users); }
1
2
3
4
5
مثال على PostgreSQL
تكوين PostgreSQL
في ملف
config/db.php
، قم بإضافة معلومات الاتصال بـ PostgreSQL:phpreturn [ 'class' => 'yii\db\Connection', 'dsn' => 'pgsql:host=127.0.0.1;dbname=servbay_yii2_app', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', ];
1
2
3
4
5
6
7كتابة بيانات المستخدم
في وحدة التحكم، اكتب بيانات المستخدم:
phppublic function actionPgsqlAdd() { Yii::$app->db->createCommand()->insert('users', [ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return $this->asText('User added'); }
1
2
3
4
5
6
7
8استخدام PostgreSQL
في وحدة التحكم، قم باستدعاء قاعدة البيانات:
phppublic function actionPgsql() { $users = Yii::$app->db->createCommand('SELECT * FROM users')->queryAll(); return $this->asJson($users); }
1
2
3
4
5
باتباع هذه الخطوات، تكون قد أنشأت وشغلت مشروع Yii 2 بنجاح باستخدام ميزات ServBay لإدارة والوصول إلى المشروع، وكذلك الاتصال بأنواع قواعد بيانات متعددة واستدعاء البيانات. نأمل أن تساعدك هذه المقالة في البدء بسرعة مع Yii 2 وتطبيقها في مشاريعك الخاصة.