Cum se verifică existența unei clase de suprapunere în rubrică

Încerc să verific prin class_exists - funcția din anumite motive nu funcționează.

Exiturile de clasă au o proprietate proastă pentru a încerca să autoloadă o clasă dacă al doilea argument este setat la adevărat (aceasta este valoarea implicită). Funcția verifică dacă clasa nu este prezentă în timpul de execuție curent și prezența clasei în aplicație este disponibilă dacă noua instanță este creată cu noi. În momentul încărcării, PHP se va referi la autoloader-ul dvs., care va încerca în mod unic să încarce fișierul, și nu include_once. după care puteți să salvați situația și să solicitați_once. și o faceți chiar fără a verifica existența dosarului. Prin urmare, aveți o situație potențial mortală cu noi. că cu class_exists.







Mai întâi, autoloaderul nu ar trebui să facă niciodată acțiuni potențial distructive. Pot fi mulți. sistemul de autoloadere PHP este aranjat astfel încât doisprezece persoane să poată veni, să se instaleze pe bootloader și totul să funcționeze - dacă unul nu reușește, următorul merge. Prin urmare, autoloaderul dvs. ar trebui să facă doar nimic. dacă nu poate găsi o clasă.







Cel de-al doilea lucru despre care trebuie spus este managerul de dependență al compozitorului. Chiar nu îmi place că se combină funcțiile managerului de dependență și a autoloaderului, dar în prezent acesta este standardul industriei, astfel încât cel mai simplu mod ar fi acela de a pune autoload-ul pe el.

Dacă totuși doriți să scrie propriul încărcător - trebuie să faci verifică verificarea existenței de fișier și director despre care să numere. Mai bine încă, se face în conformitate cu standardul PSR-4. pe care funcționează compozitorul de autoloader. În ceea ce am înțeles, primul avertisment vă de faptul că specificați include_path de buldozer, și PHP mai întâi caută o clasă de acolo.

În orice caz, după implementarea aplicației corecte de bootloader, veți putea folosi class_exists fără probleme pentru a verifica existența clasei.







Articole similare

Trimiteți-le prietenilor: