Sprawa ima się automatycznego ładowania klas. W Kohanie jest to rozwiązane poprzez dodawanie do klas przyrostków, w ten sam sposób chciałem rozwiązać ładowanie klas w moim skrypcie. Głównie chodzi mi o to, aby pozostać wiernym ideologii MVC, a w autoloaderze nie przepuszczać parametru przez pętle.
Otóż w Kohanie rozwiązane to jest w następujący spoósb:
{ if (class_exists($class, FALSE)) return TRUE; { // Find the class suffix } else { // No suffix $suffix = FALSE; } if ($suffix === 'Core') { $type = 'libraries'; } elseif ($suffix === 'Controller') { $type = 'controllers'; // Lowercase filename } elseif ($suffix === 'Model') { $type = 'models'; // Lowercase filename } elseif ($suffix === 'Driver') { $type = 'libraries/drivers'; } else { // This could be either a library or a helper, but libraries must // always be capitalized, so we check if the first character is // uppercase. If it is, we are loading a library, not a helper. $type = ($class[0] < 'a') ? 'libraries' : 'helpers'; $file = $class; }
Ale powiedzcie mi w jaki sposób wyciągnąć z parametru $class ten przyrostek? Załóżmy, że wpisuję gdzieś w kodzie
gdzie w całości jest to klasa
new Register
natomiast parametr $class przechwytuje tylko to, co wpisuję na sztywno w skrypcie czyli samo Register.
Register_Sys
pytanie:
Jak zastosować taki myk jak jest w Kohanie?