إنشاء وتشغيل مشروع Laravel
ما هو Laravel؟
Laravel هو إطار عمل ويب PHP مفتوح المصدر أنشأه المطور Taylor Otwell. يهدف إلى تقديم مجموعة أدوات أنيقة للمطورين لبناء تطبيقات ويب حديثة. يوفر Laravel مجموعة واسعة من الميزات مثل التوجيه، الجلسات، التخزين المؤقت، التوثيق، وغيرها، مما يبسط المهام العامة لتطوير الويب.
الميزات الرئيسية والمزايا في Laravel
- بسيط وأنيق: يتميز Laravel بتركيبه البسيط الأنيق، مما يجعل الكود أكثر قابلية للقراءة والصيانة.
- مجموعة ميزات غنية: تتضمن التوجيه، التوثيق، إدارة الجلسات والتخزين المؤقت، مما يبسط العمل التطويري.
- ORM قوي: يوفر Eloquent ORM تنفيذًا بسيطًا لـ ActiveRecord، مما يسهل العمليات على قاعدة البيانات.
- تصميم نمطي: يسهل إدارة المكتبات والإضافات التابعة للجهات الخارجية عبر مدير الحزم Composer.
- دعم مجتمعي قوي: يمتلك مجتمع مطورين كبير ونظام بيئي غني.
يساعد Laravel المطورين في بناء تطبيقات ويب عالية الجودة وواجهات برمجة التطبيقات بسرعة، ويُستخدم في مشاريع بكل الأحجام من التطبيقات الصغيرة حتى الأنظمة المؤسسية الكبيرة.
استخدام ServBay لإنشاء وتشغيل مشروع Laravel
في هذه المقالة، سنستخدم بيئة PHP المقدمة من ServBay لإنشاء وتشغيل مشروع Laravel. سنستخدم وظيفة "استضافة" الخاصة بـ ServBay لإعداد خادم الويب وتكوين المشروع بسهولة.
انتباه: إذا كنت مستخدمًا سابقًا لـ NGINX أو Apache
يستخدم ServBay بشكل افتراضي خادم الويب Caddy. هناك بعض النقاط الرئيسية الواجب الانتباه إليها عند الانتقال من NGINX وApache إلى ServBay:
اعدادات Caddy
يحتوي ServBay مسبقًا على Caddy والإعدادات المحسنة بشكل افتراضي. يمكن للمطورين إدارة المواقع عبر وظيفة "استضافة" في ServBay دون الحاجة إلى تعديل ملفات إعدادات Caddy يدويًا.
قواعد إعادة الكتابة و .htaccess
في NGINX وApache، يحتاج المطورون عادةً إلى كتابة قواعد إعادة الكتابة وملفات .htaccess بأنفسهم. ولكن، تحتوي اعدادات Caddy في ServBay على قواعد مسبقة الإعداد ما لم تكن هناك حاجة خاصة لذلك.
المزيد من المعلومات
لمزيد من المعلومات، راجع: Rewrite و htaccess، كيفية نقل موقع Apache إلى ServBay، كيفية نقل موقع NGINX إلى ServBay.
إنشاء مشروع Laravel
TIP
يوصي ServBay المطورين بوضع مواقع الويب في الدليل /Applications/ServBay/www
لتسهيل الإدارة.
تثبيت Composer
يأتي ServBay مزوداً بـ Composer بشكل افتراضي، لذا لا توجد حاجة لتثبيته منفصلًا.
إنشاء مشروع Laravel
استخدم Composer لإنشاء مشروع Laravel جديد:
bashcd /Applications/ServBay/www mkdir servbay-laravel-app cd servbay-laravel-app composer create-project --prefer-dist laravel/laravel .
1
2
3
4الدخول إلى دليل المشروع
انتقل إلى الدليل الذي يحتوي على المشروع الجديد:
bashcd /Applications/ServBay/www/servbay-laravel-app
1
التهيئة الأولية
توليد مفتاح التطبيق
يحتاج Laravel إلى مفتاح تطبيق لضمان أمان جلسات المستخدم والبيانات الأخرى المشفرة. يمكن توليد مفتاح التطبيق باستخدام الأمر Artisan:
bashphp artisan key:generate
1تكوين متغيرات البيئة
قم بتكوين معلومات اتصال قاعدة البيانات والمتغيرات البيئة الأخرى في ملف
.env
. تأكد من إعداد التكوينات التالية بشكل صحيح:APP_NAME=Laravel APP_ENV=local APP_KEY=base64:... APP_DEBUG=true APP_URL=https://servbay-laravel-test.local LOG_CHANNEL=stack DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=servbay_laravel_app DB_USERNAME=root DB_PASSWORD=password
1
2
3
4
5
6
7
8
9
10
11
12
13
14
تكوين خادم الويب
باستخدام وظيفة "استضافة" في ServBay، يمكنك الوصول إلى مشروع Laravel عبر خادم الويب. في إعدادات "الاستضافة" في ServBay، قم بإضافة موقع جديد:
- الاسم:
My First Laravel Dev Site
- اسم المجال:
servbay-laravel-test.local
- نوع الموقع:
PHP
- إصدار PHP: اختر
8.3
- دليل الجذر للموقع:
/Applications/ServBay/www/servbay-laravel-app/public
لمزيد من التفاصيل حول خطوات الإعداد، راجع إضافة الموقع الأول.
أضف مثال كود
أضف الكود التالي في ملف routes/web.php
لتظهر عبارة "Hello ServBay!":
Route::get('/', function () {
return 'Hello ServBay!';
});
2
3
الوصول إلى الموقع
افتح المتصفح وزر https://servbay-laravel-test.local
وستظهر الصفحة التي تعرض Hello ServBay!
.
مثال NoSQL
مثال Memcached
تثبيت امتداد Memcached
يتم تضمين امتداد Memcached في ServBay بشكل مسبق، وليس هناك حاجة لتثبيته بشكل منفصل.
تهيئة Memcached
قم بتكوين معلومات اتصال Memcached في ملف
.env
:CACHE_STORE=memcached MEMCACHED_HOST=127.0.0.1
1
2استخدام Memcached
استخدام الكاش في المتحكم:
phpuse Illuminate\Support\Facades\Cache; Route::get('/memcached', function () { Cache::put('key', 'value', 600); return Cache::get('key'); });
1
2
3
4
5
6
مثال Redis
تثبيت امتداد Redis
يتم تضمين امتداد Redis في ServBay بشكل مسبق، وليس هناك حاجة لتثبيته بشكل منفصل.
تهيئة Redis
قم بتكوين معلومات اتصال Redis في ملف
.env
:CACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379
1
2
3
4استخدام Redis
استخدام الكاش في المتحكم:
phpuse Illuminate\Support\Facades\Redis; Route::get('/redis', function () { Redis::set('key', 'value'); return Redis::get('key'); });
1
2
3
4
5
6
مثال قواعد بيانات علائقية
إنشاء بنية قاعدة البيانات وملفات الهجرة
إنشاء ملف الهجرة
استخدم الأمر Artisan لإنشاء ملف الهجرة:
bashphp artisan make:migration create_accounts_table
1تعديل ملف الهجرة
ابحث عن ملف الهجرة الجديد في مجلد
database/migrations
وقم بتعديله لتعريف بنية جدول قاعدة البيانات:phppublic function up() { Schema::create('accounts', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); }); }
1
2
3
4
5
6
7
8
9تشغيل الهجرة
استخدم الأمر Artisan لتشغيل الهجرة وإنشاء جدول قاعدة البيانات:
bashphp artisan migrate
1
مثال MySQL
تكوين MySQL
قم بتكوين معلومات اتصال MySQL في ملف
.env
:DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=servbay_laravel_app DB_USERNAME=root DB_PASSWORD=password
1
2
3
4
5
6كتابة بيانات المستخدم
في المتحكم، قم بكتابة بيانات المستخدم:
phpuse Illuminate\Support\Facades\DB; Route::get('/mysql-add', function () { DB::table('accounts')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'Account added'; });
1
2
3
4
5
6
7
8
9استخدام MySQL
في المتحكم، قم بتنفيذ استعلامات على قاعدة البيانات:
phpuse Illuminate\Support\Facades\DB; Route::get('/mysql', function () { $users = DB::table('accounts')->get(); return $users; });
1
2
3
4
5
6
مثال PostgreSQL
تكوين PostgreSQL
قم بتكوين معلومات اتصال PostgreSQL في ملف
.env
:DB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 DB_DATABASE=servbay_laravel_app DB_USERNAME=root DB_PASSWORD=password
1
2
3
4
5
6كتابة بيانات المستخدم
في المتحكم، قم بكتابة بيانات المستخدم:
phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql-add', function () { DB::table('accounts')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'Account added'; });
1
2
3
4
5
6
7
8
9استخدام PostgreSQL
في المتحكم، قم بتنفيذ استعلامات على قاعدة البيانات:
phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql', function () { $users = DB::table('accounts')->get(); return $users; });
1
2
3
4
5
6
من خلال الخطوات الموضحة أعلاه، تكون قد أنشأت وشغلت مشروع Laravel بنجاح باستخدام الوظائف المقدمة من ServBay وأدرت مشروعك وأوصلته بعدة قواعد بيانات وسحبت البيانات.