Kontrollera om class finns i PHP
Publicerad i PHP
Undvik ett vanligt fel i PHP-utveckling genom att kontrollera om den klass (engelskans "class") med funktioner som du vill nyttja faktiskt finns innan du använder den.
Ett vanligt misstag när man kodar i PHP är att skriva kod som använder funktioner inom klasser, utan att för den delen kolla om de faktiskt finns. Det kanske låter självklart, men faktum är att många tar för givet att klasser man är beroende av alltid finns där.
Så är alltså inte fallet, och även om det är ovanligt att klasser försvinner kan det exempelvis röra sig om att du kör dina PHP-applikationer på ett delat webbhotell som har många olika kunders behov att tillgodose — skulle din klass vara allt för resurskrävande skulle den kunna inaktiveras, och då sitter du där med skägget i brevlådan när hela din plattform stannar.
Kontrollera om class finns
Hur gör man då för att kontrollera om en class finns när man skriver PHP-kod? Som tur är finns det en funktion som är rakt på sak och dessutom har ett intuitivt namn; class_exists().
Funktionen class_exists() ger dig svar i formen av true eller false beroende på om din klass är tillgänglig eller inte, och du använder det i en if-sats i PHP, exempelvis så här;
if (class_exists(webbhotellClass)) { echo 'klass finns!'; } else { echo 'klass finns inte'; }
Det viktiga här är att din PHP-kod tar informationen den får som svar i den här kontrollen och gör något annorlunda om din klass saknas. Om du försöker använda en funktion som ligger i en klass som inte finns kommer du även här få ett fel som är så pass allvarligt i PHP att hela applikationen stannar.
Inte teckenkänslig
Funktionen är inte teckenkänslig, vilket går i linje med den övriga hanteringen av klasser i PHP; det spelar ingen roll om du anger dem som myPhpClass eller MYPHPCLASS — PHP kommer ändå veta vilken klass du menar.
Skulle du däremot ha en som heter samma sak så blir det så klart en krock, så kom ihåg att namnen på dina klasser måste vara helt unika, och inte bara sett till stora och små bokstäver.
Populära klasser i PHP
Det finns mängder med tredjepartsklasser i PHP, som är vanligen förekommande hos bra webbhotell och där du ofta kan välja själv precis vilka klasser du vill ha som tillägg på ditt konto.
Några väldigt populära klasser är exempelvis;
- Autentiseringsmetoden OAuth
- Stöd för andra databastyper som MongoDB och PostgreSQL
- NoSQL-modulen Redis
- Kodcache med OPCache
- Bildhantering med imagick
- Stöd för hantering av .zip-filer med zip
- PDF-hantering med pdf-klassen
Som ni märker finns det många olika varianter, och vid alla dessa är det viktigt att komma ihåg att om du är beroende av funktioner och kod i dessa klasser så måste du även ha funktioner som kontrollerar status och gör undantag om klasserna skulle saknas när din kod exekveras.
Välj själv
Hos exempelvis Inleed väljer du själv i deras Direct Admin-kontrollpanel vilka tillägg du vill ska vara aktiva eller inaktiva.
Här kan det både röra sig om vilka moduler du behöver, men också vilka du inte behöver — vill du spara på kraften på ditt webbhotellkonto kan du enkelt inaktivera allt du faktiskt inte behöver.
Detaljer
- Titel: Kontrollera om class finns i PHP
- Publicerad:
- Skribent: Christian W.
- Kategorier: PHP