سؤال

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

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

هيكل الفصل أ:

  • بديهية وسهلة للعثور على الملفات المصدر عند تصحيح الأخطاء.
  • تعكس بنية الملف/الدليل التسلسل الهرمي للفئة.
- Framework_Control                 "Framework\Control.php"
   - Framework_Control_Index        "Framework\Control\Index.php"
   - Framework_Control_Home         "Framework\Control\Home.php"
   - Framework_Control_Contact      "Framework\Control\Contact.php"
   - Framework_Control_About        "Framework\Control\About.php"

هيكل الفئة ب:

  • يحافظ على إطار العمل معياريًا وسهل الاستبدال/التحديث.
  • يضيف بعض التعقيد إلى بنية الدليل، ولم تعد تسمية الدليل/الملف تتبع التسلسل الهرمي للفئة طوال الوقت.
- Framework_Control                 "Framework\Control.php"
   - Application_Control_Index      "Application\Control\Index.php"
   - Application_Control_Home       "Application\Control\Home.php"
   - Application_Control_Contact    "Application\Control\Contact.php"
   - Application_Control_About      "Application\Control\About.php"

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

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

المحلول

ما يتعلق الأمر حقًا هو ما ستفعله عند تحديث Framework\Control.php في التطبيق XYZ.هل ستعود إلى تطبيق ABC وإجراء نفس التغيير؟ماذا لو كان خطأ فادحا؟

من أجل صيانة جميع مشاريعك، سأختار خيارك الثاني.

نصائح أخرى

أود أن أقترح عليك عرض التعليمات البرمجية المصدر الخاصة بك في فئتين مختلفتين، التبعيات الخارجية أو التعليمات البرمجية المستخدمة عبر مواقع متعددة وليست أصلية لأي واحد وتبعيات أصلية أو التعليمات البرمجية الأصلية لموقع معين تعمل عليه .

يبدو أن Framework/Control.php جزء من تبعية خارجية أكبر ويجب إدارتها على هذا النحو، في حين أن ملفات التطبيق/التحكم كلها أصلية في موقع الويب المحدد.

إن استخدام هذا التمييز في بنية التعليمات البرمجية الخاصة بنا قد جعل من السهل جدًا إعادة استخدام إطار العمل الداخلي لدينا بين مواقع متعددة بسهولة شديدة.

كفكرة أخيرة، قد تفكر في النظر إلى ما تفعله أطر العمل الرئيسية مثل Zend Framework وSymfony وغيرهما.على الرغم من أن الإطار بأكمله قد يكون أكثر مما تريد، إلا أن هيكل الإطارات يمكن أن يوفر الكثير من الأفكار حول الممارسات الجيدة الشائعة التي يستخدمها مطورو PHP في كل مكان.

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