الجديد في Laravel 10: نظرة عميقة على آخر التحديثات والميزات

نشرت: 2023-01-25

بعد أكثر من عقد من تقديم إطار عمل Laravel الشائع جدًا ، هل تساءلت يومًا ، "ما الذي يمكن أن يقدمه Laravel أيضًا لمطوري PHP؟"

نظرًا لمدى تبسيطه بالفعل لتطوير PHP لكل من المطورين المبتدئين والمحترفين ، فقد يجادل البعض بأنه أفسد المطورين للاعتقاد بأن PHP هي أسهل لغة برمجة موجودة.

إذن ، هل لا يزال لدى Laravel المزيد من المفاجآت في المتجر لمطوري Laravel؟ أم أنها استنفدت كل الوسائل الممكنة لدعم مطوري PHP؟

حسنًا ، على الأقل ، نعلم أن لدى Laravel 10 الكثير ليقدمه. هذا ما سنكتشفه في هذه المقالة عندما نأخذك في رحلة عبر الميزات والإصلاحات والأساليب والحزم الجديدة في Laravel 10.

جدول إصدار Laravel

اعتاد فريق Laravel الأساسي على إصدار نسختين رئيسيتين سنويًا - واحد كل ستة أشهر.

ومع ذلك ، تم تغيير دورة الإصدار عندما أعلن تايلور أوتويل ، مبتكر Laravel ، أنه سيتم إطلاق إصدار رئيسي واحد الآن كل عام. مكّن هذا الفريق الأساسي والمجتمع من تكريس المزيد من الوقت والجهد لإصدار معين من إطار العمل وتقديم ميزات قوية جديدة دون إجراء أي تغييرات مفاجئة.

مع إصدار Laravel 9 في 8 فبراير 2022 ، يكون الجدول الزمني المتوقع للإصدار كما يلي:

  • Laravel 10 : 7 فبراير 2023
  • Laravel 11 : 6 فبراير 2024

بالإضافة إلى ذلك ، وفقًا لسياسة الدعم ، يتم تقديم إصلاحات الأخطاء لمدة 18 شهرًا وتحديثات الأمان لمدة عامين لجميع إصدارات Laravel.

فيما يلي إصلاحات الأخطاء المتوقعة وجدول تحديثات الأمان:

  • سيستمر Laravel 9 في الحصول على إصلاحات للأخطاء حتى 8 أغسطس 2023 وإصلاحات أمنية حتى 6 فبراير 2024.
  • سيحصل Laravel 10 على إصلاحات للأخطاء حتى 6 أغسطس 2024 وإصلاحات أمنية حتى 4 فبراير 2025.
  • من المتوقع أن يحصل Laravel 11 على إصلاحات للأخطاء حتى 4 أغسطس 2025 وإصلاحات أمنية حتى 2 فبراير 2026.

هل يجب عليك الترقية إلى Laravel 10؟

من المهم أن تتذكر أننا لا نحتاج دائمًا إلى ترقية إصدار Laravel الخاص بتطبيقنا إلى أحدث إصدار بمجرد طرح إصدار جديد.

Laravel هو إطار عمل مفتوح المصدر ، مما يعني أنه في كل مرة نقوم فيها بتثبيت مثيل Laravel جديد على جهازنا ، فإننا نمتلك قاعدة كود إطار العمل. هذا يعني أنه حتى إذا لم يعد إصدار إطار العمل الذي يستخدمه تطبيقنا مدعومًا ، فسيظل التطبيق يعمل ؛ علينا فقط أن نحافظ عليه بأنفسنا.

نتيجة لذلك ، يُقترح على نطاق واسع إعطاء الأولوية لاستقرار التطبيق على ترقيات إطار العمل.

باختصار ، يجب أن تفكر في الترقية إلى Laravel 10 عندما:

  • التطبيق مستقر بإصداره الحالي ويعمل بدون مشاكل.
  • يضيف الإصدار الجديد ميزة يتطلبها تطبيقك أو يصلح مشكلة يواجهها تطبيقك.
  • سيتم اختبار التطبيق جيدًا قبل إدخال تغييرات الترقية في الإنتاج.

تحديثات Laravel 10 الساخنة

شعار Laravel 10
صورة لشعار Laravel 10.

كما تعلم بالفعل ، لم يتم إصدار Laravel 10 بعد. ومع ذلك ، سنبقي هذه المقالة محدثة بجميع المعلومات الجديدة حول الإصدار المتوقع. لذلك ، نوصي بوضع إشارة مرجعية على هذه الصفحة ومعاودة زيارتها من وقت لآخر.

الميزات والتحديثات الجديدة في Laravel 10

ليس هناك شك في أن الجزء الأكثر إثارة في أي إصدار جديد هو إضافة ميزات جديدة. لذلك بدون مزيد من اللغط ، لنبدأ بإلقاء نظرة على الميزات والتحديثات الجديدة في Laravel 10.

1. PHP 8.1: في قلب Laravel 10

PHP 8.1 هو الحد الأدنى المطلوب لإصدار PHP في Laravel 10. استنادًا إلى المقارنة بين فرع Laravel 9 وفرع إطار العمل الرئيسي على GitHub ، من المتوقع أن يتم تقديم بعض ميزات PHP 8.1 ، مثل خصائص readonly و array_is_list ، في Laravel 10 .

2. دعم PHP 8.2

تم إصدار PHP 8.2 في 8 ديسمبر 2022 ، قبل شهرين فقط من تاريخ إصدار Laravel 10. ومع ذلك ، لا ينبغي أن يمنعك هذا من استخدام ميزات PHP 8.2 ، لأنه بدون القيام بأي شيء إضافي ، سيكون Laravel 10 جاهزًا لـ PHP 8.2.

في الواقع ، يدعم نظام Laravel البيئي بأكمله ، بما في ذلك Forge و Vapor و Envoyer ، PHP 8.2 ويمكنك حتى استخدام PHP 8.2 مع Laravel 9. ما مدى روعة هذا ؟!

3. ترقية مجموعات Laravel Starter Kits

Laravel Breeze و Jetstream جاهزون لاستخدام Laravel 10 بمجرد إطلاقه. بالإضافة إلى ذلك ، تمت ترقيتهم بالفعل إلى Inertiajs 1 مع مفاجأة لـ JetStream للحصول على دعم كامل للوضع المظلم.

4. ترقية إصدار Predis

Predis هو عميل Redis قوي لـ PHP قد يساعدك في تحقيق أقصى استفادة من التخزين المؤقت لتوفير تجربة مستخدم رائعة. دعم Laravel سابقًا كلا الإصدارين 1 و 2 ، ولكن اعتبارًا من Laravel 10 ، لم يعد إطار العمل يدعم Predis 1.

بالرغم من أن وثائق Laravel تذكر Predis كحزمة للتفاعل مع Redis ، يمكنك أيضًا استخدام امتداد PHP الرسمي. يوفر هذا الامتداد واجهة برمجة تطبيقات للتواصل مع خوادم Redis.

5. بيانات النوع الأصلي

اعتاد Laravel استخدام DocBlocks في الكود الهيكلي لتوضيح ما يفعله جزء من الكود وأنواع المعلمات أو الاستجابات المتوقعة. ومع ذلك ، بفضل تصريحات النوع الأصلي في Laravel 10 ، سيتغير هذا.

أفضل طريقة لشرح هذا التغيير هي باستخدام مثال بسيط. بدلاً من وظيفة تبدو كالتالي:

 /** * Determine whether the user can create models. * * @param \{{ namespacedUserModel }} $user * @return \Illuminate\Auth\Access\Response|bool */ public function create({{ user }} $user) { // }

... سيبدو هكذا بدلاً من ذلك:

 /** * Determine whether the user can create models. */ public function create({{ user }} $user): bool { // }

هذا التغيير هو فقط لصالح تجربة المطور ، حيث ستعرف IDEs شكل المعلمة والاستجابة المتوقعة. سيوفر وضوحًا أفضل للنوع عندما لا يكون ذلك ممكنًا من خلال أنواع PHP الأصلية. ومن ثم ، سيساعد محرري الكود على أداء أفضل مع ميزات الإكمال التلقائي.

6. جميع قواعد التحقق من الصحة Invokable بشكل افتراضي

إذا كنت تريد إنشاء قاعدة تحقق قابلة للاستدعاء في Laravel 9 ، فستحتاج إلى إضافة علامة --invokable بعد الأمر الحرفي. لم يعد هذا ضروريًا لأن جميع قواعد Laravel 10 قابلة للاستدعاء افتراضيًا. لذلك ، يمكنك تشغيل الأمر التالي لإنشاء قاعدة قابلة للاستدعاء جديدة في Laravel 10:

 php artisan make:rule CustomRule

7. دعم تعديل العمود الأصلي

في محاولة لإزالة الحاجة إلى حزمة doctrine/dbal عند استخدام change() لتعديل الأعمدة ، تأتي ميزة جديدة إلى Laravel 10. ستسمح هذه الميزة للمطورين باستخدام طريقة change() وتعديل الأعمدة في MySQL و PostgreSQL و SQL Server دون الحاجة إلى حزم إضافية. يعد هذا تغييرًا مهمًا ومحفوفًا بالمخاطر ، لكننا نعتقد أنه مفيد لأنه سيبعد الحاجة إلى حزمة إضافية.

للحصول على فهم أفضل للميزة الجديدة ، راجع المثال أدناه:

 $table->integer('user_balance')->unsigned()->default(0)->comment('balance'); // `user_balance` is an integer, unsigned, defaults to '0', and column comment is 'balance'

الآن ، نفترض أن لدينا عمودًا لـ user_balance ونريد تغيير نوعه. بدءًا من Laravel 10 ، يمكننا ببساطة القيام بذلك:

 $table->bigInteger('user_balance')->change(); // This will change `user_balance` to bigInteger instead of just integer

سيؤدي الرمز أعلاه إلى تغيير نوع العمود بنجاح ، ولكنه سيسقط أيضًا UNSIGNED و DEFAULT و COMMENT . لذلك ، من المهم تذكر إضافة جميع السمات عند تغيير نوع العمود:

 $table->bigInteger('user_balance')->unsigned()->default(0)->comment('balance')->change();

في حالة وجود اتصالات متعددة لقاعدة البيانات وقمت بالفعل بتثبيت doctrine/dbal ، يوصى باستدعاء طريقة Schema::useNativeSchemaOperationsIfPossible() ضمن طريقة boot في App\Providers\AppServiceProvider لتتمكن من استخدام عمليات المخطط الأصلية واستخدامها العمليات الأصلية قبل الاعتماد على الحزمة (SQLite ، على سبيل المثال ، لا تدعم هذا بعد):

 use IlluminateSupportFacadesSchema; class AppServiceProvider extends ServiceProvider { public function boot() { Schema::useNativeSchemaOperationsIfPossible(); } }

8. نوع العمود Native Retrieval

ميزة أخرى جديرة بالملاحظة في Laravel 10 هي القدرة على استخدام طريقة Schema::getColumnType دون الحاجة إلى الاعتماد على حزمة doctrine/dbal . نستخدم حاليًا Schema::getColumnType مع doctrine/dbal للحصول على نوع العمود. doctrine/dbal بتعيين كل نوع من أنواع الأعمدة الأصلية إلى doctrine/dbal ، ولا يدعم العديد من أنواع الأعمدة التي يستخدمها Laravel عبر قواعد البيانات المختلفة.

في Laravel 10 من ناحية أخرى ، Schema::getColumnType الجديد نوع العمود الفعلي بدلاً من doctrine/dbal . كما أنه يمكّنك من كتابة اختبارات التكامل لميزة تعديل العمود الأصلي الجديدة. يمكنك استخدام هذه الميزة للحصول على اسم نوع البيانات أو تعريف النوع بالكامل للعمود المحدد:

 Schema::getColumnType('products', 'price'); // decimal

9. خوارزمية تجزئة أسرع

xxHash هي خوارزمية تجزئة سريعة بشكل لا يصدق. إنه يتميز بالعشوائية والتشتت الرائع للإخراج ، فضلاً عن التفرد لتقليل الاصطدامات. نظرًا لأن PHP 8.1 يوفر دعمًا لـ xxh128 ، ويعمل Laravel 10 على PHP 8.1 ، فإن وجود خوارزمية تجزئة موثوقة في Laravel 10 يعد أمرًا مثاليًا.

تجدر الإشارة إلى أن تايلور أبرز أثناء مراجعته لهذا التغيير أن بعض حزم الجهات الخارجية قد تعتمد على أن تكون أسماء الملفات بالتنسيق الدقيق مثل تجزئة SHA-1 ، وهي الخوارزمية التي يستخدمها Laravel للتجزئة. لذلك ، إذا كنت تخطط للترقية إلى Laravel 10 ، فسيكون من الحكمة إعادة التحقق من ذلك في أي حزم خارجية تستخدمها في تطبيقك.

10. whereExists () طريقة دعم Eloquent Builder

حاليًا ، يتطلب استخدام whereExists() تكوين الاستعلام المتداخل باستخدام الإغلاق. لحسن الحظ ، مع Laravel 10 ، أصبح من الممكن الآن تضمين Eloquent Builder كاستعلام متداخل. يتيح استخدام أساليب الإنشاء المخصصة ونطاقات النماذج وما إلى ذلك.

على سبيل المثال ، عادةً ما نقوم بذلك إذا أردنا استخدام whereExists() :

 Order::whereExists(function ($query) { $query->from('products')->whereColumn('products.order_id', 'orders.id'); });

باستخدام Laravel 10 ، يمكننا فعل هذا فقط بدلاً من ذلك:

 Order::whereExists( Product::whereColumn('products.order_id', 'orders.id') );

11. حريصة على تحميل الأمثل

إحدى الميزات الجديدة المثيرة للاهتمام في Laravel 10 هي تحسين التحميل عندما لا يكون هناك أي مفاتيح ليتم تحميلها. يعد هذا التغيير إصلاحًا أكثر من كونه ميزة نظرًا لأنه يعالج مشكلة حالية تؤدي فيها علاقات التحميل الحثيث إلى تنفيذ عدد كبير من الاستعلامات المستحيلة.

حاليًا عندما يتم تحميل علاقات تحميل لا تحتوي على أي مفاتيح ، سيظل Laravel ينفذ استعلامًا مشابهًا لهذا الاستعلام select \* from `table_name` where 0 = 1 . مع ذلك ، يتحقق تحديث Laravel 10 الجديد للتحقق مما إذا كانت هناك أي مفاتيح متاحة في المقام الأول ، وإذا لم يكن الأمر كذلك ، فإنه يوفر مجموعة فارغة ، مما يلغي الحاجة إلى استعلامات قاعدة البيانات غير الضرورية.

الطرق والحزم المهملة في Laravel 10

Laravel 10 يقول وداعًا لـ PHP 8.0

سيسقط إطار عمل Laravel دعم PHP 8.0 في Laravel 10. وبالتالي ، إذا كنت تخطط لترقية تطبيقك إلى Laravel 10 ، يجب عليك أولاً تحديث إصدار PHP إلى PHP 8.1 أو PHP 8.2.

طرق إزالة الموقوف

يمكننا أن نرى أن فريق Laravel core يقوم بإزالة الطرق المهملة في Laravel 9 من فرع Laravel 10. نتوقع أن يقوم الفريق بتحديث دليل ترقية التوثيق ليشمل جميع الطرق والحزم المهملة بمجرد إصدار Laravel 10.

إذا كنت ستقوم بترحيل مشروع حالي إلى Laravel 10 ، فيجب إعادة كتابة أي كود يستخدم طريقة مهملة بطريقة جديدة لتحقيق نفس النتيجة.

فيما يلي قائمة بجميع عمليات الإهمال والحذف التي وجدناها أثناء مقارنة Laravel 9 بالفرع الرئيسي:

  • Route::home (مهملة في Laravel 9)
  • الوظائف والأساليب المهملة حول dispatchNow . هذا لتشجيع المطورين على استخدام dispatchSync وهي الطريقة الوحيدة المدعومة للإرسال الفوري.
  • getBaseQuery لأنه يحتوي على مكافئ toBase
  • فئة MaintenanceModeException التي لم تعد مستخدمة
  • سمة MocksApplicationServices
  • طريقة Mail::failures المزيفة للبريد
  • خاصية $dates المتوقفة ، يوصى باستخدام $casts بدلاً من ذلك
  • طريقة assertTimesSent()
  • انخفض الدعم لـ Predis 1 doctrine/dbal 2
  • جميع عمليات الإهمال ذات الصلة في doctrine/dbal منذ إسقاط Laravel دعم الإصدار 2

كيفية تثبيت Laravel 10

Laravel 10 متاح الآن بالفعل لتقوم برحلة واختبار ميزاته. تقوم العلامة –dev في مثبت Laravel بتثبيت الفرع الرئيسي من مستودع laravel/laravel . كل ما عليك فعله هو تشغيل هذا الأمر في جهازك الطرفي:

 laravel new example-kinsta-app --dev

أو ، إذا كنت تفضل استخدام Composer:

 composer create-project --prefer-dist laravel/laravel example-kinsta-app dev-master

لفهم أمر Composer بشكل أفضل ، إليك شرح سريع:

  • laravel / laravel : الحزمة الخاصة بتثبيت Laravel
  • example-kinsta-app : الدليل الجديد لمشروعك الجديد (يمكن تغييره)
  • dev-master : الإصدار التالي من Laravel (في هذه الحالة ، Laravel 10)

بعد تثبيت Laravel 10 ، يمكنك تأكيد الإصدار بالانتقال إلى الدليل الجديد example-kinsta-app وتشغيل الأمر الحرفي:

 $ php artisan --version Laravel Framework 10.x-dev

كيفية ترقية مشروع إلى Laravel 10

هل تميل إلى الترقية إلى Laravel 10؟ يعمل فريق Laravel الأساسي بجد على التوثيق لتوفير دليل ترقية سلس ومباشر مع تغطية كل تغيير محتمل. لا تتردد في مراجعة دليل ترقية Laravel 10 ، حيث أن بعض المعلومات حول عملية الترقية متوفرة الآن.

يجب أيضًا أن تراقب Laravel Shift بمجرد إصدار Laravel 10. يوفر طريقة بسيطة وآلية لترقية إصدار Laravel الخاص بك.

بالإضافة إلى توثيق Laravel و Laravel Shift ، سننشر في Kinsta دليل ترقية شامل مع أمثلة من العالم الحقيقي. لذا ، لا تنسَ وضع إشارة مرجعية على هذه الصفحة والعودة إليها بمجرد إصدار Laravel 10.

كيفية نشر مشاريع Laravel 10

لا ينبغي أن يكون نشر Laravel 10 مختلفًا تمامًا عن نشر مشروع Laravel 9. إليك ما نتوقعه قد تكون متطلبات الخادم:

  • PHP> = 8.1
  • ملحق BCMath PHP
  • ملحق Ctype PHP
  • ملحق cURL PHP
  • امتداد DOM PHP
  • ملحق Fileinfo PHP
  • ملحق JSON PHP
  • ملحق mbstring PHP
  • ملحق OpenSSL PHP
  • ملحق PCRE PHP
  • ملحق PDO PHP
  • ملحق Tokenizer PHP
  • ملحق XML PHP

يمكنك نشر مشروع Laravel 10 واستضافته على Kinsta في غضون دقائق نظرًا لأن Laravel هو واحد من قائمة طويلة من الأطر المدعومة للتطبيقات المستضافة.

نشر Laravel 10 على Kinsta: دليل خطوة بخطوة

هناك العديد من الفوائد لاستضافة ونشر تطبيقاتك على Kinsta ، بما في ذلك عدم الاضطرار إلى الاهتمام بتكوين النشر.

يوفر Kinsta أداة سهلة الاستخدام لكنها قوية لنشر التطبيقات والاتصال بقواعد البيانات ومراقبة الأداء المباشر. تُعرف هذه الأداة باسم MyKinsta ، وفي هذا القسم ، سنرشدك خلال الخطوات لنشر تطبيق Laravel 10 باستخدامه.

1. تطبيق Laravel 10

الصفحة الرئيسية لتطبيق Laravel 10
الصفحة الرئيسية لتطبيق Laravel 10 المنشور على Kinsta.

بافتراض أن لديك تطبيق Laravel 10 محليًا ، نحتاج إلى التأكد من توفر مستودع جيثب. سنستخدم هذا المستودع لنشر التطبيق لاحقًا.

يمكنك تضمين ملف .htaccess في الدليل الجذر لتطبيقك الذي يحتوي على ما يلي:

 <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^(.*)$ public/$1 [L] </IfModule>

بالنسبة إلى Laravel ، يعيد هذا توجيه جميع الطلبات إلى public / index.php. ومع ذلك ، إذا لزم الأمر ، يمكنك تحديث هذا الأمر أثناء إضافة التطبيق الخاص بك ( إعداد خطوة العمليات الخاصة بك ) أو بعد النشر في صفحة العمليات الخاصة بالتطبيق. يمكنك استخدام:

  • heroku-php-apache2 /public
  • php artisan serve --host 0.0.0.0 --port 8080

2. قم بتسجيل الدخول إلى MyKinsta

صفحة تسجيل الدخول إلى MyKinsta
لقطة شاشة لصفحة تسجيل الدخول إلى MyKinsta.

توجه إلى صفحة تسجيل الدخول إلى MyKinsta وأدخل عنوان بريدك الإلكتروني وكلمة المرور. إذا لم يكن لديك حساب بعد ، فيمكنك تسجيل حساب جديد والحصول على خصم 20 دولارًا على الشهر الأول من أي اشتراك في خطة التسعير.

3. تخويل Kinsta على GitHub

بمجرد تسجيل الدخول ، ستلاحظ أن لوحة القيادة بها 3 خيارات لإنشاء موقع WordPress أو إنشاء تطبيق أو إنشاء قاعدة بيانات. سنضغط على زر Connect GitHub للتكامل مع GitHub.

لوحة معلومات MyKinsta
لقطة شاشة للوحة تحكم MyKinsta.

بعد ذلك ، انقر فوق الزر متابعة مع GitHub . إذا لم تكن قد سجلت الدخول بالفعل إلى GitHub ، فسيظهر لك خيار تسجيل الدخول. وبعد ذلك يمكنك تفويض تطبيق Kinsta GitHub للوصول إلى حساب GitHub الخاص بك عن طريق تحديد تخويل Kinsta .

أخيرًا ، سيعيد GitHub توجيه متصفحك إلى MyKinsta لمواصلة إعداد التطبيق.

ربط MyKinsta بجيثب
لقطة شاشة لربط MyKinsta بـ GitHub.

بعد اتصالك بـ GitHub ، ستظهر لك نافذة Add Application المنبثقة / المشروطة ، والتي تحتوي على قائمة منسدلة لتحديد مستودع GitHub. انقر فوق حقل مستودع GitHub وحدد تحرير أذونات GitHub في القائمة المنسدلة.

إضافة تطبيق إلى MyKinsta
لقطة شاشة لإضافة تطبيق إلى MyKinsta.

سيؤدي هذا إلى فتح علامة تبويب جديدة في متصفحك إلى صفحة ويب GitHub حيث يمكنك اختيار البيانات التي يمكن لـ Kinsta الوصول إليها. بدلاً من تمكين الوصول إلى جميع المستودعات ، فكر في اختيار المستودعات التي تريد أن يستخدمها Kinsta فقط. انقر فوق تحديد المستودعات فقط ، واختر المستودع الذي ترغب في نشره.

تثبيت MyKinsta على جيثب
لقطة شاشة لتثبيت MyKinsta على GitHub.

بعد ذلك ، انقر فوق تثبيت ، وستكون جاهزًا تمامًا!

عندما تعود إلى MyKinsta وتنقر على حقل مستودع GitHub ، يجب أن يكون المستودع المعتمد مرئيًا. بالإضافة إلى ذلك ، يمكنك تحديد خانة الاختيار النشر التلقائي عند الالتزام لتمكين ميزة MyKinsta من النشر التلقائي لتطبيقك بمجرد إجراء أي تغييرات على مستودع GitHub.

تحديد فرع المستودع لـ MyKinsta
لقطة شاشة لاختيار فرع المستودع لـ MyKinsta.

4. أضف التفاصيل الأساسية للتطبيق

يمكنك الآن إعطاء التطبيق اسمًا سيتم استخدامه فقط في لوحة المعلومات والاختيار من بين 25 موقعًا لمركز البيانات ، مما يتيح لك وضع التطبيق الخاص بك في الموقع الجغرافي الأقرب للمستخدمين. إذا كنت بحاجة إلى مساعدة في تحديد مركز البيانات المثالي لتطبيقك ، فراجع دليلنا لاختيار موقع مركز البيانات المناسب.

إضافة تفاصيل التطبيق الأساسية
لقطة شاشة لإضافة تفاصيل التطبيق الأساسية.

5. أضف متغيرات البيئة

القسم التالي مخصص لإضافة متغيرات البيئة وأهم متغير هو APP_KEY .

إذا لم يكن لديك مفتاح في ملف .env بالفعل ، يمكنك إنشاء مفتاح باستخدام مولد مفاتيح Laravel عبر الإنترنت. بعد ذلك ، أدخل APP_KEY في حقل Key 1 وأدخل مفتاح التطبيق الذي تم إنشاؤه في حقل القيمة 1 .

أخيرًا ، حدد متاح أثناء وقت التشغيل ومتوفر أثناء عملية الإنشاء .

إضافة متغيرات env إلى تطبيق MyKinsta
لقطة شاشة لإضافة متغيرات env إلى تطبيق MyKinsta.

5. تكوين بيئة البناء

الشيء السحري هنا هو أنك لست مضطرًا لتهيئة أي شيء! يمكنك المتابعة بالنقر فوق الزر " متابعة " ، وفويلا! لقد أكملت تكوين البيئة المبنية. ومع ذلك ، إذا كنت ترغب في تحسين موارد الإنشاء لضمان سرعة البناء ، فيمكنك اختيار الخيار المفضل من حقل إنشاء الموارد .

يعد حقل Build path اختياريًا - يمكنك تركه فارغًا وسيستخدم MyKinsta المجلد الجذر.

بيئة بناء تطبيق MyKinsta
تكوين بيئة بناء التطبيق.

6. قم بإعداد العمليات وطريقة الدفع

بالنسبة لقسم الموارد ، املأ كل حقل بالمعلومات التالية:

  • اسم العملية: الاسم المعروض في قائمة عمليات التطبيق الخاص بك.
  • نوع العملية: اختر بعناية ، لأنه لا يمكن تغيير هذا بمجرد تعيينه. ومع ذلك ، يمكنك إضافة عمليات إضافية وتغييرها ، مثل وظيفة الخلفية ، في صفحة عمليات التطبيق بعد النشر.
  • أمر البدء: الأمر "ابدأ" لعمليتك (غير مطلوب).
  • حجم الحجرة: سعة الحجرة التي تتوقعها أنك ستحتاجها لعمليتك.
  • عدد المثيلات: عدد المثيلات لعمليتك (بحد أقصى 50).

لاحظ أنه يمكنك ببساطة النقر فوق متابعة دون ملء حقل أمر البدء ، حيث يكتشف Kinsta الأمر المطلوب تلقائيًا أثناء النشر الأول.

عملية إعداد تطبيق MyKinsta
لقطة شاشة لإعداد عملية التطبيق.

للخطوة الأخيرة ، راجع تكاليف الاستخدام الشهرية المحسوبة لتطبيقك ، ثم قم بتأكيد طريقة الدفع الخاصة بك. عند الانتهاء ، انقر فوق الزر تأكيد طريقة الدفع .

تأكيد تفاصيل الدفع لـ MyKinsta
لقطة شاشة لتأكيد تفاصيل الدفع.

وانت انتهيت! ستقوم Kinsta بكل العمل في الخلفية لخدمة تطبيقك.

تحميل عملية نشر التطبيق
لقطة شاشة لتحميل عملية نشر التطبيق.

بعد ذلك سيكون لديك حق الوصول إلى جميع تفاصيل عملية النشر ، بالإضافة إلى عنوان URL المؤقت للتطبيق المباشر ، والذي يمكنك استبداله لاحقًا بنطاقك الخاص.

نشر ناجح للتطبيق
نشر ناجح لتطبيق Laravel10 على MyKinsta.

تطبيق Laravel 10 الخاص بك موجود الآن على Kinsta ، ولكن ماذا لو كنت بحاجة إلى إجراء تغيير في الإنتاج؟ ماذا لو أردنا تغيير خاصية href لعلامة الارتساء؟ نظرًا لأننا قمنا بتنشيط ميزة النشر التلقائي عند الالتزام ، فسوف تكتشف MyKinsta أي تغييرات نجريها على الفرع المنشور وتقوم تلقائيًا بتحديث التطبيق المباشر وفقًا لذلك.

7. قم بتوصيل Laravel 10 بقاعدة بيانات MySQL

الآن بعد أن قمنا بنشر تطبيق Laravel 10 الخاص بنا ، يمكننا بسهولة إنشاء قاعدة بيانات وربطها بتطبيقنا. كل ما عليك فعله هو النقر على التطبيقات من قائمة التنقل على اليسار ، ثم إضافة خدمة وتحديد قاعدة البيانات .

إضافة قاعدة بيانات جديدة إلى MyKinsta
لقطة شاشة لإضافة قاعدة بيانات جديدة إلى MyKinsta.

بعد ملء جميع الحقول ، انقر فوق إنشاء قاعدة بيانات . سيؤدي ذلك إلى إنشاء قاعدة بيانات جديدة جاهزة للاتصالات الداخلية والخارجية. في السيناريو الخاص بنا ، نحتاج إلى اتصال داخلي بمشروع Laravel 10 الذي نشرناه.

لتحقيق ذلك ، كل ما عليك فعله هو النقر فوق إضافة تطبيق في قسم الاتصالات الداخلية وتحديد التطبيق الخاص بك. يمكنك التحقق من إضافة متغيرات البيئة إلى مربع اختيار التطبيق وسيقوم MyKinsta بملء جميع متغيرات .env التي يحتاجها تطبيقك.

ربط قاعدة البيانات بتطبيق Laravel 10
لقطة شاشة لتوصيل قاعدة البيانات بتطبيق Laravel 10.

مع ذلك ، يتم نشر تطبيق Laravel 10 الخاص بك وتوصيله بقاعدة بيانات.

كيفية المساهمة في Laravel 10

على الرغم من صيانة Laravel بواسطة فريق أساسي ، إلا أنه تم تطويره بنشاط بواسطة أكثر من 3000 متطوع متطوع.

هل تريد أن تكون أحد هؤلاء المساهمين وتساعد في تشكيل مستقبل Laravel؟ إذا أجبت بنعم ، فيمكنك مساعدة المطورين في جميع أنحاء العالم عن طريق إضافة ميزة جديدة أو إصلاح خطأ أو حتى إعادة كتابة جزء محير من الوثائق.

للمساهمة في Laravel 10 ، إليك ما عليك القيام به:

  1. توجه إلى مستودع GitHub في Laravel وتحقق من طلبات السحب الموسومة بـ [10.x] في العنوان. سيوفر لك هذا صورة واضحة لجميع طلبات السحب لـ Laravel 10. إذا كان أحد العلاقات العامة يعالج المساهمة التي كنت تنوي القيام بها ، فراجع ما إذا كان بإمكانك تحسينها.
  2. إذا لم تتم معالجة مساهمتك المخطط لها من قبل شخص آخر ، فيمكنك إنشاء علاقات عامة بنفسك.
  3. ليس كل شيء يستحق الإضافة إلى قاعدة بيانات الإطار. لذلك ، حاول فقط تنفيذ التحسينات التي سيكون من السهل الحفاظ عليها في المستقبل وستساعد الغالبية العظمى من مجتمع Laravel.
  4. تأكد من الالتزام بإرشادات مساهمة Laravel للحصول على فرصة أفضل لدمج تغييراتك مع إطار العمل.

سبب آخر يجعلك تحب Laravel 10 هو أنه يتيح لك ربح أموال مقابل مساهماتك من خلال عمليات البحث عن الحشرات! سننظر إلى هؤلاء بعد ذلك.

مسابقة البحث عن الحشرات في Laravel 10

مسابقة البحث عن حشرات Laravel 10
مسابقة البحث عن حشرات Laravel 10.

أعلن Laravel 10 عن مسابقة ممتازة يحصل فيها المساهم العشوائي على فرصة الفوز بمبلغ 1000 دولار.

ستكون هذه المسابقة الأولى من نوعها في تاريخ Laravel. تم تصميمه لتشجيع المجتمع على إيجاد وإصلاح الأخطاء الخفية في Laravel 10.

القواعد مباشرة:

  • فقط العروض التقديمية المقدمة إلى فرع 10.x laravel/framework هي المؤهلة.
  • سيتم النظر فقط في إصلاحات الأخطاء "الأصلية". لا يتم النظر في الميزات الجديدة وإعادة البناء وإصلاح الأخطاء المطبعية.
  • يجب دعم كل إصلاح للأخطاء باختبار.
  • سيتم تصنيف إصلاحات الأخطاء المقبولة على GitHub ، وسيتم الإعلان عن فائز عشوائي في نهاية المسابقة.

ستنتهي المسابقة عند إصدار أول نسخة مستقرة من Laravel 10. أي طلبات سحب تظل معلقة بحلول ذلك الوقت أو سيتم إرسالها بعد إصدار Laravel 10 ستكون غير مؤهلة.

ملخص

هذا ليس كل شيء لهذه المقالة! سيكون هناك المزيد من التغييرات حتى تاريخ الإصدار. ولكن في الوقت الحالي ، يبدو أن Laravel 10 واعد للغاية ، ونحن متحمسون لتغطية جميع الهدايا التي يقدمها لعالم PHP.

في غضون ذلك ، إذا كنت تبحث عن المزيد من الطرق لتحسين أداء تطبيق Laravel ، فقد تفكر في التبديل إلى مزود استضافة متميز. تعد حلول استضافة التطبيقات من Kinsta من بين الأسرع والأكثر أمانًا وأسهل استخدامًا في الصناعة ، وهي مصممة خصيصًا مع وضع المطورين في الاعتبار ، حيث تقدم تبسيط الإنتاج ودعم الخبراء على مدار الساعة طوال أيام الأسبوع من مطورينا المتمرسين.