Cele i budowa Konwencja nazewnictwa klas Aby zrozumieć autoloader w Zend Framework, należy najpierw zrozumieć połączenie pomiędzy nazwami klas a ich plikami. Budując Zend Framework zapożyczono ideę organizacji klas z biblioteki PEAR. Według niej relacja klas do plików wynosi 1:1. W skrócie: aby odnaleźć ścieżkę do odpowiedniego pliku znak podkreślenia ("_") w nazwach klas jest zastępowany znakiem oddzielenia katalogu a następnie dodawane jest rozszerzenie ".php". Przykładowo, klasa "Foo_Bar_Baz" odpowiadałaby ścieżce dostępu "Foo/Bar/Baz.php". Dodatkowo respektowane są ustawienia zmiennej konfiguracyjnej PHP - include_path, dzięki czemu możliwe jest użycie include() oraz require() i wyszukanie pliku wg. ścieżki względnej do katalogów w include_path. Dodatkowo, podobnie jak PEAR oraz projekt PHP praktykowane i zalecane jest użycie w kodzie prefiksów charakterystycznych dla projektu lub producenta. To oznacza, że wszystkie klasy powinny dzielić jeden wspólny prefiks. Przykładowo, wszystkie klasy w Zend Framework mają prefiks "Zend_". Taka konwencja chroni przed kolizjami nazw. W ramach Zend Framework przybiera to nazwę prefiksu przestrzeni nazw. Należy zachować ostrożność aby nie pomylić tego z natywną obsługą przestrzeni nazw w PHP. Zend Framework podąża za tymi wskazówkami wewnętrznie ale nasze standardy zachęcają do ich stosowania także w kodzie aplikacji, innych bibliotek itp. Konwencja nazewnictwa i budowa autoloadera Obsługa autoloadera w Zend Framework udostępniona głównie poprzez Zend_Loader_Autoloader charakteryzuje się poniższymi celami i elementami budowy: Zapewnia przeszukiwanie przestrzeni nazw. Jeśli prefiks przestrzeni nazw klasy nie znajduje się na liście zarejestrowanych przestrzeni - od razu zwracana jest wartość FALSE. Dzięki temu może nastąpić szybsze przełączenie do ewentualnego kolejnego Umożliwienie działania autoloadera jako ostatniej instancji. W przypadku, gdy zespół programistów jest w dużym stopniu rozproszony lub lista respektowanych prefiksów przestrzeni nazw jest zmienna, autoloader powinien zachować swoją funkcjonalność w taki sposób, żeby możliwe było użycie każdego prefiksu przestrzeni nazw. Trzeba zwrócić uwagę na fakt, iż takie zachowanie nie jest zalecane i może prowadzić do niepotrzebnego wydłużenia procesu wyszukania pliku. Umożliwienie włączaniania i wyłączania raportowania błędów. Twórcy ZF - jak i większa część społeczności PHP - uważają, że zapobieganie raportowaniu błędów jest złym pomysłem. Jest kosztowne i powoduje ukrycie realnych problemów aplikacji. Domyślnie opcja ta powinna być wyłączona ale jeśli deweloper chce ją włączyć to jest to umożliwione. Umożliwienie skonfigurowania własnych funkcji oferujących funkcjonalność autoloadera. Część deweloperów nie będzie chciała używać Zend_Loader::loadClass() jednocześnie nie rezygnując z mechanizmów Zend Framework. Klasa Zend_Loader_Autoloader umożliwia wyszczególnienie alternatywnej funkcji oferującej taką samą funkcjonalność. Umożliwienie manipulacji łańcuchem funkcji autoload w SPL. Celem tego założenia jest pozwolenie na określenie przez dewelopera dodatkowych funkcji oferujących funkcjonalność autoloadera - np. dla funkcje ładujące zasoby dla klas, które nie mają relacji 1:1 z plikami - aby były zarejestrowane przed lub po domyślnym mechanizmie autoloadera Zend Framework.