لماذا يتم تحويل الشرطة السفلية إلى فاصل الدليل في معيار PSR-0؟

StackOverflow https://stackoverflow.com//questions/11696219

  •  12-12-2019
  •  | 
  •  

سؤال

بي إس آر-0 (https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md) يحدد المعيار أنه يجب تحويل الشرطة السفلية في اسم الفئة إلى فاصل دليل في اسم الملف المقابل.

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

لذا أعتقد أنه يجب أن يكون هناك سبب ما (التوافق التاريخي مع بعض المكتبات؟) لهذه "الميزة".سؤالي هو:هل يعرف أحد لماذا تم تقديم هذا في معيار PSR-0؟

هل كانت مفيدة؟

المحلول

تم استخدام

الشرطة السفلية في الأوقات التي لم تدعمها PHP مساحات الأسماء بعد.يتبع المشروع المنظم "الصحيح" اتفاقية Namespacing الملفات بنفس طريقة بنية الدليل.

هو مجرد بعض "القاعدة" العامة لتنظيم الملفات في مشروع.

حتى إذا كان لديك هيكل دليل من:

giveacodicetagpre.

الأشخاص الذين يستخدمون القيام به:

giveacodicetagpre.

ولكن الآن لدينا مساحات أسماء يصبح:

giveacodicetagpre.

هو دليل ترميز نمط الترميز الذي يضمن أن الجميع يفعلون نفس الشيء.

إذن ما هو PSR-0 هو خريطة الكلان القديم والأسلوب الجديد من NameSpacing إلى اسم ملف.

نصائح أخرى

تدعم PHP مساحات الأسماء منذ الإصدار 5.3، وكان التقليد الأكثر شيوعًا سابقًا هو استخدام الشرطة السفلية كفاصل لمساحة الاسم (الدليل)، على سبيل المثال: My_Project_ClassName تم تعيينه على أنه /path/to/my/My/Project/ClassName.أعتقد أن التوافق مع الإصدارات السابقة هو السبب الرئيسي.

ضع في اعتبارك أن معيار PSR-0 كتب لبضع مشاريع محددة وليس بالضرورة الخيار الأفضل لمشروعك الخاص.كما يقول على موقعهم: "إذا أراد الناس الآخرون تبني ما نقوم به، فهو موضع ترحيب للقيام بذلك، ولكن هذا ليس الهدف".PSR-0 مقيد جدا، لن أختار استخدامها لمجرد أن الآخرين.النظر في ما تريد فعلا من مشروعك وما إذا كان سيكون مفيدا لك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top