Powiedzmy, że mam taką strukturę katalogów:
/classes/a/
/classes/b/
/classes/c/
/libraries/
index.php
I teraz w pliku index.php mam użytą funkcję __autoload. Jak zrobić, aby była uniwersalna i radziła sobie z odnajdywaniem odpowiedniej klasy w tych katalogach?
Mam na razie w głowie dwa rozwiązania:
Szukamy klasy: TestowaKlasa
<?php $test = new TestowaKlasa(); ?>
a) Pobieranie lokalizacji klasy
<?php function __autoload($nazwa) { 'TestowaKlasa' => '/classes/b', 'Smarty' => '/libraries' ); require_once($lokalizacja.'/'.$nazwa.'.php'); } ?>
b) Wyszukiwanie wg nazwy klasy
Klasa nazywa się: Classes_B_TestowaKlasa i na podstawie jej nazwy robijam na lokalizację i nazwę.
Macie jakies inne, lepszejsze rozwiązania?