PHP programer uči od nule. Lično iskustvo kao dokaz: PHP programski jezik je glavni na Webu

PHP (P HP: H hipertekst P reprocessor, promišljeni predprocesor

Hypertext) je programski jezik za skriptiranje fokusiran na web.

U lekciji 1 ćemo se upoznati sa osnovnom sintaksom, kao i napisati našu prvu skriptu.

Osnove sintakse:

-
- početak i kraj skripte
operator dodjeljivanja -=

Izlaz tekstualnih informacija - echo (može ispisati html kod)

While(uvjet petlje)(akcija) - petlja
- if(uvjet)(radnja koja se izvodi ako je uvjet netačan)else(radnja koja se izvodi ako je uvjet netačan) - stanje
-

Lekcija 1. Kreiranje prve skripte

Kao što vidite, skripta se sastoji od jednog reda.

Za izvršavanje skripte potreban vam je odgovarajući softver, za korisnike Windowsa preporučujem Denwer (http://denwer.ru)
Nakon instaliranja Denwera, kreirajte fasciklu Script.test u direktorijumu hosts, u kojoj, zauzvrat, kreirajte fasciklu

WWW. U WWW folderu, kreirati datoteku index.php? u koji prenosimo sadržaj našeg fajla.

Nakon što sačuvate datoteku, ponovo pokrenite Denwer. Zatim u liniju pretraživača ukucajte script.test

I voila! Vidimo natpis Hello World!

Kako ne napisati Hello World:

Hello World Ne piše se ovako

dakle:

Pa, sigurno nije:

Završetak.

Na tome je naša lekcija došla do kraja, ali na kraju mali izbor korisnih linkova:
denwer.ru - stranica na kojoj možete preuzeti Denwer
en.wikipedia.org/wiki/PHP - Šta je PHP
http;//php.net - PHP vodič

oznake: PHP

Ovaj članak ne podliježe komentarima, jer njegov autor još nije punopravni član zajednice. Autora ćete moći kontaktirati tek nakon što primi

Za prvih nekoliko tačaka pokušat ću napisati preporuke u slobodnoj formi.

Prvo i najvažnije, da biste dobro naučili PHP programiranje, morate dobro naučiti programiranje. Ovo je veoma važna stvar. Većina ljudi koji pišu na PHP-u nemaju pojma o programiranju. Čak i o osnovnim stvarima kao što su formatiranje koda, otklanjanje grešaka, profilisanje, rukovanje greškama, operacije sa datotekama. Možda ćete primijetiti da ne govorim o OOP-u. Ovo je potpuno zasebna tema, OOP se mora posebno učiti. Nažalost, od 100 ljudi koji kažu da poznaju OOP, 90 su banalni copy-pasteri koji su naučili sintaksu, ali ne razumiju značenje objekata. Ali za igranje šaha nije dovoljno znati kako se figure kreću.

Također bi bilo lijepo odgovoriti na pitanje - zašto želite da naučite programiranje u PHP-u? Pitanje uopšte nije besposleno. Mnogi ljudi u njemu miješaju gomilu različitih koncepata. Na primjer, CMS je već spomenut ovdje. i zaista, ako govorimo o zarađivanju novca, onda je prilagođavanje Jumle i pisanje usranih modula za nju finansijski mnogo isplativije od mogućnosti da se nešto napiše od nule. Za freelancing, u svakom slučaju.

Generalno, PHP se može koristiti na mnogo različitih načina. I za svaki slučaj to će biti svoj jezik.

  • Možete zakovati sajt za goste ili vizit karte na "goli" PHP - i u tome nema ničeg lošeg ili sramotnog. Naprotiv, ovo je plus jezika koji je takođe pogodan za takve svrhe, a da ne vučete par miliona redova koda zarad sajta od pet stotina.
  • Možete napisati profesionalni portal na osnovu nekog od postojećih okvira i razviti ga.
  • Možete napisati prilagođeni highload projekat, za koji ćete morati ponovo napisati svoj okvir u čistom PHP-u.
  • Moguće je, kao što je već spomenuto, zakivati ​​stranice na osnovu neke vrste CMS-a.

Dosta opcija! tako da prvo morate odlučiti šta želite.

Gore su pričali o JS + CSS - ne morate slušati, ovo je potpuna glupost. Front-end programiranje je potpuno odvojena stvar, mnogo više vizualna nego apstraktna. I, hvala Bogu, sve više poslodavaca to počinje shvaćati. Mada, opet, ako ste slobodni i majstor svih zanata, onda ne možete bez toga.

Ali ako radite kao hardcore server programer u timu, onda trebate imati samo opću predstavu o HTML / JS / CSS (pošto su tekstovi na ovim jezicima, u stvari, gotovo jedini rezultat PHP rada).

Ali ono što svakako trebate dobro znati iz povezanih tehnologija je HTTP protokol, uređaj sistema datoteka, rad c komandna linija u Linuxu.

Sada za ostalo

Mysql je još uvijek kamen temeljac za pohranu podataka na webu. Treba znati i razumjeti spojeve, indekse

Okviri su obavezni. Ovdje, međutim, postoji problem izbora, ali između njih nema suštinske razlike. Yii je dobar izbor.

Ne treba vam Github, ne morate ga znati. Treba znati git.
Ali ono što je obavezno za web programera je sposobnost korištenja Google-a. Barem na nivou sposobnosti kopiranja i zalijepanja poruke o grešci u formular za pretragu ili pisanja pitanja “Šta je git” ;-)

Jer da biste radili u timu, morate znati neku vrstu sistema kontrole verzija, a git je de facto standard. Razumjeti princip rada i osnovne komande - checkout, commit, push.

Poznavanje HTML-a vam omogućava da dobijete ideju o tome kako kreirati web stranice. I čak vam daje priliku da samostalno razvijate internetske resurse. Međutim, upotreba ovog jezika za označavanje je ograničena zbog statične prirode stranica kreiranih s njim. Konkretno, koristi se u većini slučajeva za razvoj sajtova za vizit karte. Stvar je u tome da ako trebate napraviti bilo kakve promjene, trebate urediti svaku stranicu zasebno, a ako ih resurs ima nekoliko desetina ili stotina, takav proces neće biti samo zamoran, već i vremenski rastegnut.

Upotreba PHP-a (akronim za PHP: Hypertext Preprocessor "preprocesor hiperteksta") omogućava vam da optimizujete administraciju sajta, skriptni programski jezik koji vam omogućava da kreirate dinamički ispunjene veb stranice. Njegova upotreba omogućava da se resurs učini zaista interaktivnim, a proces upravljanja sajtom - jednostavnim i manje skupim u smislu napora. Online kurs PHP za početnike od WebShakea pomaže vam da naučite osnove skriptnog jezika od nule, naučite kako da kreirate dinamičke resurse koje je lako modifikovati i održavati.

Naši tekstualni materijali i video tutorijali su dizajnirani da budu razumljivi svakom korisniku koji želi naučiti web programiranje. A domaći zadatak, koji se nalazi na kraju svake teme, omogućit će vam da učvrstite stečeno znanje i usavršite njihovu primjenu u praksi.

1. Upoznajte PHP Reference

Ako ste novi u PHP-u, onda je vrijeme da provjerite sjajnu PHP referencu. PHP Reference je nevjerovatno sveobuhvatan i ima zaista korisne komentare na svaki članak. Prije nego što postavite pitanja ili pokušate sami riješiti problem, uštedite vrijeme i samo se uputite prema vodiču. Odgovori na vaša pitanja su već zgodno smješteni u korisnom članku na PHP.net stranici.
U tom slučaju preporučujemo da sami potražite referentne knjige na ruskom, po mogućnosti php za početnike. Bit će nam drago ako u komentarima na članak date link do korisnih referentnih knjiga (Samo imajte na umu da je ovo prijevod članka).

2. Uključite prijavljivanje grešaka

6. Uvucite i koristite razmake za čitljivost

Ako ne koristite uvlačenje i razmak u svom kodu, rezultat izgleda kao slika Jacksona Pollacka. Pobrinite se da vaš kod bude čitljiv i pretraživ, jer ćete gotovo sigurno ubuduće unositi promjene u njega. IDE i moderni uređivači teksta mogu automatski uvlačiti kod.

7. Neka vaš kod bude slojevit

Niziranje vaših aplikacija nije ništa drugo nego dijeljenje različitih komponenti vašeg koda na dijelove. U budućnosti, ovo će vam dati mogućnost da lako promijenite kod.

8. Uvijek koristite

Programeri često pokušavaju da koriste skraćenice u PHP izjavama. Evo kako se to obično radi:

<% echo "Hello world"; %>

echo "Zdravo svijete" ;

<% echo "Hello world" ; %>

Iako ovo štedi nekoliko znakova, sve ove metode su zastarjele i nezvanične. držati se standarda, jer je garantovano podržan u svim budućim verzijama.

9. Koristite smislene, dosljedne naslove

Imenovanje nije samo za vaše zadovoljstvo. Nema ništa gore od probijanja besmislenih konvencija drugog programera. Pomozite sebi i drugima koristeći smislena imena za svoje klase i svojstva.

10. Komentar, komentar, komentar

Osim korištenja razmaka i uvlačenja za odvajanje koda, također ćete morati koristiti inline komentare za označavanje koda. Kasnije ćete se zahvaliti kada se budete morali vratiti i potražiti nešto u kodu, ili ako se jednostavno ne sećate šta je određena funkcija uradila. Također je korisno za one koji trebaju pregledati vaš kod.

11. Instalirajte MAMP/WAMP

MySQL je najpopularnija vrsta baze podataka koja se koristi sa PHP-om (iako nije jedina). Ako trebate da postavite lokalno okruženje za razvoj i testiranje vaših PHP aplikacija na računaru, razmislite o instalaciji MAMP (Mac) ili WAMP (Windows). Instaliranje MySQL-a na vašem računaru može biti naporan proces, a oba ova softverska paketa sadrže MySQL. Pametno i jednostavno.

12. Postavite ograničenja na svoje skripte

Postavljanje vremenskog ograničenja za PHP skripte je vrlo odgovorna stvar. Postoje slučajevi kada se skripte pokvare, a kada se to dogodi, morat ćete koristiti svojstvo set_time_limit da biste izbjegli beskonačne petlje i vremenska ograničenja veze s bazom podataka. Set_time_limit postavlja vremensko ograničenje za maksimalan broj sekundi u kojima će skripta biti pokrenuta (podrazumevano 30). Nakon ovog vremena javlja se fatalna greška.

13. Koristite objekte (ili OOP)

Objektno orijentirano programiranje (OOP) koristi objekte za predstavljanje komponenti aplikacije. OOP nije samo način da se vaš kod razbije na odvojene logičke sekcije, on također smanjuje ponavljanje koda i čini ga mnogo lakšim modificiranjem u budućnosti.

14. Shvatite razliku između jednostrukih i dvostrukih navodnika

Korišćenje jednostrukih navodnika u stringovima je efikasnije jer parser ne mora da prebacuje kod tražeći posebne znakove i druge stvari koje dozvoljavaju dvostruki navodniki. Gdje je moguće, pokušajte uvijek koristiti jednostruke navodnike.

Primjedba: Zapravo, to nije nužno tačno. Benchmark testovi pokazuju da kada se testiraju nizovi bez varijabli, postoje neke prednosti u performansama korištenja dvostrukih navodnika.

15. Nemojte stavljati phpinfo() u svoj web root

Phpinfo je divna stvar. Jednostavnim kreiranjem PHP datoteke koja sadrži:

i ako ga prikačite negdje na serveru, možete odmah saznati sve o vašem serverskom okruženju. Međutim, mnogi početnici će postaviti datoteku koja sadrži phpinfo() u web root servera. Ovo je krajnje nesigurna praksa, i ako neko sa radoznalim umom dobije pristup, potencijalno bi mogao zasmetati vašem serveru. Uvjerite se da je phpinfo() na sigurnom mjestu i kao dodatnu mjeru, uklonite ga kada završite.

16. Nikada, nikad ne vjerujte svojim korisnicima

Ako vaša aplikacija ima mjesta za prijavu korisnika, uvijek biste trebali pretpostaviti da će neko pokušati unijeti upitni kod. (Ne impliciramo da su vaši korisnici loši ljudi. To je samo zdrav razum.) Sjajan način da svoju web lokaciju zaštitite od hakera je da uvijek inicijalizirate svoje varijable kako biste zaštitili svoju stranicu od XSS napada. PHP.net ima primjer pravilno zatvorene forme sa inicijaliziranim varijablama:

if (ispravan_korisnik ($_POST [ "korisnik" ] , $_POST [ "lozinka" ] ) (

$login = istina;

if ($login) (

forward_to_secure_environment();

17. Držite lozinke šifrovane

Mnogi početnici u PHP-u često izbacuju osjetljive podatke poput lozinki u bazu podataka bez korištenja enkripcije. Razmislite o korištenju MD5 za šifriranje lozinki prije dijeljenja njihove baze podataka.

echo md5("moja lozinka"); // renders-

echo md5("moja lozinka") ; // renders-

Primjedba: Međutim, imajte na umu da su MD5 hešovi kompromitovani već duže vrijeme. Naravno, oni su sigurniji nego ne, ali uz pomoć ogromne "spektralne tablice" hakeri mogu povratiti vaš hash. Za još veću sigurnost, razmislite o dodavanju "soli" (smetnje bijelog šuma). "Salt" je obično dodatni skup znakova koji dodajete prilagođenom nizu.

18. Koristite alate za vizualizaciju baze podataka

Ako vam je teško planirati i modificirati baze podataka za vaše PHP aplikacije, razmislite o korištenju alata za vizualizaciju baze podataka. Korisnici MySQL-a mogu raditi sa DDBDesigner-om i MySQL Workbench-om kako bi vizualno dizajnirali svoje baze podataka.

19. Koristite Output Buffering

Izlazno baferovanje je jednostavan način da značajno poboljšate kvalitet i brzinu vaše PHP skripte. Bez baferovanja izlaza, vaša skripta će prikazati HTML na stranici kako se obrađuje - u komadima. Dodavanje izlaznog baferovanja omogućava PHP-u da pohrani HTML kao varijablu i pošalje ga pretraživaču u jednom komadu.

Da biste aktivirali funkciju baferiranja izlaza, jednostavno dodajte ob_start() ovako na početak datoteke.

Primjedba: Iako nije potrebno, općenito se smatra dobrom praksom da se samo pridržavate funkcije “ob_end_flush();”. prema kraju dokumenta. P.S. Želite li i komprimirati HTML? Samo promijenite "ob_start();" u "ob_start('ob_gzhandler')";

XHTML

bez naslova

bez naslova

20. Zaštitite svoju skriptu od napada SQL injekcije

Ako ne izbjegnete znakove koji se koriste u SQL nizovima, vaš je kod ranjiv na napad SQL injekcije. Ovo se može izbjeći korištenjem funkcije mysql_real_escape_string ili pripremljenih SQL izraza.

Evo primjera mysql_real_escape_string u akciji:

$username = mysql_real_escape_string($GET["username"]);

$username = mysql_real_escape_string ($GET [ "username" ] ) ;

I pripremljena izjava:

21. Isprobajte ORM

Ako pišete objektno orijentisani PHP, možete koristiti OR-mapiranje (ORM). ORM vam omogućava da konvertujete podatke između relacionih baza podataka i objektno orijentisanih programskih jezika. Ukratko, ORM omogućava rad sa bazama podataka na isti način na koji radite sa klasama i objektima u PHP-u.

Postoji mnogo ORM biblioteka za PHP kao što je Propel, a ORM je ugrađen u PHP okvire kao što je CakePHP.

22. Stranice vođene keširanjem baze podataka

Keširanje PHP stranica vođenih bazom podataka je odlična ideja za poboljšanje brzine učitavanja i performansi vaše skripte. Stvarno nije tako teško kreirati i dohvatiti datoteke statičnog sadržaja pomoću našeg dobrog prijatelja ob_start(). Evo primjera preuzetog sa Snipe.net:

// VRH vaše skripte $cachefile = "cache/".basename($_SERVER["SCRIPT_URI"]); $cachetime = 120 * 60; // 2 sata // Posluži iz keš memorije ako je mlađi od $cachetime if (file_exists($cachefile) && (time() - $cachetime< filemtime($cachefile))) { include($cachefile); echo ""; exit; ) ob_start(); // pokreni izlazni bafer // Ovdje je vaša normalna PHP skripta i HTML sadržaj // DNO vaše skripte $fp = fopen($cachefile, "w"); // otvorite keš datoteku za pisanje fwrite($fp, ob_get_contents()); // spremite sadržaj izlaznog bafera u datoteku fclose($fp); // zatvorite datoteku ob_end_flush(); // Pošaljite izlaz u pretraživač

// VRH Vašeg skripta

$cachefile = "cache/" . osnovno ime ($_SERVER [ "SCRIPT_URI" ] ) ;

$cachetime = 120 * 60 ; // 2 sata

// Služi iz keša ako je mlađi od $cachetime

if (file_exists ($cachefile ) && (vrijeme () - $cachetime< filemtime ($cachefile ) ) ) {

uključuje ($cachefile) ;

Sandbox

povuci 25. jul 2013. u 13:07

PHP od nule. Lekcija 1

  • PHP,
  • Programiranje

PHP (P HP: H hipertekst P reprocessor, promišljeni predprocesor

Hypertext) je programski jezik za skriptiranje fokusiran na web.

U lekciji 1 ćemo se upoznati sa osnovnom sintaksom, kao i napisati našu prvu skriptu.

Osnove sintakse:

-
- početak i kraj skripte
operator dodjeljivanja -=

Izlaz tekstualnih informacija - echo (može ispisati html kod)

While(uvjet petlje)(akcija) - petlja
- if(uvjet)(radnja koja se izvodi ako je uvjet netačan)else(radnja koja se izvodi ako je uvjet netačan) - stanje
-

Lekcija 1. Kreiranje prve skripte

Kao što vidite, skripta se sastoji od jednog reda.

Za izvršavanje skripte potreban vam je odgovarajući softver, za korisnike Windowsa preporučujem Denwer (http://denwer.ru)
Nakon instaliranja Denwera, kreirajte fasciklu Script.test u direktorijumu hosts, u kojoj, zauzvrat, kreirajte fasciklu

WWW. U WWW folderu, kreirati datoteku index.php? u koji prenosimo sadržaj našeg fajla.

Nakon što sačuvate datoteku, ponovo pokrenite Denwer. Zatim u liniju pretraživača ukucajte script.test

I voila! Vidimo natpis Hello World!

Kako ne napisati Hello World:

Hello World Ne piše se ovako

dakle:

Pa, sigurno nije:

Završetak.

Na tome je naša lekcija došla do kraja, ali na kraju mali izbor korisnih linkova:
denwer.ru - stranica na kojoj možete preuzeti Denwer
en.wikipedia.org/wiki/PHP - Šta je PHP
http;//php.net - PHP vodič

oznake: PHP

Ovaj članak ne podliježe komentarima, jer njegov autor još nije punopravni član zajednice. Autora ćete moći kontaktirati tek nakon što primi

mob_info