سؤال

php.net :

<اقتباس فقرة>   

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

والآن أنا يريد أن يعرف، هي من الممارسات السيئة لاستخدام فقط __autoload لتحميل الطبقات المناسبة على موقع ديناميكي؟

والطريقة موقعي هو الإعداد لتشمل الملفات إلى ملف index.php، على سبيل المثال <لأ href = "http://www.site.com/index.php؟p=PAGE-I-WANT-TO-LOAD "يختلط =" noreferrer نوفولو "> http://www.site.com/index.php؟p=PAGE-I-WANT-TO-LOAD

وحتى لو كنت أنا على قسم المنتديات أو قسم بلوق من موقعي، أريد فقط الطبقات والوظائف المناسبة لتحميلها، لذلك يمكنني استخدام autoload ولكني لم تضمين ملف يدويا، يجب أن استخدمه __autoload باعتباره آخر اللجوء أو ما أنا بخير حتى على نظام ارتفاع حركة المرور؟

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

المحلول

وسيئة؟ رقم __autoload() واحد من بلدي الإضافات المفضلة لPHP 5. يزيل المسؤولية (والانزعاج) وجود يدويا لتشمل / تتطلب ملفات الطبقة الضرورية إلى التطبيق الخاص بك. أن يقال، والامر متروك لكم والمطور لضمان أن فقط "الطبقات المناسبة 'يتم تحميل. ويتم ذلك بسهولة مع نظام تسمية منظم وبنية الدليل. وهناك أمثلة الكثير على الانترنت لكيفية استخدام __autoload () بشكل صحيح، القيام بعملية بحث جوجل وستجد الكثير من المعلومات.

نصائح أخرى

وAutoload هو وسيلة جيدة لتحميل فقط ما هو مطلوب فصول.

في PHP 5> = 5.1.2، معظم المشاكل مع __autoload من العمر () اختفى، وذلك بفضل <لأ href = "http://php.net/manual/en/function.spl-autoload-register .php فقط "يختلط =" noreferrer "> spl_autoload_register () .

<اقتباس فقرة>   

والآن أنا يريد أن يعرف، هو ممارسة سيئة لاستخدام فقط __autoload لتحميل الطبقات المناسبة على موقع ديناميكي؟

وليس على الإطلاق. يمكنك الاعتماد على autoload، كل ما عليك القيام به هو وضع اصطلاح التسمية جيدة وتنفيذ الملقم الآلي كفاءة.

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

وهنا أقتبس من دليل المستخدم الحرس زند:

<اقتباس فقرة>   

وسوف الطبقات Autoloading لا تعمل منذ اسم الملف على القرص لن   تطابق اسم الفئة غموض.

والخطر الوحيد الذي __autoload () لا إذا قمت بتعريف وظيفة autoloading الفقيرة. عموما، كل ما في طريقنا للحصول من حيث ضرب الأداء هو يسعى قرص قليل كما يبدو PHP للملفات الصحيحة التي تحتوي على الفصول الدراسية. هو التخلص من الجانب المشرق في كل تلك المكالمات include() مزعج.

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

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