50+ PHP nippi ja näpunäidet algajatele ja arendajatele

PHP on ajaveebide ja veebisaitide loomisel kõige kasulikum keel, sellel on palju funktsioone, mida saab kasutada veelgi rohkemate kohandatud funktsioonide tuletamiseks. Oleme kokku kogunud kõige kasulikumad PHP nipid ja näpunäited algajatele ja isegi arendajatele. Need PHP-nipid muudavad teie kodeerimise produktiivsemaks ja tõhusamaks.

50+ PHP nippi ja näpunäiteid algajatele

PHP nippide ja näpunäidete loend

1. kaja on kiirem kui printimine.

2. Mähkige oma string jutumärkidesse ('), mitte topeltjutumärkidesse ("" on kiirem, kuna PHP otsib muutujaid "…" seest, mitte "...", kasutage seda siis, kui te ei kasuta muutujaid, mida peate oma väärtustes hindama. string.

3. Kasutage jutumärkides olevate muutujate asemel sprintf, see on umbes 10x kiirem.

4. Kasutage stringide ühendamise asemel kaja mitut parameetrit (või virnastatud).

5. Kasutage eelarvutusi, määrake for-tsüklite maksimaalne väärtus enne, mitte tsüklis. st ($x=0; $x < count($massiivi); $x) kutsub see iga kord välja funktsiooni count(), kasutage selle asemel $max=count($massiivi) enne for-tsükli algust.

6. Mälu (eriti suurte massiivide) vabastamiseks tühistage või nullige muutujad.

7. Vältige maagiat nagu __get, __set, __autoload.

8. Võimaluse korral kasutage request_once() asemel käsku request().

9. Kasutage OS-i teede lahendamisele kuluvat vähem aega.

10. nõuded() ja include() on igas mõttes identsed, välja arvatud nõutavad peatused, kui fail puudub. Toimivuse osas on erinevused väga väikesed.

11. Alates PHP5-st võib skripti käivitamise aja leida kaustast $_SERVER['REQUEST_TIME'], kasutage seda time() või microtime() asemel.

12. PCRE regex on kiirem kui EREG, kuid vaadake alati, kas saate selle asemel kasutada kiiremaid natiivseid funktsioone, nagu strncasecmp, strpbrk ja stripos.

13. PHP-s XML-iga sõelumisel proovige xml2array-d, mis kasutab PHP XML-i funktsioone, HTML-i jaoks võite proovida PHP DOM-dokumenti või PHP4-s DOM XML-i.

14. str_replace on kiirem kui preg_replace, str_replace on üldiselt parim, kuid strtr on mõnikord kiirem suuremate stringidega. Ary() kasutamine str_replace sees on tavaliselt kiirem kui multiple str_replace.

15. "Else if" avaldused on kiiremad kui valitud avaldused aka case/switch.

16. Vigade summutamine @-ga on väga aeglane.

17. Ribalaiuse kasutamise vähendamiseks lülitage Apache v2-s sisse mod_deflate või proovige Apache v1 puhul mod_gzip.

18. Kui olete nendega lõpetanud, sulgege oma andmebaasiühendused.

19. $rida['id'] on 7 korda kiirem kui $rida[id], sest kui sa jutumärke ei esita, peab ta ära arvama, millist indeksit sa silmas pidasid, eeldades, et sa ei pidanud silmas konstanti.

20. Kasutamine märgendid PHP deklareerimisel, kuna kõik muud stiilid, sealhulgas lühikesed sildid, on amortiseerunud.

21. Kasutage ranget koodi, vältige vigade, teadete ja hoiatuste mahasurumist, mille tulemuseks on puhtam kood ja vähem üldkulusid. Kaaluge veateadete (E_ALL) alati sisse lülitamist.

22. Apache httpd teenindab PHP skripte 2–10 korda aeglasemalt kui staatilist lehte. Proovige serveripoolsete skriptide asemel kasutada staatilisi lehti.

23. PHP-skriptid (kui need pole vahemällu salvestatud) kompileeritakse iga kord, kui neile helistate. Installige PHP vahemällu salvestav toode (nt memcached või eAccelerator või Turck MMCache), et tavaliselt kompileerimisajad eemaldades suurendada jõudlust 25–100%. Saate isegi eAcceleratori seadistada cPanelis, kasutades EasyApache3.

24. Alternatiivne vahemällu salvestamise tehnika, kui teil on lehti, mis ei muutu liiga sageli, on PHP-lehtede HTML-väljundi vahemällu salvestamine. Proovige Smartyt või Cache Lite'i.

25. Võimaluse korral kasutage strleni asendamiseks isset. (st: if (strlen($foo) < 5) { echo "Foo on liiga lühike"; } vs. if (!isset($foo{5})) { echo "Foo on liiga lühike"; } ).

26. ++$i on kiirem kui $ i++, seega kasutage võimaluse korral eelkasvatamist.

27. Kasutage PHP lugematuid eelmääratletud funktsioone, ärge proovige luua oma funktsioone, kuna algsed funktsioonid on palju kiiremad; Kui teil on väga aega ja ressurssi nõudvaid funktsioone, kaaluge nende kirjutamist C-laiendite või moodulitena.

28. Profileerige oma kood. Profileerija näitab teile, millised teie koodi osad kui palju aega kulutavad. Xdebugi silur sisaldab juba profileerijat. Profileerimine näitab kitsaskohti ülevaates.

29. Dokumenteerige oma kood.

30. Õppige vahet heal ja halval koodil.

31. Pidage kinni kodeerimisstandarditest, nii on teil lihtsam mõista teiste inimeste koodi ja teised saavad teie koodist aru.

32. Eraldi kood, sisu ja esitlus: hoidke oma PHP-koodi HTML-ist eraldi.

33. Ärge viitsige kasutada keerulisi mallisüsteeme, nagu Smarty, kasutage seda, mis on juba PHP-s, vaadake ob_get_contents ja ekstrakti ning lihtsalt tõmba andmed oma andmebaasist.

34. Ärge kunagi usaldage muutujaid, mis pärinevad kasutaja maast (nt $_POST), kasutage mysql-i kasutamisel mysql_real_escape_string ja HTML-ina väljastamisel htmlspecialchars.

35. Turvakaalutlustel ärge kunagi hoidke oma veebijuures midagi, mis võiks avaldada teavet teede, laienduste ja konfiguratsiooni kohta, näiteks display_errors või phpinfo().

36. Lülitage register_globals välja (see on vaikimisi mingil põhjusel keelatud!). Ükski tootmistaseme skript ei peaks seda lubama, kuna see on turvarisk. Parandage kõik skriptid, mis seda nõuavad, ja parandage kõik skriptid, mis seda nõuavad, kasutades unregister_globals(). Tehke seda kohe, kuna see on määratud PHP6-s eemaldamiseks.

37. Vältige paroolide salvestamisel ja hindamisel lihtteksti kasutamist, et vältida kokkupuudet, selle asemel kasutage räsi, näiteks md5 räsi.

38. Kasutage ip2long() ja long2ip() IP-aadresside salvestamiseks stringide asemel täisarvudena.

39. Te saate vältida ratta uuesti leiutamist, kasutades PEAR projekti, mis annab teile olemasoleva kõrgetasemelise koodi.

40. Header('Asukoht: '.$url) kasutamisel; pea meeles, et järgi seda täringuga(); kui skript jätkab töötamist, isegi kui asukoht on muutunud, või vältige võimaluse korral selle kõigi kooskasutamist.

41. Kui meetod võib OOP-is olla staatiline, deklareerige see staatiliseks. Kiiruse paranemine on 4 korda ...

42. Kohaliku muutuja suurendamine OOP-meetodis on kiireim. Peaaegu sama, mis funktsioonis kohaliku muutuja kutsumine ja globaalse muutuja suurendamine, on 2 korda aeglane kui lokaalne muutuja.

43. Objekti omaduse (nt $this->prop++) suurendamine on 3 korda aeglasem kui kohaliku muutuja puhul.

44. Määratlemata kohaliku muutuja suurendamine on 9-10 korda aeglasem kui eelinitsialiseeritud muutuja.

45. Lihtsalt globaalse muutuja deklareerimine ilma seda funktsioonis kasutamata aeglustab asja (umbes sama palju kui kohaliku muutuja suurendamine). Tõenäoliselt kontrollib PHP, et näha, kas globaalne on olemas.

46. ​​Meetodi kutsumine näib olevat klassis määratletud meetodite arvust sõltumatu, kuna lisasin testiklassi veel 10 meetodit (enne ja pärast katsemeetodit) ilma jõudluse muutmata.

47. Tuletatud klasside meetodid töötavad kiiremini kui põhiklassis määratletud meetodid.

48. Funktsiooni kutsumine ühe parameetri ja tühja funktsiooni kehaga võtab umbes sama kaua aega kui 7-8 $localvar++ operatsiooni tegemiseks. Sarnane meetodi kutse on loomulikult umbes 15 $localvar++ operatsiooni.

49. Kõik ei pea olema OOP, sageli on see lihtsalt üleliigne, iga meetodi ja objekti kõne kulutab palju mälu.

50. Ärge kunagi usaldage kasutajaandmeid, vältige oma stringe, mida kasutate SQL-päringutes, kasutades mysql_real_escape_string, mitte mysql_escape_string või kaldkriipsud. Pange tähele ka seda, et kui magic_quotes_gpc on lubatud, peaksite esmalt kasutama kaldkriipse.

51. Vältige funktsiooni PHP mail() päise sisestamise probleemi.

52. Tühista oma andmebaasi muutujad (minimaalne parool), pärast andmebaasiühenduse loomist ei tohiks seda vaja minna.

53. RTFM! PHP pakub fantastilist juhendit, mis võib olla üks parimaid, mis muudab selle väga praktiliseks keeleks, pakkudes töönäiteid ja rääkides lihtsas inglise keeles.

Need on mõned PHP nipid ja näpunäited, mis võivad olla väga kasulikud neile, kes alles alustasid PHP keele õppimist, ja ka neile, kes arenevad alates heast ajast. RTFM on siiski kõige tõhusam viis PHP õppimiseks.

Aishwar Babber

Aishwar Babber on kirglik blogija ja digitaalne turundaja. Talle meeldib rääkida ja blogida uusimast tehnikast ja vidinatest, mis motiveerib teda jooksma GizmoBase. Praegu praktiseerib ta oma digitaalse turunduse, SEO ja SMO teadmisi täiskohaga turundajana erinevates projektides. Ta on aktiivne investor AffiliateBay ja ImageStationi direktor.

22 mõtet teemal "50+ PHP nippi ja näpunäiteid algajatele ja arendajatele"

  1. Suurepärased näpunäited, kuid arvan, et peaksite muutma punkti 37. Lihtne md5 räsi ei ole maailmas, milles me elame, piisavalt keerukas.

    vastus
  2. nr 15
    kui/muu on kiirem kui lüliti, siis sul on õigus, tegin mõned testid,
    kuid peaksite kaaluma, millisel juhul lülitit kasutada.

    Olen sellega sõitnud, testinud 10,1000,100000 1 XNUMX XNUMX ja XNUMX miljon tsüklit ning tulemus on:
    100 0,13 tsükliga saate kohalikus masinas XNUMX s erinevuse (välises serveris peaksite erinevust saama vähem).

    Seega peaksite kaaluma lüliti if/else kasutamist. Ma eelistan kasutada lülitit puhtama koodi tõttu. 1 lüliti, 2 lüliti, isegi 100 lüliti kasutamine if/else asemel … vahet pole, see on mõttetu.

    vastus
  3. nr 26
    teen nüüd testi,
    $i++ ja ++$i-ga

    see on lihtne – number 26 on mõttetu seni, kuni soovid kasutada rohkem kui 10miljoni. tsüklid.
    Ja erinevus?

    10milline tsükkel $i++ 2.67448 s
    10mil tsüklit ++$i 2.605528 s

    vastus
  4. 24. (…) Proovige Smartyt või Cache Lite'i.
    33. Ärge viitsige kasutada keerulisi mallisüsteeme nagu Smarty

    ok.

    (mina isiklikult lihtsalt kustutaksin #33; smartyl (või muudel mallisüsteemidel) on ob_-funktsioonidega võrreldes palju eeliseid...)

    vastus
  5. Kaja on kiirem kui ühe opkoodiga printimine, nii et see pole tegelikult oluline. Ja print() on funktsioon, echo mitte. Proovi seda:

    $muutuja ja print 'muutuja on määratud!';

    Ja suurendamise kohta: $i += 1; on kiireim.

    Suurepärane artikkel, aitäh!

    vastus
  6. Suurepärane artikkel, aitäh jagamast
    Suurepärased näpunäited, kuid arvan, et peaksite muutma punkti 37. Lihtne md5 räsi pole maailmas, milles me elame, piisavalt keerukas.

    vastus

Jäta kommentaar