اذهب إلى المحتوى

Hassan Hedr

الأعضاء
  • المساهمات

    2846
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    38

إجابات الأسئلة

  1. إجابة Hassan Hedr سؤال في كيفية استخدام sanctum في حماية الواجهة البرمجية API في Laravel كانت الإجابة المقبولة   
    حماية مفتاح الواجهة البرمجية API Token هي مسؤولية المستخدم نفسه وليست مسؤولية المطور، على المستخدم أن يختار التعامل مع النظام باستخدام متصفح آمن ومحمي يمنع المستخدمين الآخرين أو المواقع أو البرامج الأخرى من الوصول إلى محتويات المخزن المحلي localstorage، أيضًا يجب الانتباه لاستخدام اتصال آمن ك HTTPS ليتم إرسال الطلب مع المفتاح عبره ومنع احتمال التنصت على الطلب واستخراج مفتاح المستخدم من قبل طرف ثالث
    إذا كنت تقصد أن المفتاح معرض لاستخراجه من قبل المستخدم نفسه فلا يمكنك تقريبًا حماية ذلك، لأن النظام لديك ينظر لكافة الطلبات الواردة إليه على أنها طلبات من مستخدمين ومن الصعب التحقق من مصدر تلك الطلبات هل أتت عبر واجهة موقعك أم قام المستخدم ببناءها بنفسه
    يمكنك تخزين التوكن ضمن localstorage او ضمن Cookies وبذلك سيتم إرسالها مع كل طلب بشكل آلي لكن يجب إعداد axois لذلك عبر إضافة السطر التالي
    axios.defaults.withCredentials = true; يمكنك إرسال طلب للمسار sanctum/csrf-cookie/ ليتم إرسال التوكن بشكل آلي من قبل sanctum وتعيينها لدى العميل ليتم إرسالها بشكل آلي مع الطلبات اللاحقة
    axios.get('/sanctum/csrf-cookie').then(response => { // تسجيل الدخول }); يمكنك الاستفادة من قراءة الإجابات على السؤال التالي
     
  2. إجابة Hassan Hedr سؤال في هل لابأس في تخزين محتوى الموقع في قاعدة البيانات كانت الإجابة المقبولة   
    الحاجة لتخزين البيانات سببها حاجتنا في استرداد البيانات في وقت لاحق بشكل صحيح وسريع، يمكنك تخزين البيانات ضمن أي مخزن أو توزيعها على عدة أنواع من المخازن،
    فوائد مخزن قاعدة البيانات:
    يوفر سهولة في ربط البيانات مع بعضها سرعة في استرداد البيانات بشكل صحيح بسبب فهرستها     سهولة في الاستعلام عن البيانات واستخراج المعلومات منها سهولة في تعديل أو حذف البيانات يمكنك تقسيم البيانات إلى عدة مخازن، المعلومات عن المنتجات تخزن ضمن قاعدة البيانات، وصورها تخزن في مخزن نظام الملفات، والاكتفاء بذكر مسار ملف صورة كل منتج ضمن قاعدة البيانات لسهولة استرداده لاحقًا، بهذه الطريقة ستصبح قاعدة البيانات خفيفة وسهلة التعديل و استعلام البيانات منها ولن تؤثر على حجمها
    يمكنك الاستفادة من قراءة المقال التالي:
     
  3. إجابة Hassan Hedr سؤال في إنشاء قالب ابن في ووردبرس كانت الإجابة المقبولة   
    تأكد من التالي:
    مجلد القالب الابن يجب وضعه ضمن مجلد wp-content/themes  اسم القالب الأب يطابق "enjoytube" تفعيل القالب الابن ضمن الموقع بعد اتمام الخطوات السابقة
  4. إجابة Hassan Hedr سؤال في كيف أسوق لخدماتي على منصة مستقل كانت الإجابة المقبولة   
    الاهتمام بمهاراتك والخدمات التي تستطيع تقديمها لأصحاب المشاريع هو الأولوية الوحيدة والأساس في حصولك على فرص العمل واختيارك من قبلهم، ركز على التالي:
    كتابة نبذة توضح مهاراتك والخدمات التي تستطيع تقديمها الاهتمام بمعرض الأعمال وعرض الأعمال ذات الجودة العالية التي قمت بها سابقًا عند حصولك على عمل اهتم بتقديم أعلى جودة للعمل المنفذ لتحصل على تقييم جيد ضمن حسابك قدم عروض تبرز فيها ما الذي تستطيع تقديمه لصاحب العمل ومدى خبرتك الفعلية في مجال المشروع يمكنك الاستفادة من قراءة المقالات التالية:
    لماذا يتجاهل أصحاب المشاريع عروضك على مستقل
    كيف تبني معرض أعمالك باحترافية
     
  5. إجابة Hassan Hedr سؤال في ماذا تمثل الخاصية document.documentElement في جافاسكريبت؟ كانت الإجابة المقبولة   
    المتغير document يمثل المستند الحالي (الصفحة الحالية) بالنموذج DOM، يمثل شجرة العناصر للمستند الحالي ويوفر توابع للاستعلام والتعديل على عناصر هذه الشجرة برمجيًا.
    أحد الخصائص لهذا المتغير هي الخاصية documentElement تمثل العنصر في رأس الشجرة أو العنصر الجذر للمستند الحالي وغالبًا يكون هو العنصر <html>
    يمكنك قراءة توثيق الخاصية ضمن موسوعة حسوب 
  6. إجابة Hassan Hedr سؤال في كيفية اجبار المستخدم على تحديث التطبيق flutter كانت الإجابة المقبولة   
    أي في حال كان هناك طلبات تتم إلى خادم تطبيقك لجلب معلومات ما، في حال كنت تستطيع فرز الطلبات من النسخ القديمة للتطبيق بجهة الخادم، يمكنك تعطيل عمله بعدم إرسال تلك البيانات وإرسال رد بالرمز 400 مثلًا مع رسالة خطأ توضح للمستخدم "من فضلك قم بتحديث التطبيق لتتمكن من الاستمرار في الاستخدام"
    في هذه الحال لديك لديك طريقة للتواصل مع المستخدمين وأنت تخبرهم بالفعل بوجود تحديث لكنك لا تجبرهم، في حال كان التحديث ضروري جدا لعمل التطبيق وبإمكانك إجبار المستخدمين فقط قم بتعطيل عمل التطبيق باستخدام الخطوة السابقة في هذه الحال سيضطر المستخدم للتحديث ولا يمكنه تجاوزه
  7. إجابة Hassan Hedr سؤال في شرح مصطلح Polymorphism في php oop ؟ كانت الإجابة المقبولة   
    Polymorphism أو تعددية الأوجه تعني أنه يمكن معاملة الكائن بأشكال مختلفة، في مثالك الصنفين tv_remote و reciver_remote يمكن معاملتهما كصنف من النوع remotecontrol،
    يمكن تضمين تعددية الأوجه بطريقتين:
    تعريف شكل الكائن ضمن واجهة interface يضمنها كل صنف بطريقته الخاصة (وهي الطريقة المستخدمة في مثالك) تعريف شكل الكائن ضمن صنف أب، والوراثة منه في الصنف الابن،وسيعامل الصنف الابن على أنه من نفس نوع الصنف الأب يمكنك القراءة أكثر عن البرمجة كائنية التوجه ضمن المقالات التالية:
     
  8. إجابة Hassan Hedr سؤال في ما الفرق بين الأصناف المجردة والنهائية abstract & final php ؟ كانت الإجابة المقبولة   
    لا يمكن المقارنة بينهما بشكل مباشر لان لكل منهما وظيفة:
    الصنف المجرد abstract: هو صنف يعتبر قالبًا يمكن للأصناف الأخرى استخدامه وسترث تلك الأصناف منه كل التوابع والمتغيرات المعرفة داخله، ولا يمكن انشاء كائن من الأصناف المجردة الكلمة المحجوزة final: يمكن تعريف صنف كصنف نهائي final أو تابع ما كتابع نهائي عند تعريف صنف بذلك هذا يدل أن ذلك الصنف لا يمكن لأي صنف آخر أي يرثه <?php final class FinalClass { ... } class ChildClass extends FinalClass { } // final سينتج خطأ لا يمكن الوراثة من صنف ?>  
    عند تعريف تابع كتابع نهائي لا يمكن للأصناف التي ترث ذلك التابع أن تعيد تعريف التابع نفسه ضمنها بما يعرف ب Overriding <?php class BaseClass { final public function finalMetod() { ... } } class ChildClass extends BaseClass { public function finalMetod() { // إعادة تعريف للتابع الموروث ... } } // final سينتج خطأ لا يمكن إعادة تعريف تابع ?>  
     
  9. إجابة Hassan Hedr سؤال في مشكلة في التعامل مع اضافة intl-tel-input كانت الإجابة المقبولة   
    يمكن تأجيل تهيئة intlTelInput إلى ما بعد حقن العنصر phone# وذلك لأن التهيئة تعتمد على تواجد هذا العنصر من الأساس
    // 01 - #phone حقن العنصر ... // 02 - intlTelInput تهيئة العنصر مع var phone_number = window.intlTelInput(document.querySelector("#phone"), { ... }); window.iti = phone_number; function getValue(){ var number = phone_number.getNumber(); alert(number); } ... // 03 - getValue الآن يمكن استخدام ... حل آخر يكون بحقن العنصر مبكرًا ولكن إخفاء ظهوره ضمن الصفحة عبر التنسيق كالتالي
    #phone { display: none; } وبعد اتمام الخطوات نقوم بإظهار العنصر بواسطة javascript
    document.querySelector("#phone").style.display = 'block';  
  10. إجابة Hassan Hedr سؤال في خطأ عند استخدام التعابير النظامية Regular Expressions كانت الإجابة المقبولة   
    لأن التعبير يطلب أن يحتوي النص على الجملة "age is" وبعدها عدد واحد أو أكثر شرط أن تكون هذه الأعداد إما 1 أو 2، التعبير في الجملة لديك طابق القسم التالي : 
    'Hello there! My name is Ibrahim and my age is 20' ^^^^^^^^^^^ أي طابق الجملة وبعدها عدد واحد، يمكنك استبدال "+" أي واحد أو أكثر، بـ "{1,2}" أي عدد مكون من خانة واحدة أو اثنين فيصبح التعبير كالتالي:
    const regex = /age is [1-2]{1,2}/; الجمل التالية كلها تطابق التعبير:
    'Hello there! My name is Ibrahim and my age is 21' ^^^^^^^^^^^^ 'Hello there! My name is Ibrahim and my age is 11' ^^^^^^^^^^^^ 'Hello there! My name is Ibrahim and my age is 125' ^^^^^^^^^^^^  
  11. إجابة Hassan Hedr سؤال في مشكلة في تنسيق التذييل footer ضمن صفحة ويب باستخدام CSS كانت الإجابة المقبولة   
    يرجى تعديل السؤال وإرفاق التنسيق بشكل نصي وليس كصورة.
    حاول تحديد الارتفاع الأقصى للتذييل footer باستخدام الخاصية max-height وتعيينها لقيمة تناسب الحجم الذي تريده، مع إضافة الخاصية overflow بالقيمة hidden لإخفاء القسم الزائد من الصورة كالتالي:
    .footer { ... max-height: 500px; overflow: hidden; }  
  12. إجابة Hassan Hedr سؤال في خطأ في console عند جلب البيانات بواسطة fetch كانت الإجابة المقبولة   
    الخطأ لديك في استدعاء دالة fetchPokeFull في النهاية، حيث أن الدالة تتوقع تمرير غرض يعبر عن بيانات عنصر من عناصر البحث، لا داعي لإستدعائها بنفسك فالتابع fetchPoke يثوم باستدعائه بشكل مناسب عند وصول البيانات،
    قم بحذف الاستدعاء الأخير كالتالي
    // fetchPokeFull() ولتجنب الاستدعاء الخاطئ يمكن حماية التابع من داخله عبر الخروج مبكرًا في حال كان المعامل الممرر بلا قيمة كالتالي 
    function fetchPokeFull(pokemon){ if(!pokemon) return; // التحقق من المعاملات ...  
  13. إجابة Hassan Hedr سؤال في ما هو أفضل إطار عمل لتطوير تطبيقات الجوال والويب معًا؟ كانت الإجابة المقبولة   
    أطر العمل مثل Flutter و ReactNative تفيد في تطوير لمنصات عدة معًا تقريبا دون الحاجة لإعادة كتابة التطبيق من جديد لكل منصة على حدى، أطر العمل هذا تدعم تطبيقات الهواتف الأصلية Native لأنظمة التشغيل مثل أندرويد و IOS، وأيضا تدعم منصات الويب مع الحاجة أحيانا لكتابة مكونات خاصة بالويب في حال كان دعمها أو طريقة عملها مقتصرة على الويب
    لا يوجد الأفضل، اختيارك لأحدهما يعتمد على خبرتك في اللغات المستخدمة مثل جافاسكريبت أو دارت، وخبرتك في إطار العمل نفسه أو خبرة المبرمج المسؤول عن التطوير
    أطر العمل هذه تستطيع بها بناء تطبيق بطرف العميل، أي تطبيق واجهة للعملاء لديك فقط، باقي العمليات يجب أن تتم معالجتها بطرف الخادم وهو الجزء الأكبر من المشروع
     
    يمكنك القراءة عن React Native ضمن المقال التالي
    أيضًا لديك خيار التطوير باستخدام إطار عمل Cordova مما سيمكنك أيضًا من كتابة التطبيقات باستخدام تقنيات الويب، كما يتوفر ضمن دورات الأكاديمية دورة تطوير تطبيقات الجوال باستخدام تقنيات الويب الدورة مخصصة لتطوير التطبيقات باستخدام كوردوفا مع تطبيق عدة مشاريع خلالها، أيضًا يمكنك القراءة عن إطار العمل ضمن المقال التالي:
     
  14. إجابة Hassan Hedr سؤال في أكتب برنامج بلغة C++ يقوم بحل هذا القانون . كانت الإجابة المقبولة   
    حاول تطبيق الحل بنفسك وإذا واجهت مشاكل أو لديك استفسار معين قم بإرفاق الشيفرة المتعلقة بسؤالك وتوضيح الاستفسار لكي يتمكن الزوار من مساعدتك
    لا يمكن السؤال عن حل للواجبات
  15. إجابة Hassan Hedr سؤال في ما أفضل دورة يمكنني البدء بها للدخول في مجال البرمجة، وهل يمكنني العمل بشكل حر في هذا المجال؟ كانت الإجابة المقبولة   
    يمكنك اكتساب أي مهارة إضافية بجانب تخصصك وبما أن تخصصك يتقاطع مع مجال البرمجة سيكون ذلك إضافة جيدة لك، هناك طلب في مجال البرمجة وقلة في العرض والخبرات والمهارات لذا يوجد فرص جيدة لمن يتقن هذا المجال على الأقل في المستقبل القريب.
    دورة علوم الحاسب ستعرفك على كثير من المفاهيم الأساسية ضمن هذا المجال وستوسع آفاقك للفهم الصحيح ضمن مواضيع عدة وهي تعتبر بداية جيدة للدخول ضمن هذا المجال، يمكنك قراءة المقال التالي:
    يمكنك العمل بشكل حر من المنزل، لن تكون مضطرًا للالتزام بوقت فقط عليك اكتساب بعض مهارات تنظيم الوقت للموازنة بين الدراسة والالتزام بالعمل، منصات العمل الحر مثل مستقل و خمسات تتيح لك استثمار مهاراتك مع من يحتاجها مع ضمان الطرف الثاني لك، يمكنك الاطلاع على المقال التالي:
    اشتراكك بأحد دورات أكاديمية حسوب يضمن لك الوصول لمحتوياتها مدى الحياة، وخلال الدورة يوجد دعم من قبل مدربين متخصصين يمكنك تقديم أي استفسار او طرح مشكلة تواجهك وسيقومون بمساعدك، كما أن هناك ضمان لاسترداد مبلغ الدورة من خلال عملك الشخصي خلال 6 أشهر، وفي حال لم ترغب بإكمال الدورة يمكنك الانسحاب منها وإعادة المبلغ المدفوع بعد التواصل مع مركز المساعدة
    يمكنك القراءة أكثر ضمن صفحة الأسئلة الشائعة
  16. إجابة Hassan Hedr سؤال في هل من الضروري تنفيذ الأمر npm init خلال تطوير مشروع بطرف العميل؟ كانت الإجابة المقبولة   
    إذا كنت تريد استخدام مكتبات ضمن شيفرة المشروع بطرف العميل نعم ستحتاج لتنفيذ الأمر npm init وذلك لإنشاء ملف package.json يتضمن فيه على الأقل المكاتب المستخدمة والنسخ المراد تثبيتها ضمن مشروعك
    سيمكنك ذلك من تثبيت الاعتماديات التي يعتمد عليها مشروعك ويمكن لأي شخص آخر استخدام مشروعك للتطوير عليه وتثبيت الاعتماديات لديه محليًا
    يمكنك مراجعة الفيديو التالي لمعرفة كيفية استخدام مدير الحزم npm:
     
  17. إجابة Hassan Hedr سؤال في هل نستطيع البرمجة باللغة العربية؟ كانت الإجابة المقبولة   
    لكتابة برنامج ما ستحتاج للغة برمجة عالية المستوى، أي تشبه إلى حد ما اللغات المحكية، أغلب لغات البرمجة تكون باللغة الانكليزية لأنها الأوسع انتشارا،
    هناك عدة لغات برمجة عربية تستخدم مفردات عربية ضمنها:
    لغة ألف لغة جيم لغة الأسس البرمجية لغة إبداع لغة عموريا حاليًا إذا رغبت الدخول في مجال البرمجة فالطلب يكون على لغات البرمجة الإنكليزية لانتشارها وانتشار الدعم الواسع لها من مكتبات وتوثيقات
  18. إجابة Hassan Hedr سؤال في هل تخصص تطوير النظم الخلفية منفصل عن تخصص تطوير الواجهات الأمامية؟ كانت الإجابة المقبولة   
    الفصل بينهما ليس مطلق، قد يضطر مبرمج النظم الخلفية للتطرق لبناء صفحة أو مكون ويب باستخدام HTML و CSS، لكن أغلب تركيزه وعمله يكون في تطوير النظم الخلفية التي تعمل على الخوادم فقط
    يتميز مطور الواجهات الأمامية بخبرته الأوسع في بناء واجهات المواقع، حيث يستطيع بناء قوالب الويب بشكل كامل وحتى تطبيق منفصل كامل يعمل بطرف العميل (باستخدام مكتبات مثل React و Vue)، وقد يضطر أحيانا للتعامل مع الواجهات البرمجية للنظم الخلفية، كالحاجة لإرسال طلبات HTTP لطلب البيانات من الخادم
    ليس هناك مطور نظم خلفية فقط ومطور واجهات أمامية فقط، سيحتاج أحدهما في وقت ما ولو بشكل بسيط للتعامل مع مجال عمل الآخر، المطور الكامل Full-Stack هو المطور الذي يملك كلا الخبرتين ويستطيع العمل على الواجهات الأمامية والنظم الخلفية معًا.
    الدورة تركز بشكل أساسي على النظم الخلفية، لكن الحاجة لبناء مشروع كامل تضطرك لبناء صفحات الويب.
  19. إجابة Hassan Hedr سؤال في كيف يمكن إرسال حوالة من حساب بايبال لآخر عن طريق الواجهة البرمجية؟ كانت الإجابة المقبولة   
    يمكن إرسال تفاصيل التحويل إلى الواجهة البرمجية الخاصة ببايبال عبر طلب POST إلى المسار التالي: 
    /v1/payments/payouts الترويسات الواجب إرسالها هي نوع المحتوى Content-Type لوصف نوع المحتوى المرسل، وتروسية التوثيق Authorization كالتالي (مع تبديل المفتاح بالمفتاح الخاص بحسابك):
    Content-Type: application/json Authorization: Bearer <المفتاح الخاص بحسابك> جسم الطلب هو غرض JSON يتضمن مفتاحين رئيسيين :
    sender_batch_header: وفيه معلومات عن الحوالة الحالية من معرّف خاص تضع فيه أي قيمة تريد، وعنوان ومحتوى البريد الالكتروني المرسل للحساب الوجهة عند استلامه للحوالة "sender_batch_header": { "sender_batch_id": "1234", "email_subject": "تم إرسال أرباحك", "email_message": "المبلغ المرسل هو أرباحك خلال المدة الماضية، شكرًا لك" }  
    items: وهي مصفوفة تضم أكثر من حوالة وتفاصيل عم الوجهة يمكنك إرسالها معًا، تتضمن التفاصيل التالية: recipient_type: وهو نوع حساب الوجهة إما لديك عنوان بريده أو رقم هاتفه أو معرّف بايبال الخاص به تكون إحدى القيم التالية (EMAIL - PHONE - PAYPAL_ID) receiver: وهو عنوان الحساب الوجهة قيمته بحسب نوع العنوان في الحقل السابق amount: يتضمن العملة والقيمة المرسلة: value: القيمة currency: العملة "items": [ { "recipient_type": "EMAIL", "receiver": "receiver@example.com", "amount": { "value": "9.87", "currency": "USD" }, } ] بحسب لغة البرمجة أو إطار العمل المستخدم تقوم ببناء الطلب على الشكل السابق وإرساله
  20. إجابة Hassan Hedr سؤال في ما الأفضل طلبات HTTP أم استخدام Socket لتضمين الإشعارات؟ كانت الإجابة المقبولة   
    لكل مشروع متطلباته وظروفه، اختر الانسب بحسب مشروعك:
    استخدم مقبس الويب Web Socket عندما: بحاجة لإظهار الإشعار بالوقت الحقيقي بلا تأخير كبير لديك كمية كبيرة من الإشعارات خادم استضافة الموقع يدعم فتح منفذ خاص لاستقبال بروتوكول wss استخدم الاستعلام عن طريق طلبات HTTP عندما: لست مضطرًا لسرعة وصول الإشعارات (يمكنك التأخير لدقيقة مثلًا) كمية الإشعارات متوسطة إلى قليلة لا يمكنك التحكم بخادم الاستضافة وليس متاح لك سوى منفذ لبروتوكول HTTP (أو HTTPS) تريد طريقة تضمين الاشعارات بشكل بسيط (يكفي معرفة بسيطة بجافاسكريبت وكيفية إرسال طلبات AJAX) أغلب المواقع تعتمد على إرسال طلبات HTTP من الصفحة بتردد زمني معين 
  21. إجابة Hassan Hedr سؤال في ما الفرق بين المفاهيم delegate, action, predicate, func في #C كانت الإجابة المقبولة   
    Delegate هي الأصناف التي تمثل الإشارة إلى تابع آخر ما، يندرج ضمن هذه العائلة الثلاثة أصناف التالية:
    Action: يشير إلى تابع لا يعيد قيمة أي يعيد void، كما التابع التالي: static void say(string message) { Console.WriteLine(message); } Action<string> sayAction = new Action<string>(say); // مؤشر للتابع السابق sayAction.Invoke("Hello World!"); // استدعاء المؤشر  
    Func: يشير إلى تابع ما ويمكننا عبره تحديد نوع كل من المعاملات والنوع الذي يعيده ذلك التابع، مثال: static int sum(int x, int y) { return x + y; } Func<int, int, int> sumFunc = new Func<int, int, int>(sum); // مؤشر للتابع السابق int result = sumFunc(1, 5); // استدعاء المؤشر  
    Predicate: يشير إلى تابع دومًا يعين قيمة بوليانية bool، ويمكننا تحديد نوع معاملات ذلك التابع أيضًا، مثال static bool IsEven(int number) { return number % 2 == 0; } Predicate<int> isEvenPredicate = new Predicate<int>(IsEven); // مؤشر للتابع السابق isEvenPredicate(11); // استدعاء المؤشر  
    يمكنك القراءة عن ذلك أكثر ضمن المقال التالي
     
     
  22. إجابة Hassan Hedr سؤال في هل دورة علوم الحاسوب تشرح هياكل البيانات data structure كانت الإجابة المقبولة   
    نعم يوجد ضمن دورة علوم الحاسوب مسار مخصص للخوارزميات وبنى المعطيات Data Structures، وفيه سيتم شرح ودراسة بنى المعطيات التالية:
    المصفوفات Arrays القوائم المترابطة Linked Lists المكادس Stacks الأرتال Queues الأشجار الثنائية Binary trees أشجار البحث الثنائية Binary search tree جدول التقطيع Hash table  
  23. إجابة Hassan Hedr سؤال في مشكلة ملفات الترجمة في تعريب قوالب ووردبرس كانت الإجابة المقبولة   
    يمكنك إنشاء مجلد جديد ضمن القالب لديك وليكن languages، وضمنه قم بوضع كافة ملفات الترجمة mo.
    وضمن ملف functions.php قم بوضع الشيفرة التالية لتحميل تلك الملفات بشكل صحيح مع استبدال my_theme باسم القالب الخاص بك:
    add_action('after_setup_theme', 'lang_theme_setup'); function lang_theme_setup(){ load_theme_textdomain('my_theme', get_template_directory() . '/languages'); }  
  24. إجابة Hassan Hedr سؤال في تنفيذ 10 وظائف في قائمة الانتظار كل دقيقة في لارافل كانت الإجابة المقبولة   
    يمكنك الاستعانة بالمكتبة laravel-rate-limited-job-middleware لتطبيق ذلك، 
    نفذ الأمر التالي لتنصيب المكتبة:
    composer require spatie/laravel-rate-limited-job-middleware ضمن صنف الوظيفة Job التي تريد تحديد سقف التنفيذ لها أضف التابع middleware وخصصه لتحديد عدد الوظائف والمدة الزمنية المسموح بها:
    use Spatie\RateLimitedMiddleware\RateLimited; ... public function middleware() { $rateLimitedMiddleware = (new RateLimited()) ->allow(10) // عدد الوظائف المسموح بها ->everySeconds(60); // المدة الزمني return [$rateLimitedMiddleware]; }  
  25. إجابة Hassan Hedr سؤال في خطأ بعد تعيين متغيرات البيئة في أندرويد استوديو كانت الإجابة المقبولة   
    نقوم بحذف المتغير ANDROID_SDK_HOME
    بدلًا عنه في اندرويد استوديو نقوم بالذهاب إلى Project Structure عبر الضغط على Ctrl+Shift+Alt+S ومن النافذة التي تظهر نعين مسار Android SDK على جهازك

×
×
  • أضف...