هل Symfony التلقائي ذكي بما يكفي لتحميل الملفات اللازمة فقط؟
-
22-09-2019 - |
سؤال
أعلم أن ملفات التحميل التلقائي spl_auto_register
، لكن هل هو ذكي بما فيه الكفاية؟
فقط لو A.Php هناك حاجة للتحميل ، هل سيتم تحميله أيضًا ب?
المحلول
سيقوم Autoloader بتحميل الملفات الضرورية فقط لإنشاء فئة مطلوبة.
نصائح أخرى
يعمل Autoloader عن طريق تخزين مجموعة من أزواج القيمة الرئيسية مثل
classname => /full/path/to/class
في Symfony 1.3/1.4 يتم إنشاء ملفان ذاكرة التخزين المؤقت. واحد للصفوف الأساسية ، التي أنشأتها sfcoreautoload ، وتخزينها في /cache/project.autoload. بالنسبة للدروس التي يتم تحميلها تلقائيًا من داخل دليل المشروع الخاص بك ، يتم تخزين مجموعة من أزواج القيمة الرئيسية في /cache/_app_/_env_/config/config_autoload.yml.php. يتم إنشاء هذا الملف بواسطة معالج التكوين SfautoloadConfighandler.
بعض النقاط المفيدة التي يجب تذكرها:
- لا يتم تحميل جميع الفصول داخل مشروعك ، يتم تحديد الملفات المحملة التلقائية بواسطة Autoload.yml (في sf_lib_dir/config/config). يمكنك إنشاء Autoload.yml الخاص بك وإسقاطه في Project Config Dir (أو حتى Application Config dir على ما أعتقد).
- عند التشغيل في بيئة Dev ، إذا لم يكن من الممكن تحميل الفصل الدراسي ، فسيقوم Symfony بإعادة بناء ذاكرة التخزين المؤقت Autoload على أمل العثور على الملف الذي يفترضه أمر جديد. هذا يمكن أن يجعل تطبيقك بطيئًا في بعض حالات الاستخدام ، لذا استخدم sfautoloadagain :: unregister ().
لا تنتمي إلى StackOverflow