New Zend_Loader_Autoloader لا يجد الملفات
-
18-09-2019 - |
سؤال
أنا فقط ترقية من ZF 1.7 إلى ZF 1.9، و تقريبيا كل شيء يعمل بشكل جيد ... باستثناء Autoloader.
عمر او قديم:
require_once('Zend/Loader.php');
Zend_Loader::registerAutoload();
جديد:
require_once 'Zend/Loader/Autoloader.php';
$loader = Zend_Loader_Autoloader::getInstance();
$loader->registerNamespace('MySiteName_');
$loader->setFallbackAutoloader(true);
تعد الملفات التي أحتاجها إلى الحمل التلقائي في الغالب غير مسبوقة (لأنه مشروع كبير من الأسماء المسبق). هم في الدلائل التالية:
- / تطبيق / وحدات التحكم
- / مشترك / نماذج
- /مكتبة
- /بائع
يبدو أن الموقع يعمل بشكل جيد إلا أنه لا يمكن العثور عليه / library/form.php
اعتاد أن تكون قادرا على ذلك، ولكن ليس بعد الآن. إنه يعمل إذا أضفت "مكتبة / form.php" containce "، لكن لا ينبغي أن يكون ذلك ضروريا، وأنا قلق من أنه إذا بدأت في القيام بذلك في بعض الأماكن، فسأحتاج إلى التخلي عن AutoLoader و Hard-Code جميعها تشمل. اعتقدت إضافة "setfallbackautoloader (true)"، جنبا إلى جنب مع وجود "مكتبة" في مسار بلدي الأدرج سيصلحها، لكنها لم تفعل ذلك.
مسار بلدي المدرج هو:
.: / المستخدمين / LOFYE / الوثائق / HTDocs / MySitename / البائع
: / المستخدمون / LOFYE / الوثائق / HTDocs / MySitename / Common
: / المستخدمون / lofye / المستندات / htdocs / mysitename / common / models
: / المستخدمين / LOFYE / الوثائق / HTDocs / mysitename / المكتبة
: / المستخدمون / lofye / المستندات / htdocs / mysitename
أي مساعدة في تقدير كبير!
المحلول
قلت إنها تعمل إذا قمت بذلك:
require_once 'library/Form.php';
ولكن، إذا تم تضمين مسار مكتبة الخاص بك، فيجب أن تكون تحيز، كما يفعل التحميل التلقائي، مثل هذا:
require_once 'Form.php';
حاول كتابة الكتابة "form.php"؛ في البرنامج النصي الخاص بك. هل القصف؟ بعد ذلك، لا يحتوي / مكتبة Article Path، وستحتاج إلى إصلاحه.
نصائح أخرى
AutoLoader الخاص بك سوف يحاول فقط تحميل فئات تبدأ مع MySiteName_
. وبعد حاول إضافة Form
كمساحة اسم ربما؟
$loader->registerNamespace('Form');
اسم الفصل داخل الملف library/Form.php
يجب ان يكون Form
. وبعد ما اسم الفصل الخاص بك؟
لقد اختبرت هنا وهي تعمل بشكل جيد.