باستخدام php spl_autoload_register () مع codeigniter
-
27-09-2019 - |
سؤال
من فضلك كيف يمكنني استخدام spl_autoload_register () مع codeigniter؟ أحتاج إلى القيام بذلك لأن im باستخدام codeigniter مع إطار عمل آخر يستخدم أيضًا التحميل التلقائي.
رأيت شيئا هنا
لكن لا أعرف كيفية استهداف codeigniter autoload. أنا جديد على OOP و CODEIGNITER. شكرًا جزيلاً!
الرابط أعلاه لديه هذا:
function autoload_services($class_name){ $file = 'services/' . $class_name. '.php'; if (file_exists($file)){ require_once($file); } } function autoload_vos($class_name){ $file = 'vos/' . $class_name. '.php'; if (file_exists($file)){ require_once($file); } } function autoload_printers($class_name){ $file = 'printers' . $class_name. '.php'; if (file_exists($file)){ require_once($file); } } spl_autoload_register('autoload_services'); spl_autoload_register('autoload_vos'); spl_autoload_register('autoload_printers');
المحلول
شكرا ل http://codeigniter.com/forums/viewthread/73804/#366081 وبعض أجزاء المعلومات من بعض قوم CI الذي أتابعه على Twitter (سألت EM): إريك بارنز, دان هيرجان, فيل ستورجيون و Zack Kitzmiller, ، لقد وجدت حلاً. إذا كنت عبارة عن codeigniter n00b مثلي ، فقد ترغب في متابعة هؤلاء الرجال.
لقد قمت بحذف init.php و config.php ، ثم قمت بتشويش ما يلي في الجزء السفلي من CI's config.php (أنا أيضًا أتم عملية التحميل التلقائي من مكتبة مخصصة تسمى MyLibrary).
function multi_auto_require($class) {
if(stripos($class, 'CI') === FALSE && stripos($class, 'PEAR') === FALSE) {
foreach (array('flourish', 'mylibrary') as $folder){
if (is_file(APPPATH."../auxengines/{$folder}/{$class}.php")){
include_once APPPATH."../auxengines/{$folder}/{$class}.php";
}
}
}
}
spl_autoload_register ('multi_auto_require') ؛
يعمل ببراعة. شكرا ، الناس!
نصائح أخرى
آه ، أرى الآن (بعد النظر إليه سؤال سابق سألت) ... أنت تواجه مشكلة لأن هناك 2 محددة __autoload
وظائف (وبالتالي تؤدي إلى خطأ في التحليل) ...
لإصلاحه ، ما عليك سوى إعادة تسمية أحدهم إلى شيء آخر ، ثم مباشرة بعد الاتصال بالتعريف spl_autoload_register('yournewfunctionname');
...
يجب أن يكون هذا كل ما في الأمر ، طالما أنني أفهم مشكلتك ...