Citat:
Ursprungligen postat av ConnyWesth
Jag har testat lite OOP med PHP och autoloader som jag tänkte dela med mig av:
--- klippt ---
|
Jag skulle rekommendera dig att fundera på att följa standarder. Jag vet att PHP är rätt nytt för dig så du kanske inte känner till dom.
PSR-0 har blivit en väl vedertagen standard för autoloading. Den ger dig interopabilitet mellan annan välskriven kod.
https://github.com/php-fig/fig-stand...epted/PSR-0.md
Vidare är en full include_path baserad autoloading långsam samt mer error-prone och svåröveriktlig då du faktiskt måste åt en server-variabel för att se hela dess innebörd. Projektet blir alltså beroende av någon utanför projektet i sig. De flesta välskrivna projekt som har använt detta tidigare har använt en classmap generator för att lättare kunna överblicka och få bättre prestanda.
En exempel-impementation av en bra skriven PSR-0 autoloader kan du se på
https://gist.github.com/221634 . Den är fullt produktionsduglig och är skriven av några av de främsta PHP-profilerna (både Zends och Symfonys huvudutvecklare finns representerade t ex).
Angående din kommentar om require_once så blir den inte alls gällande när du har en väl skriven autoloader. Det finns då längre ingen anledning att köra _once-funktionerna då andra användandet av klassen inte kommer försöka inkludera filen igen. Så en _once ger dig då ENDAST dubbla stat calls helt utan fördelar.