سؤال

لقد كنت أعمل على تطبيق PHP صغير (إجمالي 400 ألف).ولكن في عملية البناء والتعلم لدي الكثير من الملفات غير المرغوب فيها.

لم أقم بعملي وأسميهم بشكل صحيح، أي demo1.php إلخ...

هل هناك طريقة للقيام بالتحقق من التبعية؟أم أنها مجرد حذف وتحديث وتكرار؟ثم الحذف عند الحاجة؟

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

المحلول

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

وظيفة التي تريدها

get_included_files();

وهذا سيعود مجموعة من أي ملف تم شملت حتى الآن. وضع هذا في نهاية ملف التمهيد (أو في نهاية كل الملفات الفردية الخاصة بك)، ويمكنك الحصول على قائمة من كل الملفات التي تم تضمينها أو المطلوبة. وهذا لن يقدم تقريرا عن الملفات التي تم فتحها مع file_get_contents، fopen، وما إلى ذلك هو السبب في فكرة جيدة أن يكون نوعا من المجمع وظائف / الفئات التي سوف نطلق على هذه الوظائف بالنسبة لك (مما يسمح لك لربط في الإجراءات إذا لزم الأمر)

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

file_put_contents('/tmp/files.txt',print_r(get_included_files(), true),FILE_APPEND);

نصائح أخرى

أنا في نفس الوضع الآن، حيث أقوم بتنظيف مشروع كبير جدًا عمر أجزاءه سنوات.

ما أجده الأكثر أهمية للقيام بهذه المهمة:

  • التحكم في الإصدار.أنا أستخدم TortoiseSVN بسبب تكامله الرائع مع Windows Explorer.أحاول التحقق بعد كل تغيير لتجنب الكثير من الألم والمعاناة.

  • وظيفة بحث جيدة جدًا ومريحة لإجراء فحص التبعية الأساسي (أين يتم استخدام $xyz->loadFromOtherSource؟).أستخدم nusphere PhpEd ولكن هناك الكثير من الأدوات المتوفرة مع وظائف بحث جيدة.

بخلاف ذلك، لا توجد أدوات موثوقة لإعادة البناء/التحقق من التبعية لـ PHP التي أعرفها.

ويبدو أنك في حاجة لبدء مع نظام التحكم في الإصدار. إذا تم بالفعل ملوث مشروعك حتى ذلك الحين قد تحتاج إلى مجرد لدغة الرصاصة وتنظيفه يدويا.

وهذا سيكون من الصعب تحقيق - ليس هناك وسيلة لIDE أو أداة مماثلة لمعرفة أي ملفات PHP ويقصد به أن يشمل في بعض الطريق مقابل تلك التي من المفترض أن يمكن الوصول إليها مباشرة من قبل المستخدم النهائي

وناهيك عن أن PHP يتيح لك القيام إدراج ملف ديناميكية حقا مثل هذا

$page = $_GET['page'];
include( 'templates/' . $page . '.php' );

في نهاية وأنت تسير فقط في حاجة إلى الكثير من العناية الواجبة.

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

1) أنا خلقت مستودعا للشفرة المصدر الأصلي.

2) أنا خلقت رمز اختبار هذا اختبار وظائف طلبه.

و3) ذهبت أنت عملية إزالة، والانتقال، وتنظيف وظائف حتى كان رمز مصدر أكثر سهولة. التحقق من التعليمات البرمجية المصدر بعد كل تغيير ناجح.

وهاي هل يمكن autoload الملفات الخاصة بك. السابق. myfile.php يجب أيضا الكشف عن اسمه الطبقة MYFILE

    <?php 
function __autoload($class_name) {
        require_once $class_name . '.php';
    }

    $obj  = new MyClass1();
    $obj2 = new MyClass2(); 
    ?>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top