Përgatitja e ambientit të punës

## Instalimi dhe konfigurimi i LAMP/WAMP serverit

Një fillestar ka nevojë të njihet me tërë procesin e instalimit dhe konfigurimit të programeve të nevojshme, për të qenë në gjendje pastaj t’i testojë shembujt e dhënë në manual.

Nëse kodin nga shembulli i parë do të tentonim ta ekzekutonim duke e hapur fajllin leksioni1.php drejtpësëdrejti nga shfletuesi, ai fajll do të na ofrohej për shkarkim dhe nuk do të hapej si Web faqe, siç do të prisnim nga përvojat e mëhershme me HTML dokumente.

Kjo ndodh për shkak se faqja që përmban PHP kod duhet së pari të procesohet në Web server, për t’u transformuar në HTML dokument të cilin pastaj mund ta “kuptojë” një shfletues. Derisa nuk procesohet, është fajll i tipit të panjohur për shfletuesin, prandaj ai ofron vetëm mundësinë e shkarkimit.

Për të qenë në gjendje për të zhvilluar PHP aplikacione në kompjuterin tuaj, nevojitet të instalohen disa aplikacione të cilët veprojnë në koordinim me njëri-tjetrin. Programet e nevojshme janë:

  • Apache Server
  • PHP
  • MySQL

Të gjitha këto aplikacione mund të shkarkohen nga Web faqe përkatës e të tyre dhe të instalohen secili veçmas, mirëpo pastaj nevojitet konfigurimi i tyre për t’i bërë që të funksionojnë si një tërësi. Ky proces di të jetë i ndërlikuar dhe i vështirë për fillestarët, prandaj zgjidhja është në shkarkimin dhe instalimin e të ashtuquajturve Apache–MySQL–PHP packages (AMP), të cilat kanë instalues që i bën këto konfigurime në mënyrë automatike, ku kërkohen intervenime minimale të përdoruesit.

AMP stack

Edhe pse është i mundur instalimi i secilit prej komponentave veç e veç, për shkak të konfigurimit të ndërsjelltë që nuk është i lehtë për fillestarë, mund të zgjedhur të instalojmë një «AMP stack».

AMP është akronim për Apache – MySQL – Perl/PHP/Python. Këto janë pako softuerike që përmbajnë kombinime të ndryshme të programeve.

  • LAMP – për Linux
  • WAMP – për Windows
  • MAMP – për Macintosh

AMP stack: Cross-platform

  • XAMPP
  • AMPPS
  • Zend Server Community Edition
  • Bitnami MAMPStack, LAMPStack, WAMPStack, RubyStack, DjangoStack, JRubyStack, LAPPStack, WAPPStack, MAPPStack, TomcatStack, JBoss, Solr, NodeJS (Open Source License, Apache 2, PHP 5.x,MySQL 5, Python 2.4)

AMP stack: Linux

  • LAMP
  • Bitnami LAMPStack (Open Source License, Apache 2/1.3, PHP 4.x/5.x, MySQL 4.1/5, Python 2.3/2.4)
  • Bitnami LAPPStack (Open Source License, Apache 2, PHP 5.x, PostgreSQL 8.1, Python 2.4)
  • AMPPS
  • XAMPP for Linux

AMP stack: Mac

  • AMPPS
  • MAMP
  • DAMP
  • Bitnami MAMPStack (Open Source License, Apache 2, PHP 5.x, MySQL 5, Python 2.4)
  • XAMPP for OS X

AMP stack: Windows

  • AMPPS
  • EasyPhp
  • Bitnami WAMP Stack
  • WAMPServer
  • XAMPP
  • Uniform Server
  • UwAmp
  • WT-NMP
  • WPN-XM Server Stack

IDE

Komerciale:

  1. JetBrains PhpStorm (http://www.jetbrains.com/phpstorm/)
  2. Zend Studio (http://www.zend.com/products/studio/)
  3. NuSphere PhpED (http://www.nusphere.com/products/phped.htm)
  4. NetBeans IDE (https://netbeans.org/features/php/)
  5. phpDesigner (http://www.mpsoftware.dk/phpdesigner.php)
  6. Embarcadero RadPHP
  7. WaterProof PHPEdit (http://www.waterproof.fr/)
  8. Komodo IDE (http://www.activestate.com/komodo-ide)
  9. Adobe Dreamweaver (http://www.adobe.com/products/dreamweaver.html)

Pa pagesë:

  1. Aptana Studio (http://www.aptana.com/products/studio3)
  2. Eclipse PHP PDT (http://www.eclipse.org/pdt/downloads/)
  3. Komodo Edit (http://www.activestate.com/komodo-edit)

Folderi në Web server

www (c:\wamp\www)

public_html (/home/icksite/public_html)

htdocs (c:Program Files (x86)ZendApache2\htdocs)

URL në shfletues:

http://localhost/

ose

http://127.0.0.1

Nëse zhvillojmë më tepër aplikacione, secili aplikacion duhet të vendoset në folder të veçantë:

c:\wamp\www\cms

Në shfletues, ky folder thirret me:

http://localhost/cms

ose

http://127.0.0.1/cms

Porti standard për protokolin HTTP është 80.

Mirëpo, nëse instalojmë edhe ndonjë Web server në hostin e njëjtë, nevojitet të përdoret një port i ri.

Portet e përdorura më së shpeshti për HTTP:

80, që është vlerë standarde e nënkuptuar (default)

8080, etj.

Për HTTPS: 443

Portet për serviset/protokolet e tjera:

21 – FTP

22 - SSH

25 – SMTP

110 – POP

143 – Incoming IMAP

3306 – MySQL

Folderin e aplikacionit mund ta krijojmë drejtpërsëdrejti brenda folderit në serverin lokal

1 www public_html htdocs

Në këtë rast, për testimin e aplikacionit vetëm duhet të startohet shfletuesi dhe të shënohet URL-ja përkatëse.

Qasja e dytë konsiston në krijimin e një folderi në diskun lokal për aplikacionin dhe një folder tjetër brenda Web serverit për testim.

Para çdo testimi, nevojitet që folderi i aplikacionit të dërgohet (upload) në folderin përkatës në Web server. Në Dreamweaver dhe në disa FTP programe mundësohet sinkronizimi i folderëve.

Sinkronizimi:

Krahasimi i datës/kohës së modifikimit të dokumenteve ndërmjet folderit të aplikacionit dhe folderit përkatës në Web server. Dokumentat që kanë data më të reja barten në folderin e Web serverit.

Ekzekutimi i php skriptave

PHP skriptat mund të ekzekutohen në dy mënyra:

  • Duke e kopjuar fajllin e skriptës në folderin publik të serverit
  • Nëpërmes CLI SAPI (Command Line Interpreter / Server Application Programming Interface)

Metoda e parë është standarde dhe rezultati shfaqet në dritaren e Web shfletuesit.

Me metodën e dytë, skriptat ekzekutohen nga rreshti komandues dhe po aty edhe shfaqen rezultatet.

Shkrimi dhe ekzekutimi i skriptave

Skriptat në PHP janë fajlla tekstualë që përmbajnë kode në PHP, shpesh të kombinuara edhe me kode në HTML, CSS, JavaScript, etj. Me përdorimin e një editori të rëndomtë të tekstit (Notepad), shkruani:

1 <?php
2 echo  Skripta ime e parë!'; 
3 ?>

Ruajeni këtë dokument në folderin përkatës së Web serverit dhe emërojeni skripta1.php

Hapeni shfletuesin dhe shënojeni adresën korresponduese të dokumentit.

Procesi i gjenerimit të faqes rezultuese

Kur kërkojmë ekzekutimin e fajllit skripta1.php:

  • Web serveri e pranon kërkesën
  • Duke qenë se është fajll me ekstension .php, ky fajll i përcillet PHP interpreterit (parserit) për përpunim të mëtejmë
  • PHP parseri i ekzekuton kodet brenda , e merr rezultatin, e bashkon me pjesën HTML të faqes në vendet përkatëse dhe dokumentin final ia kthen Web serverit
  • Web serveri e dërgon faqen e përpunuar në drejtim të shfletuesit.
  • Në rastin konkret, rezultati i kthyer është teksti: ‘Skripta ime e parë!’

Ndërprerja e ekzekutimit të skriptave

Gjatë testimit të një PHP skripte, mund të ndodhë që ajo të mos ekzekutohet, gjegjësisht të mos ekzekutohet deri në fund.

Kjo mund të ndodhë për disa arsye:

  • Gabime në instalimin apo konfigurimin e Web serverit, PHP parserit apo të ndonjë komponente tjetër, kështu që skripta as nuk mund të ekzekutohet.
  • Ka gabime në vetë kodin e PHP skriptës dhe në këtë rast, PHP parseri nuk mund të vazhdojë më tutje me ekzekutim.
  • Ekzekutimi i skriptës ka marrë shumë kohë.
  • Ekzekutimi i skriptës ka konsumuar shumë RAM memorje, më tepër se ç’lejon PHP.

Regullat themelore

Kodi në PHP fillon me <?php ose <?

Mbaron me ?>

Çdo PHP statement duhet të përfundojë me pikëpresje

Rreshtat e zbrazët injorohen

Komentet njërreshtor fillojnë me //

Komentet shumërreshtorë fillojnë me /* ndërsa mbarojnë me */

Komentet injorohen gjatë procesit të gjenerimit të rezultateve, gjegjësisht gjatë interpretimit

Përzierja e PHP me HTML

Kur PHP parseri e lexon skriptën, ai e ekzekuton vetëm pjesën që gjendet brenda PHP etiketave.

Gjithë ç’është jashtë këtyre «zonave», përcillet më tutje pa kurrfarë ndryshimi.

Me këtë mundësohet futja e kodeve PHP përbrenda dokumentit HTML, për të krijuar faqe që përmban të gjitha ato që ofron HTML në aspektin e përmbajtjes dhe strukturës, duke i shtuar edhe kalkulime, veprime me databazën, apo ndonjë gjë tjetër.

Pra, rezultat përfundimtar i këtij miksimi është një dokument krejtësisht në HTML/CSS.

Po të shikohet kodi burimor me «View Source», në asnjë vend nuk do të ketë kode të PHP.

Çdo echo dërgon rezultate në formë tekstuale apo të formatuar në HTML/CSS

Variablat

1 <?php
2 $a = 2;
3 $b = 5;
4 $c = $a * $b;
5 echo "<p>".$a."*".$b."=".$c."</p>";
6 ?>
Tipet e variablave
  • Integer: Numër i plotë. Varësisht nga sistemi operativ, diapazoni i vlerave ndryshon, por rëndom kemi të bëjmë me -2 miliardë deri në +2 miliardë.
  • Floating point number: Numër, rëndomë jo i plotë, që përfshin edhe vendet pas presjes dhjetore, psh 3.14, 4439,2343. Njihet si real number ose float.
  • Character string: Seri e karaktereve. Nuk ka limit sa i përket gjatësisë, gjegjësisht numrit të karaktereve
  • Boolean: Vlera TRUE (Saktë) ose FALSE (pasaktë). Përdoret në analizat logjike.

Matricat

 1 <?php
 2 $ditet = array("E hënë", "E martë", "E mërkurë", "E enjte", "E premte", "E shtun\
 3 ë", "E diel");
 4 
 5 echo "<ul>";
 6 foreach($ditet as $dita)
 7 	{
 8 	echo "<li>".$dita."</li>";
 9 	}
10 echo "<ul>";	
11 	
12 
13 ?>