هذا الأسبوع، بالإضافة إلى مجموعة من إصلاحات الأخطاء، قمنا أيضًا بإجراء جزء من التدبير المنزلي في الكود الخاص بنا. ما يلي ثقيل جدًا من الناحية الفنية، لذا إذا لم تكن مطورًا، فاحمي عينيك واقرأ الأجزاء الأقل مللًا.
استخدام أوسع بكثير لسلاسل الصف
للتذكير، يأتي XenForo 2.3 معه دعمًا لاستخدام سلاسل فئة PHP الأصلية. على سبيل المثال، استخدمنا في الأصل "أسماء الفئات المختصرة" للإشارة إلى فئات معينة. على الرغم من سهولة كتابتها، إلا أنها تجعل إعادة هيكلة الفئات أمرًا صعبًا، وتحتاج إلى تعليقات مستند PHP هذه لتلميح لمحرري التعليمات البرمجية بالكائن الذي سيتم إرجاعه في النهاية في التعليمات البرمجية:
تفضيلنا للمضي قدمًا هو استخدام سلاسل الفئات:
نظرًا لأن PHP تفهم هذه السلاسل الخاصة بشكل أصلي، فإن المشكلات المتعلقة بتلميحات النوع لم تعد موجودة، ويصبح القيام بأشياء مثل إعادة تسمية الفئات أو نقل الفئات أمرًا تافهًا أكثر بكثير.
في جميع أنحاء كود XF الأساسي الآن، بدءًا من RC3، قمنا باستبدال غالبية الأسماء القصيرة للفئات القديمة بسلاسل فئة أصلية.
استيراد الفئات/تبسيط أسماء الفئات
في الواقع، تفضيلنا الأقوى للمضي قدمًا هو استخدام أسماء الفئات المبسطة، بدلاً من أسماء الفئات المؤهلة بالكامل. يبدو ذلك كالتالي:
لذا، الآن، عبر قاعدة التعليمات البرمجية، ومن خلال استخدام الأدوات الآلية مثل PHP CS Fixer، نقوم بتبسيط أسماء الفئات هذه، على غرار المثال أعلاه.
إعادة تسمية الفصول
دعونا ننظر إلى مثال آخر:
كيف يمكنك تبسيط كلا الأمرين عندما يكون الإصدار المبسط لكلا الفئتين هو
حسنًا، لا يمكنك ذلك، ليس حقًا. كان من الممكن أن يكون أحد الخيارات هو تسمية الاستيراد، على سبيل المثال.
لم يعجبنا هذا. كان من الصعب صيانتها باستمرار أو باستخدام الأدوات الآلية. لذا، بالطبع، قررنا أن نفعل شيئًا أكثر جذرية:
نعم، لقد قمنا بإعادة تسمية غالبية فصولنا. قررنا ترك فئات الكيانات بمفردها لأنها عادة ما تشير بشكل قانوني إلى شيء فعلي، لذلك يبدو أن كيان
ليس هذا فحسب، ولكن إذا كنت ترغب في إعادة تسمية الفصول الدراسية الخاصة بك في الوظائف الإضافية الخاصة بك بطريقة مماثلة، فستتمكن من القيام بذلك وسنتولى الاسم المستعار للفصل نيابةً عنك تلقائيًا. إذا كنت تريد الحفاظ على التوافق في الوظائف الإضافية الخاصة بك مع الإصدارات السابقة من XenForo، فإن الاحتفاظ بالأسماء القصيرة القديمة سيظل يعمل، حتى إذا قمت بإعادة تسمية فئاتك.
تغييرات أخرى
لقد أجرينا أيضًا بعض التغييرات الأخرى واسعة النطاق عبر الكود نتيجة لتشغيل PHP CS Fixer تلقائيًا. على العموم، لا يتغير هذا كثيرًا، ولكن إذا كنت من النوع الذي لديه ملفات XF في مستودع GitHub، فسترى الكثير من التغييرات، ولكن هذه في الغالب تحاول فقط جعل قاعدة التعليمات البرمجية الشاملة أسهل قليلاً في القراءة والمتابعة وأكثر اتساقًا بشكل عام.
لا يمكننا أن نضمن تمامًا عدم وجود أية مشكلات في التوافق، لذا نشجعكم جميعًا على أخذ وقتكم قبل الترقية إلى الإصدار المرشح 4. إذا كنت تقوم بتشغيل XF 2.3 على موقع إنتاج، فنوصي بإجراء ترقية تجريبية أولاً.
يمكن العثور على مزيد من التفاصيل المحددة بخصوص الأخطاء التي تم إصلاحها في هذا الإصدار في منتدى الأخطاء التي تم حلها.
إنه برنامج ما قبل الإصدار. إنه غير معتمد رسميًا.
لا نوصي بتشغيله على موقعك الرسمي.
يرجى تذكر أن هذا برنامج ما قبل الإصدار. يحتوي على أخطاء معروفة ووظائف غير كاملة. لا نوصي بتشغيل برنامج ما قبل الإصدار في بيئة العمل الرسمية، ويقتصر الدعم في الوقت الحالي على الأسئلة المطروحة هنا في منتديات المجتمع.
قد يتم تعطيل الاضافات والستايلات المخصصة بعد الترقية إلى 2.3. يجب عليك اختبار الاضافات الخاصة بك بدقة أو البحث عن التحديثات. كن حذرًا بشكل خاص مع الاضافات التي تغطي ميزات مشابهة لتلك التي تمت إضافتها إلى الإصدار 2.3؛ قد تتعارض هذه مع بيانات XenForo الأساسية. إذا تم العثور على تعارضات في البيانات، فسوف يلزم حلها في إصدار الاضافات الجديد أو عن طريق إزالة الاضافة قبل الترقية إلى الإصدار 2.3.
إذا اخترت تشغيل برنامج ما قبل الإصدار، تقع على عاتقك مسؤولية التأكد من عمل نسخة احتياطية من بياناتك. ننصحك بالقيام بذلك قبل محاولة الترقية. إذا كنت في شك، فقم دائمًا بإجراء ترقية اختبارية على نسخة من بيانات الإنتاج الخاصة بك.
يمكن الآن لجميع العملاء الذين لديهم تراخيص نشطة تنزيل الإصدار الجديد من منطقة العملاء.
تحميل XenForo 2.3.0 الإصدار المرشح 4 من منطقة العملاء المرخصة
إلى جانب إصدار XenForo 2.3.0 Release Candidate 1، نقوم أيضًا بإصدار إصدارات محدثة لكل من إضافاتنا الرسمية:
تحميل الإضافات الرسميةمن منطقة العملاء المرخصة
المتطلبات
وفيما يلي الحد الأدنى من المتطلبات:
تعليمات التثبيت والترقية
يمكنك ايجاد شورحات في معهد زين العربية لمعرفة كيفية الترقية او تثبيت نسخة من سكربت XenForo
يرجى تذكر أن هذا الإصدار. يحتوي على أخطاء معروفة ووظائف غير كاملة. لا نوصي أو ندعم تشغيل برامج ما قبل النشر في بيئة العمل الرسمية. يقتصر دعم الإصدارات المسبقة على الأسئلة الواردة هنا في منتديات المجتمع.
استخدام أوسع بكثير لسلاسل الصف
للتذكير، يأتي XenForo 2.3 معه دعمًا لاستخدام سلاسل فئة PHP الأصلية. على سبيل المثال، استخدمنا في الأصل "أسماء الفئات المختصرة" للإشارة إلى فئات معينة. على الرغم من سهولة كتابتها، إلا أنها تجعل إعادة هيكلة الفئات أمرًا صعبًا، وتحتاج إلى تعليقات مستند PHP هذه لتلميح لمحرري التعليمات البرمجية بالكائن الذي سيتم إرجاعه في النهاية في التعليمات البرمجية:
PHP:
/** @var \XF\Entity\User $user **/
$user = \XF::em()->create('XF:User');
تفضيلنا للمضي قدمًا هو استخدام سلاسل الفئات:
PHP:
$user = \XF::em()->create(\XF\Entity\User::class);
نظرًا لأن PHP تفهم هذه السلاسل الخاصة بشكل أصلي، فإن المشكلات المتعلقة بتلميحات النوع لم تعد موجودة، ويصبح القيام بأشياء مثل إعادة تسمية الفئات أو نقل الفئات أمرًا تافهًا أكثر بكثير.
في جميع أنحاء كود XF الأساسي الآن، بدءًا من RC3، قمنا باستبدال غالبية الأسماء القصيرة للفئات القديمة بسلاسل فئة أصلية.
استيراد الفئات/تبسيط أسماء الفئات
في الواقع، تفضيلنا الأقوى للمضي قدمًا هو استخدام أسماء الفئات المبسطة، بدلاً من أسماء الفئات المؤهلة بالكامل. يبدو ذلك كالتالي:
PHP:
use XF\Entity\User;
...
$user = \XF::em()->create(User::class);
لذا، الآن، عبر قاعدة التعليمات البرمجية، ومن خلال استخدام الأدوات الآلية مثل PHP CS Fixer، نقوم بتبسيط أسماء الفئات هذه، على غرار المثال أعلاه.
إعادة تسمية الفصول
دعونا ننظر إلى مثال آخر:
PHP:
$userRepo = \XF::repository(\XF\Repository\User::class);
$user = \XF::em()->create(\XF\Entity\User::class);
كيف يمكنك تبسيط كلا الأمرين عندما يكون الإصدار المبسط لكلا الفئتين هو
User::class
؟حسنًا، لا يمكنك ذلك، ليس حقًا. كان من الممكن أن يكون أحد الخيارات هو تسمية الاستيراد، على سبيل المثال.
PHP:
use XF\Entity\User as UserEntity;
use XF\Repository\User as UserRepository;
...
$userRepo = \XF::repository(UserRepository::class);
$user = \XF::em()->create(UserEntity::class);
لم يعجبنا هذا. كان من الصعب صيانتها باستمرار أو باستخدام الأدوات الآلية. لذا، بالطبع، قررنا أن نفعل شيئًا أكثر جذرية:
PHP:
use XF\Entity\User;
use XF\Repository\UserRepository;
$userRepo = \XF::repository(UserRepository::class);
$user = \XF::em()->create(User::class);
نعم، لقد قمنا بإعادة تسمية غالبية فصولنا. قررنا ترك فئات الكيانات بمفردها لأنها عادة ما تشير بشكل قانوني إلى شيء فعلي، لذلك يبدو أن كيان
user
الذي يحمل اسم المستخدم مناسب (وهذا نمط مشابه لأطر عمل PHP الأخرى). ولكن تم الآن إعادة تسمية العديد من الفئات الأخرى. تحتوي فئات Finder على لاحقة Finder
. تحتوي فئات المستودعات على لاحقةRepository
. تحتوي فئات وحدة التحكم على لاحقة Controller
. تحتوي فئات المكونات الإضافية لوحدة التحكم على لاحقة من Plugin
. فئات الخدمة لها لاحقة Service
. ومعظم فئات معالجات نوع المحتوى لدينا تحتوي على لاحقة Handler
. هذه ليست قائمة شاملة، ولكنك حصلت على الفكرة.Yikes! ماذا عن التوافق مع الإصدارات السابقة؟
لقد اهتمينا بذلك. لقد قمنا بتطوير نظام مستعار يجب أن يتعامل مع جميع أسماء الفئات هذه بطريقة عقلانية ومتوافقة مع الإصدارات السابقة. ما إذا كانت التعليمات البرمجية الخاصة بك مليئة حاليًا بالسلاسل القديمة، على سبيل المثال.XF:User
أو لقد انتقلت بالفعل إلى استخدام سلاسل الفئات، على سبيل المثال. \XF\Repository\User::class
، سيتم تغيير اسمها تلقائيًا إلى الفئة الجديدة، على سبيل المثال. \XF\Repository\UserRepository::class
. ستستمر الوظائف الإضافية وملحقات الفئات الموجودة في العمل كالمعتاد.ليس هذا فحسب، ولكن إذا كنت ترغب في إعادة تسمية الفصول الدراسية الخاصة بك في الوظائف الإضافية الخاصة بك بطريقة مماثلة، فستتمكن من القيام بذلك وسنتولى الاسم المستعار للفصل نيابةً عنك تلقائيًا. إذا كنت تريد الحفاظ على التوافق في الوظائف الإضافية الخاصة بك مع الإصدارات السابقة من XenForo، فإن الاحتفاظ بالأسماء القصيرة القديمة سيظل يعمل، حتى إذا قمت بإعادة تسمية فئاتك.
تغييرات أخرى
لقد أجرينا أيضًا بعض التغييرات الأخرى واسعة النطاق عبر الكود نتيجة لتشغيل PHP CS Fixer تلقائيًا. على العموم، لا يتغير هذا كثيرًا، ولكن إذا كنت من النوع الذي لديه ملفات XF في مستودع GitHub، فسترى الكثير من التغييرات، ولكن هذه في الغالب تحاول فقط جعل قاعدة التعليمات البرمجية الشاملة أسهل قليلاً في القراءة والمتابعة وأكثر اتساقًا بشكل عام.
لا يمكننا أن نضمن تمامًا عدم وجود أية مشكلات في التوافق، لذا نشجعكم جميعًا على أخذ وقتكم قبل الترقية إلى الإصدار المرشح 4. إذا كنت تقوم بتشغيل XF 2.3 على موقع إنتاج، فنوصي بإجراء ترقية تجريبية أولاً.
يمكن العثور على مزيد من التفاصيل المحددة بخصوص الأخطاء التي تم إصلاحها في هذا الإصدار في منتدى الأخطاء التي تم حلها.
إنه برنامج ما قبل الإصدار. إنه غير معتمد رسميًا.
لا نوصي بتشغيله على موقعك الرسمي.
يرجى تذكر أن هذا برنامج ما قبل الإصدار. يحتوي على أخطاء معروفة ووظائف غير كاملة. لا نوصي بتشغيل برنامج ما قبل الإصدار في بيئة العمل الرسمية، ويقتصر الدعم في الوقت الحالي على الأسئلة المطروحة هنا في منتديات المجتمع.
قد يتم تعطيل الاضافات والستايلات المخصصة بعد الترقية إلى 2.3. يجب عليك اختبار الاضافات الخاصة بك بدقة أو البحث عن التحديثات. كن حذرًا بشكل خاص مع الاضافات التي تغطي ميزات مشابهة لتلك التي تمت إضافتها إلى الإصدار 2.3؛ قد تتعارض هذه مع بيانات XenForo الأساسية. إذا تم العثور على تعارضات في البيانات، فسوف يلزم حلها في إصدار الاضافات الجديد أو عن طريق إزالة الاضافة قبل الترقية إلى الإصدار 2.3.
إذا اخترت تشغيل برنامج ما قبل الإصدار، تقع على عاتقك مسؤولية التأكد من عمل نسخة احتياطية من بياناتك. ننصحك بالقيام بذلك قبل محاولة الترقية. إذا كنت في شك، فقم دائمًا بإجراء ترقية اختبارية على نسخة من بيانات الإنتاج الخاصة بك.
يمكن الآن لجميع العملاء الذين لديهم تراخيص نشطة تنزيل الإصدار الجديد من منطقة العملاء.
تحميل XenForo 2.3.0 الإصدار المرشح 4 من منطقة العملاء المرخصة
إلى جانب إصدار XenForo 2.3.0 Release Candidate 1، نقوم أيضًا بإصدار إصدارات محدثة لكل من إضافاتنا الرسمية:
- XenForo Media Gallery 2.3.0 الإصدار المرشح 4 (يتضمن إصلاح أمني)
- مدير المنتجات XenForo 2.3.0 الإصدار المرشح 4
- البحث المحسن XenForo 2.3.0 الإصدار المرشح 4
تحميل الإضافات الرسميةمن منطقة العملاء المرخصة
المتطلبات
وفيما يلي الحد الأدنى من المتطلبات:
- PHP 7.2 أو أحدث
- MySQL 5.7 والأحدث
- جميع الاضافات المذكورة هنا تتطلب XenForo 2.3.
- يتطلب البحث المحسّن إصدار Elasticsearch 7.2 على الأقل
تعليمات التثبيت والترقية
يمكنك ايجاد شورحات في معهد زين العربية لمعرفة كيفية الترقية او تثبيت نسخة من سكربت XenForo
يرجى تذكر أن هذا الإصدار. يحتوي على أخطاء معروفة ووظائف غير كاملة. لا نوصي أو ندعم تشغيل برامج ما قبل النشر في بيئة العمل الرسمية. يقتصر دعم الإصدارات المسبقة على الأسئلة الواردة هنا في منتديات المجتمع.
التعديل الأخير: