حسين محمد الباز نشر 7 مارس 2021 أرسل تقرير نشر 7 مارس 2021 لماذا نستخدم if class_exists في WordPress؟ لماذا لا يمكننا تعريفه بشكل طبيعي؟ اقتباس
0 إسلام عبدالعزيز نشر 7 مارس 2021 أرسل تقرير نشر 7 مارس 2021 يعتمد ذلك على إصدار PHP الذي تستخدمه. اعتبارًا من PHP 5.3.0، هذا ليس ضروريًا. بدلاً من ذلك، من الأفضل استخدام الـ Namespaces. تدعم بيئات الاستضافة الحديثة PHP 5.3.0 على الأقل، إن لم تكن أعلى، ولهذا السبب، لا يتعين علينا استخدام class_exists إلا في بعض الحالات الخاصة جدًا، مثل إنشاء مكتبة Dependency Injection، وتعريف طريقة الـ dependency resolution، وهذه مواضيع معقدة لا يجب أن تشغل نفسك بها إلا عندما تتقن أساسيات اللغة أولاً. يمكنك التفكير في الـ Namespace مثل حزمة مكونة من قطع فريدة. لا يمكن أن تكون هناك قطعتان متماثلتان في نفس الحزمة. لذلك، في أي كود حديث، مثل Laravel، ستلاحظ أنهم يستخدمون Namespaces بدلاً من class_exists، لأن الـ Namespaces ستتأكد دائمًا من وجود أو عدم وجود الـ class قبل أن يتم دمجه أو تعريفه في النطاق. الطريقة القديمة: <?php if ( ! class_exists( 'MyClass' ) ) { class MyClass {} } الطريقة الحديثة: <?php namespace MyScope; class MyClass { } 1 اقتباس
0 محمد أبو عواد نشر 7 مارس 2021 أرسل تقرير نشر 7 مارس 2021 class_exists هي وظيفة موجودة في php تستخدم للتحقق مما إذا كان قد تم تعريف الصنف أم لا, تستقبل معاملان , المعامل الأول اسم الصنف الذي نريد التحقق منه, والمعامل الثاني autoload الذي يحدد ما إذا كان سيتم استدعاء __autoload افتراضيًا أم لا, تسترجع الوظيفة true اذا كان قد تم تعريف الصنف,وتسترجع false اذا لم يتم تعريف الصنف, وبناء على القيمة التي تم استرجاعها نقوم بتنفيذ الأوامر. اقتباس
0 حسين محمد الباز نشر 7 مارس 2021 الكاتب أرسل تقرير نشر 7 مارس 2021 بتاريخ 36 دقائق مضت قال محمد أبو عواد: class_exists هي وظيفة موجودة في php تستخدم للتحقق مما إذا كان قد تم تعريف الصنف أم لا, تستقبل معاملان , المعامل الأول اسم الصنف الذي نريد التحقق منه, والمعامل الثاني autoload الذي يحدد ما إذا كان سيتم استدعاء __autoload افتراضيًا أم لا, تسترجع الوظيفة true اذا كان قد تم تعريف الصنف,وتسترجع false اذا لم يتم تعريف الصنف, وبناء على القيمة التي تم استرجاعها نقوم بتنفيذ الأوامر. حسنا ولكن لماذا ذلك؟ لماذا نتحقق مما إذا كان موجود أم لا؟ كما هو الحال في Java أو Python لا نستخدم class_exists عندما ننشئ واحد جديد اقتباس
0 سمير عبود نشر 8 مارس 2021 أرسل تقرير نشر 8 مارس 2021 في لغة php الدالة موجودة لكن أنت لست مُجبر على إستخدامها عند إنشاء أصناف PHP، بالعكس فالأمر متروك لك و تُستخدم عند حاجتك للدالة و في الوضعيات التي تحتاجها، فبنفس طريقة إنشائك للكلاسات في اللغات الأخرى مثل جافا او بايثون يُمكنك إنشاء الكلاسات في PHP بدون إستخدام الدالة class_exists فلا تحصر نفسك في سياق مُحدد و الدالة ليست موجودة لهذا الأمر فقط، قد تحتاج في جزئية مُحددة من الكود إلى إنشاء كائن من كلاس ما لكن إسم الكلاس هذا ليس معلوماً لديك قد يكون الكلاس موجود أو قد يكون غير موجود فالإسم يأتيك على شكل ديناميكي فهل ستقوم بإنشاء الكائن مُباشرة قد يعطيك خطأ لذلك يُمكن إستخدام الدالة class_exists في هذه الحالة للتأكد من وجود الصنف قبل إنشاء كائن منه و إلا مُعالجة الأمر عن طريق رمي إستثناء او ما إلى ذلك و هذه حالة من الحالات. أعتقد انه حتى لو لم تُوفر اللغات التي ذكرتها دالة مُشابهة إلا انها وفرت طرق للحصول على نفس نتيجة الدالة. أعتقد أيضاً أن إستخدام الدالة في ووردبريس حتى لا يتم إنشاء كلاسات بنفس الأسماء مما قد يُشكل لك بعض المشاكل في التطبيق الخاص بك. إحرص دائما على معرفة ما الذي تفعله الدالة و لا تُقيد نفسك بسياق واحد او إستخدام واحد للدالة و إنما فكر دائماً خارج الصندوق. هناك أيضاً دوال مُشابهة مثل method_exists، function_exists تُوفرها لغة PHP. اقتباس
السؤال
حسين محمد الباز
لماذا نستخدم if class_exists في WordPress؟ لماذا لا يمكننا تعريفه بشكل طبيعي؟
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.