Ben aslında çok iyi çalışıyor bu yükleyici yaptı. Şimdi benim uygulama tamamen modüler yapmak istiyorum. Bu geliştiriciler için işlevsellik bireysel bitleri üzerine ve daha kolay uygulama genişletmek sağlayacaktır.
Ben aslında bu ile geldi.
// Try to load a module
$file_path = $segments[1] . '/' . $segments[2] . '/' . ucwords($segments[2]) . '.php';
$paths = array (
'third-party' => SYS . 'extensions/third-party/modules/',
'core' => SYS . 'extensions/core/modules/'
);
foreach ( $paths as $path) {
if ( file_exists($path . $file_path)) {
require($path . $file_path);
if ( class_exists($segments[2])) {
$module = new $segments[2];
$function = isset($segments[3]) ? $segments[3] : 'index';
if (method_exists($module, $function)) {
$variables = $this->Router->get_variables(3);
// Define Module Path
define("MODULE_PATH", $path . $segments[1] . '/' . $segments[2] . '/');
return call_user_func_array(array($module, $function), $variables);
}
}
}
}
Aşağıdaki gibi çalışır.
Eğer url içine yönetici / kullanıcı girerseniz. Benim komut bir önceki bölümünde bu yönetici sınıf arar. Bu yönetici sınıf bulursa kullanıcı fonksiyonu arar. Kullanıcı fonksiyon bulunamıyor eğer. Yukarıdaki kod modülü aramak için denir.
Bu modül içeri bulundu olacak
xxx / modules / admin / user / User.php
Bu dosya varsa görmek için çek yukarıdaki kod, sınıf varsa, o zaman bu işlevi çağırır, bu işlev sınıf içinde olup olmadığını görmek için denetler, fonksiyon aranmalıdır ne belirler görmek için denetler.
Ne yapmak istediğiniz bu her seviye için kontrol etmektir.
Örneğin,.
? Admin / user / register
Bu bulunabilir olacaktır.
xxx / modules / admin / user / register / register.php
Herkes en iyi yol güzergahında herhangi bir derinliği bulmak için yukarıdaki kodu adapte ne olduğunu biliyor mu?