PHP

Gjuha që qëndron pas WordPress-it dhe Laravel-it — shumë e kërkuar nga kompanitë web në Shqipëri dhe Kosovë. · 105 terma

.env & config in Laravel

Konfigurimi në Laravel

Laravel-i i mban sekretet dhe cilësimet në skedarin .env (fjalëkalimi i databazës, APP_KEY), dhe kodi i lexon përmes config(). .env s'ngarkohet kurrë në Git — çdo server ka të vetin.

.htaccess

Skedari .htaccess u jep udhëzime Apache-s për një dosje: ridrejtime, adresa të pastra (pa .php), mbrojtje me fjalëkalim. Shumë hostingje të lira PHP e përdorin për çdo konfigurim.

Abstract classes (PHP)

Klasat abstrakte në PHP

Një klasë abstract s'mund të krijohet direkt — shërben si bazë që ndan kod të përbashkët, dhe metodat abstract duhet t'i shkruajnë patjetër fëmijët.

Array functions (array_map, array_filter, count)

Funksionet e vargjeve në PHP

PHP-ja ka dhjetëra funksione për array: count(), in_array(), array_map(), array_filter(), array_sum(), array_merge(), array_keys(). Shumë punë që në gjuhë të tjera duan cikle bëhen me një rresht.

Arrays in PHP

Vargjet në PHP

Në PHP, një array mund të jetë listë me numra (indeksi 0, 1, 2…) ose fjalor me çelësa tekst — është e njëjta strukturë. Krijohet me [ ], dhe me $v[] = x shton në fund.

Artisan (Laravel CLI)

Artisan-i është komanda e Laravel-it në terminal: php artisan serve nis serverin, make:model dhe make:controller krijojnë skedarë të gatshëm, migrate përditëson databazën, tinker të lejon të provosh kod.

Associative arrays

Vargjet asociative

Një array asociativ ka çelësa me emër në vend të numrave: ["emri" => "Arta", "nota" => 5]. Është si fjalori i Python-it ose objekti i JavaScript-it, dhe përdoret kudo në PHP.

Attributes (#[...])

Atributet në PHP

Që nga PHP 8, atributet #[...] u shtojnë informacion klasave dhe metodave — p.sh. #[Route("/terma")] në Symfony. Si anotacionet e Java-s dhe atributet e C#-it.

Authentication in Laravel (Breeze, Sanctum)

Hyrja e përdoruesve në Laravel

Laravel-i ka paketa të gatshme për llogari përdoruesish: Breeze të jep regjistrim, hyrje dhe rivendosje fjalëkalimi në pak minuta; Sanctum jep token-a për API dhe aplikacione mobile.

Autoloading (PSR-4)

Ngarkimi automatik i klasave

Me autoloading, s'ke pse shkruan require për çdo klasë: Composer-i e ngarkon vetë skedarin kur e përdor klasën. Rregulli PSR-4 thotë që namespace-i dhe dosjet përputhen — App\Models\Nxenes gjendet te app/Models/Nxenes.php.

Blade templates

Template-t Blade

Blade-i është motori i template-ve i Laravel-it: shkruan HTML me {{ $emri }} (që e mbron vetë nga XSS), @if, @foreach dhe @extends për faqe me të njëjtin skelet.

Classes & objects in PHP

Klasat dhe objektet në PHP

Në PHP krijon klasa me class dhe objekte me new. Fushat dhe metodat i arrin me shigjetën -> ($lojtari->emri), dhe brenda klasës objekti quhet $this.

Closures & arrow functions (fn)

Funksionet anonime në PHP

PHP-ja ka funksione pa emër: function ($x) use ($y) { ... } — ku use merr variabla nga jashtë — dhe arrow functions të shkurtra fn($x) => $x * 2, që i shohin variablat jashtë vetvetiu.

CodeIgniter & other PHP frameworks

Përveç Laravel-it dhe Symfony-së, ka framework-e më të vogla PHP si CodeIgniter, Yii, CakePHP dhe Slim. CodeIgniter-i është i lehtë dhe ende përdoret në shumë projekte të vjetra dhe kurse.

Collections in Laravel

Koleksionet në Laravel

Koleksionet e Laravel-it e mbështjellin një array dhe të japin metoda zinxhir si map, filter, sortBy, pluck dhe groupBy — shumë më të lexueshme se funksionet array_ të PHP-së. Eloquent-i kthen gjithmonë koleksione.

Composer

Composer-i është menaxheri i paketave të PHP-së — si npm-ja për JavaScript. Me composer require shton një librari, dhe composer install i instalon të gjitha te dosja vendor/. Bën edhe autoloading-un e klasave.

composer.json & composer.lock

composer.json rendit paketat që i duhen projektit, dhe composer.lock fikson versionet e sakta që të gjithë të kenë të njëjtat. Dosja vendor/ s'ngarkohet në Git — e krijon kushdo me composer install.

Constants in PHP (const, define)

Konstantet në PHP

Konstantet në PHP shkruhen pa $ dhe s'ndryshojnë: const MAX_NXENES = 30; ose define("MAX_NXENES", 30);. Zakonisht shkruhen me shkronja të mëdha.

Constructors & property promotion (PHP)

Konstruktorët në PHP

Konstruktori në PHP quhet __construct() dhe ekzekutohet kur krijon objektin. Që nga PHP 8, „property promotion“ të lejon t'i deklarosh dhe caktosh fushat direkt te parametrat e konstruktorit — shumë më pak kod.

Controllers in Laravel

Kontrollerët në Laravel

Një controller në Laravel mbledh kodin për një pjesë të faqes — p.sh. TermaController me metoda index, show, store. Merr kërkesën, flet me modelin dhe kthen një view ose JSON.

Cookies in PHP (setcookie)

Cookie-t në PHP

setcookie() i dërgon shfletuesit një cookie që e kthen me çdo kërkesë, dhe e lexon me $_COOKIE. Për cookie sesioni vendos gjithmonë httponly, secure dhe samesite.

Dates in PHP (date, DateTime)

Datat në PHP

date("d.m.Y") jep datën e sotme në formatin që do. Për llogaritje me data përdoret DateTime (ose libraria Carbon te Laravel-i): shton ditë, krahason data, numëron diferencën.

declare(strict_types=1)

Si parazgjedhje, PHP-ja e konverton vetë "5" në 5 kur një funksion pret int. Me declare(strict_types=1); në krye të skedarit, kjo s'lejohet më — merr gabim, dhe kodi bëhet më i parashikueshëm.

Drupal & Joomla

Drupal-i dhe Joomla janë CMS të tjera të shkruara në PHP, alternativa të WordPress-it. Drupal-i përdoret shpesh nga institucione dhe qeveri për faqe të mëdha me shumë përmbajtje.

echo & print

echo e shfaq tekstin në faqe — është mënyra më e zakonshme për të nxjerrë HTML nga PHP-ja. print bën pothuajse të njëjtën gjë; <?= $emri ?> është shkurtesa për <?php echo $emri ?>.

Eloquent ORM

Eloquent-i është ORM-ja e Laravel-it: çdo tabelë ka një model (Termi), dhe me të lexon dhe shkruan në databazë pa SQL — Termi::where("kategoria", "php")->get(). Marrëdhëniet mes tabelave shkruhen si metoda.

Eloquent relationships

Marrëdhëniet në Eloquent

Në Eloquent, lidhjet mes tabelave shkruhen si metoda: hasMany (një kategori ka shumë terma), belongsTo (një term i përket një kategorie), belongsToMany. Me with() i ngarkon bashkë dhe shmang problemin „N+1 query“.

Enums (PHP 8.1)

enum në PHP

Që nga PHP 8.1, enum-et japin një listë të mbyllur vlerash: enum Statusi: string { case Aktiv = "aktiv"; case Joaktiv = "joaktiv"; }. Mund të kenë edhe metoda.

Exceptions in PHP (try, catch, finally)

Përjashtimet në PHP

Në PHP i kap gabimet me try/catch, dhe finally ekzekutohet gjithmonë. Hedh gabime me throw new Exception("..."), dhe mund të krijosh llojet e tua duke trashëguar nga Exception.

File uploads ($_FILES)

Ngarkimi i skedarëve në PHP

Kur një formular ngarkon një skedar, PHP-ja e ruan përkohësisht dhe të jep informacion në $_FILES. Me move_uploaded_file() e zhvendos në dosjen tënde — por kontrollo gjithmonë llojin dhe madhësinë, dhe jepi një emër të ri.

filter_var (validation)

Validimi me filter_var

filter_var() kontrollon dhe pastron vlerat: FILTER_VALIDATE_EMAIL për email, FILTER_VALIDATE_INT për numra, FILTER_VALIDATE_URL për adresa. Kthen false kur vlera s'është e vlefshme.

foreach (PHP)

foreach kalon nëpër çdo element të një array: foreach ($notat as $nota). Me foreach ($nxenesi as $celesi => $vlera) merr edhe çelësin, edhe vlerën.

Functions in PHP

Funksionet në PHP

Funksionet në PHP krijohen me function, mund të kenë parametra me vlerë të paracaktuar dhe tipe, dhe kthejnë vlerë me return. PHP-ja ka mbi 1000 funksione të gatshme.

Generators (yield) in PHP

Gjeneratorët në PHP

Një funksion me yield jep vlerat një nga një në vend që t'i kthejë të gjitha njëherësh. Shumë i dobishëm për të lexuar skedarë të mëdhenj rresht pas rreshti pa e mbushur memorien.

Guzzle (HTTP client)

Guzzle-i është libraria më e përdorur e PHP-së për të bërë kërkesa HTTP te API të tjera — si fetch-i në JavaScript. Laravel-i ka një shkurtesë të thjeshtë mbi të: Http::get().

Handling forms in PHP

Formularët në PHP

Kur dërgohet një formular, PHP-ja i merr të dhënat në $_POST (ose $_GET). Hapat: kontrollo nëse u dërgua, valido çdo fushë, shfaq gabimet ose ruaji të dhënat — dhe mos e shfaq kurrë hyrjen pa htmlspecialchars().

header() & redirects

Ridrejtimet në PHP

header("Location: /faleminderit") e dërgon përdoruesin në një faqe tjetër — zakonisht pas dërgimit të një formulari. Kujdes: header() duhet thirrur para se të nxirret çdo HTML, përndryshe del gabimi „headers already sent“.

Heredoc & nowdoc

Heredoc (<<<EOT ... EOT) të lejon të shkruash tekst të gjatë me shumë rreshta — p.sh. një email ose HTML — me variabla brenda, pa thonjëza dhe pa pika për bashkim.

htmlspecialchars (escaping output)

Mbrojtja e daljes

htmlspecialchars() i kthen karakteret si < dhe > në formë të sigurt, që teksti i përdoruesit të shfaqet si tekst dhe jo si kod HTML. Është mbrojtja kryesore kundër XSS në PHP. Blade-i i Laravel-it e bën vetë me {{ }}.

if, elseif & switch (PHP)

Kushtet në PHP

PHP-ja i ka kushtet si gjuhët e tjera: if, elseif, else dhe switch. Në template HTML shpesh përdoret sintaksa alternative if: ... endif; që lexohet më mirë mes etiketave.

include & require

include dhe require e fusin një skedar tjetër PHP në vendin ku i shkruan — p.sh. header.php në krye të çdo faqeje. Dallimi: nëse skedari mungon, require e ndal programin, include vetëm paralajmëron. _once siguron që të futet vetëm një herë.

Inertia.js

Inertia.js e lidh Laravel-in në backend me React ose Vue në frontend, pa pasur nevojë për API të veçantë. Kontrolleri kthen të dhënat, dhe komponenti JavaScript i shfaq si SPA.

Inheritance in PHP (extends)

Trashëgimia në PHP

Me extends, një klasë PHP trashëgon nga një tjetër, dhe me parent:: thërret metodat e prindit. PHP-ja lejon vetëm një prind; për të ndarë kod mes klasave të ndryshme përdor traits.

Interfaces in PHP

Interfejsat në PHP

Një interface në PHP thotë çfarë metodash duhet të ketë një klasë, pa i shkruar. Klasa e premton me implements dhe mund të zbatojë disa interfejsa njëherësh. Laravel-i i përdor shumë për të ndërruar implementimet lehtë.

JSON in PHP (json_encode, json_decode)

JSON në PHP

json_encode() e kthen një array ose objekt PHP në JSON, dhe json_decode($json, true) e kthen JSON-in në array. Kështu PHP-ja flet me JavaScript-in dhe me API të tjera.

LAMP stack

LAMP është kombinimi klasik për faqe web: Linux (sistemi), Apache (serveri web), MySQL (databaza) dhe PHP (gjuha). LEMP është i njëjti, por me Nginx në vend të Apache-s. Mbi të punojnë miliona faqe, përfshirë WordPress-in.

Laravel

Laravel-i është framework-u më i popullarizuar i PHP-së: ka gati rrugëzimin, databazën (Eloquent), template-t (Blade), hyrjen e përdoruesve, radhët dhe shumë të tjera. Shumë kompani në Shqipëri dhe Kosovë punojnë me të.

Livewire

Livewire-i të lejon të ndërtosh faqe interaktive në Laravel duke shkruar vetëm PHP — butonat, kërkimi live dhe formularët përditësohen pa ringarkim, pa shkruar JavaScript.

Loops in PHP (for, while)

Ciklet në PHP

PHP-ja ka cikle for, while dhe do-while si C-ja dhe Java-ja. Për të kaluar nëpër array, përdoret pothuajse gjithmonë foreach.

Magic methods (__toString, __get)

Metodat magjike

Metodat magjike fillojnë me dy nënvizime dhe PHP-ja i thërret vetë në raste të caktuara: __construct kur krijohet objekti, __toString kur e përdor si tekst, __get kur lexon një fushë që s'ekziston.

match expression (PHP 8)

Shprehja match

match (që nga PHP 8) është si switch, por më i shkurtër dhe më i sigurt: kthen vlerë, krahason me ===, dhe hedh gabim nëse asnjë rast s'përputhet.

Middleware in Laravel

Middleware në Laravel

Middleware në Laravel është kod që ekzekutohet para ose pas çdo kërkese — p.sh. auth kontrollon nëse përdoruesi është i kyçur dhe e çon te faqja e hyrjes nëse s'është.

Migrations in Laravel

Migrimet në Laravel

Migrimet në Laravel e përshkruajnë strukturën e databazës me kod PHP — çdo ndryshim (tabelë e re, kolonë e re) është një skedar. php artisan migrate i zbaton të gjitha, njësoj në çdo kompjuter.

Mixing PHP and HTML (templates)

PHP brenda HTML-së

PHP-ja u krijua për t'u përzier me HTML: shkruan faqen normalisht dhe fut <?= $vlera ?> aty ku duhet diçka dinamike. Për projekte më të mëdha përdoren motorë template si Blade ose Twig, që e mbajnë kodin më të pastër.

Multidimensional arrays (PHP)

Vargjet shumëdimensionale në PHP

Një array mund të mbajë array të tjerë — p.sh. një listë nxënësish ku secili është array asociativ. Kështu duken shpesh rezultatet nga databaza.

mysqli

mysqli është mënyra më e vjetër e PHP-së për të punuar vetëm me MySQL. Do ta takosh në shumë tutoriale dhe projekte të vjetra; për kod të ri, PDO është zgjedhja më e mirë. Funksionet mysql_ (pa „i“) janë hequr krejt.

Namespaces in PHP

Hapësirat e emrave në PHP

Namespace-at i grupojnë klasat që dy klasa me të njëjtin emër të mos përplasen: namespace App\Models;. Në skedarë të tjerë i merr me use App\Models\Nxenes;.

Null coalescing (??)

Operatori ??

$a ?? $b jep $a nëse ekziston dhe s'është null, përndryshe $b. Shumë e dobishme për të dhënat nga formularët: $_GET["faqja"] ?? 1. Me ??= cakton vlerë vetëm nëse mungon.

Nullable & union types (PHP)

Tipet nullable dhe union në PHP

Me ?string thua që vlera mund të jetë tekst ose null. Që nga PHP 8, union types lejojnë disa tipe: int|string. Kështu tipet përshkruajnë saktë çfarë pranon kodi.

Packagist

Packagist.org është depoja ku Composer-i kërkon paketat — qindra mijëra librari PHP falas, nga Laravel-i te libraritë e vogla për PDF ose email.

password_hash & password_verify

password_hash() e kthen fjalëkalimin në një hash të sigurt (me bcrypt ose argon2, me kripë të përfshirë), dhe password_verify() kontrollon nëse fjalëkalimi i shkruar përputhet. Mos përdor kurrë md5() për fjalëkalime.

PDO

PDO është mënyra moderne dhe e sigurt e PHP-së për t'u lidhur me databaza — MySQL, PostgreSQL, SQLite — me të njëjtin kod. Përdore gjithmonë me prepared statements.

Pest

Pest-i është një mënyrë më e shkurtër dhe më e lexueshme për të shkruar teste në PHP, ndërtuar mbi PHPUnit. Shumë popullor në komunitetin e Laravel-it.

PHP

PHP-ja është një gjuhë programimi për backend-in e faqeve të internetit. Shumë faqe punojnë me PHP, përfshirë WordPress-in, dhe Laravel-i është framework-u më i njohur për të.

PHP built-in server (php -S)

Serveri i integruar i PHP-së

Me komandën php -S localhost:8000 nis një server të vogël për zhvillim, pa instaluar Apache ose Nginx. Hap shfletuesin dhe e sheh faqen tënde menjëherë. Vetëm për zhvillim, jo për production.

PHP data types

Tipet e të dhënave në PHP

PHP-ja ka tipet string, int, float, bool, array, object dhe null. Me var_dump() ose gettype() sheh çfarë tipi ka një vlerë. PHP-ja i konverton tipet vetë kur duhet — ndonjëherë me surpriza.

PHP tags (<?php ?>)

Etiketat e PHP-së

Kodi PHP shkruhet brenda <?php ... ?>. Çdo gjë jashtë këtyre etiketave i dërgohet shfletuesit si HTML i zakonshëm. Në skedarët që kanë vetëm PHP, etiketa mbyllëse ?> zakonisht lihet jashtë.

PHP versions (7, 8, 8.x)

Versionet e PHP-së

PHP 7 (2015) e bëri gjuhën dy herë më të shpejtë; PHP 8 solli JIT, match, named arguments dhe atributet; çdo vit del një 8.x i ri. Nëse tutoriali përdor mysql_query() ose PHP 5, është shumë i vjetër.

PHP-FPM

PHP-FPM është mënyra si serverët modernë (zakonisht Nginx) ekzekutojnë PHP: mban gati një grup procesesh PHP që u përgjigjen kërkesave shpejt. Te hostingjet e mëdha, Nginx + PHP-FPM është kombinimi standard.

php.ini

php.ini është skedari i cilësimeve të PHP-së: sa i madh mund të jetë një skedar i ngarkuar, sa memorie lejohet, nëse shfaqen gabimet. Në production, display_errors duhet të jetë Off.

phpMyAdmin

phpMyAdmin është një faqe web e shkruar në PHP për të menaxhuar databazat MySQL me klikime: krijon tabela, shikon të dhënat, shkruan query. Vjen me XAMPP dhe e ofrojnë shumica e hostingjeve.

PHPStan & Psalm

PHPStan dhe Psalm e analizojnë kodin PHP pa e ekzekutuar dhe gjejnë gabime: metoda që s'ekzistojnë, tipe të gabuara, null të harruar. Kanë „nivele“ — fillon me 0 dhe e rrit gradualisht.

PhpStorm

PhpStorm-i është IDE-ja e JetBrains për PHP: plotëson kodin, gjen gabimet, punon me Xdebug, Composer dhe Laravel. Shumë zhvillues përdorin edhe VS Code me shtesën Intelephense.

PHPUnit

PHPUnit është libraria klasike për teste në PHP: shkruan metoda që fillojnë me test dhe kontrollon me $this->assertEquals(). Laravel-i e ka të gatshëm.

Plugins & packages in PHP projects

Plugin-et në PHP

Në botën e PHP-së, „plugin“ zakonisht do të thotë shtesë për një CMS si WordPress-i, ndërsa „extension“ është një modul i vetë PHP-së (si pdo_mysql ose gd për fotot) që aktivizohet te php.ini.

Prepared statements in PHP (PDO)

Query me parametra në PHP

Me $pdo->prepare() e shkruan query-n me vende bosh (? ose :emri) dhe vlerat ia jep veç te execute(). Kështu SQL injection bëhet i pamundur — mos i fut kurrë variablat direkt në tekstin e query-t.

PSR standards (PSR-4, PSR-12)

Standardet PSR

PSR-të janë rregulla të përbashkëta të komunitetit PHP: PSR-4 për autoloading, PSR-12 për stilin e shkrimit të kodit, PSR-7 për kërkesat HTTP. Mjete si PHP CS Fixer e rregullojnë kodin vetë sipas tyre.

Queues & jobs in Laravel

Radhët në Laravel

Punët e ngadalta — dërgimi i email-eve, përpunimi i fotove — Laravel-i i fut në një radhë që i kryen në sfond, që përdoruesi të mos presë. E nis me dispatch(), dhe php artisan queue:work i ekzekuton.

readonly properties (PHP)

Një fushë readonly mund të caktohet vetëm një herë — zakonisht në konstruktor — dhe pastaj s'ndryshon më. Ideale për objekte që thjesht mbajnë të dhëna.

References in PHP (&)

Referencat në PHP

Si parazgjedhje, PHP-ja ua kalon funksioneve kopje të vlerave. Me & para parametrit (function rrit(&$x)) funksioni punon me origjinalin. Te foreach, &$v të lejon t'i ndryshosh elementet e array-t.

Routes in Laravel

Rrugët në Laravel

Te routes/web.php vendos cila adresë çon te cili kod: Route::get("/terma/{id}", ...). Mund t'u japësh emra rrugëve, t'i gruponi dhe t'u shtosh middleware.

Routing in plain PHP (front controller)

Rrugëzimi në PHP

Në PHP-në e thjeshtë, çdo skedar .php është një faqe. Në projekte më të mëdha, të gjitha kërkesat shkojnë te një index.php i vetëm (front controller), që e lexon adresën dhe vendos cilin kod të ekzekutojë — kështu punojnë Laravel-i dhe Symfony.

Seeders & factories (Laravel)

Factories krijojnë të dhëna false realiste (emra, email-e) për teste dhe zhvillim, dhe seeders i mbushin tabelat me to. php artisan db:seed të jep një databazë plot për të provuar.

Sending email in PHP (PHPMailer)

Dërgimi i email-eve në PHP

Funksioni mail() i PHP-së është i thjeshtë, por email-et shpesh përfundojnë te spam-i. Për email të besueshëm përdoret PHPMailer ose Symfony Mailer me një server SMTP — ose Mail-i i Laravel-it.

Sessions in PHP ($_SESSION)

Sesionet në PHP

Me session_start() dhe $_SESSION, PHP-ja mban mend të dhëna për një vizitor nga një faqe te tjetra — p.sh. kush është i kyçur ose çfarë ka në shportë. Vetë të dhënat ruhen në server; shfletuesi mban vetëm një cookie me ID-në.

Sorting arrays in PHP (sort, usort, ksort)

Renditja e vargjeve në PHP

PHP-ja ka disa funksione renditjeje: sort() (vlerat), rsort() (mbrapsht), asort() (vlerat, duke ruajtur çelësat), ksort() (sipas çelësave) dhe usort() me funksionin tënd të krahasimit. Të gjitha e ndryshojnë array-n direkt.

Spaceship operator (<=>)

Operatori „anija kozmike“

Operatori <=> krahason dy vlera dhe kthen -1, 0 ose 1 (më i vogël, i barabartë, më i madh). Është ideal për funksionet e renditjes me usort().

static, self & parent (PHP)

Fushat dhe metodat static i përkasin klasës, jo objekteve — i thërret me Klasa::metoda(). Brenda klasës, self:: i referohet klasës aktuale, parent:: prindit, dhe static:: klasës që u thirr vërtet (e rëndësishme me trashëgiminë).

String concatenation (.)

Bashkimi i teksteve në PHP

Në PHP, tekstet bashkohen me pikë (.), jo me + si në JavaScript: "Tung, " . $emri. Me .= shton në fund të një teksti ekzistues.

String functions (strlen, explode, str_replace)

Funksionet e tekstit në PHP

PHP-ja ka shumë funksione për tekst: strlen() (gjatësia), strtoupper(), str_replace(), explode() (ndan në array), implode() (bashkon), str_contains(). Për ë dhe ç përdor versionet mb_, si mb_strlen().

Strings in PHP (single vs double quotes)

Teksti në PHP

Në PHP, teksti me thonjëza të dyfishta "Tung, $emri" i zëvendëson variablat me vlerat e tyre; me thonjëza të njëfishta 'Tung, $emri' teksti mbetet fjalë për fjalë. Për shprehje më të ndërlikuara përdor kllapa: "{$nxenesi['emri']}".

Superglobals ($_GET, $_POST, $_SERVER)

Variablat superglobale

Superglobalet janë array të gatshëm që i sheh kudo në kod: $_GET (parametrat në adresë), $_POST (të dhënat e formularit), $_SERVER (informacion për kërkesën), $_SESSION, $_COOKIE, $_FILES. Mos u beso kurrë pa i kontrolluar!

Symfony

Symfony-ja është framework-u i dytë më i madh i PHP-së, shumë i strukturuar dhe i përdorur në projekte të mëdha korporative. Shumë pjesë të Laravel-it janë ndërtuar mbi komponentët e Symfony-së. ORM-ja e saj quhet Doctrine.

Tinker

php artisan tinker hap një terminal interaktiv brenda aplikacionit tënd Laravel: provon query, krijon modele, teston funksione — pa shkruar faqe.

Traits

Një trait është një copë kodi (metoda dhe fusha) që mund ta „ngjitësh“ në disa klasa me use, edhe kur s'kanë prind të përbashkët. Është zgjidhja e PHP-së për të ripërdorur kod pa trashëgimi të shumëfishtë.

Type declarations in PHP

Deklarimi i tipeve në PHP

PHP-ja moderne të lejon t'u japësh tipe parametrave, vlerave kthyese dhe fushave të klasave: function mblidh(int $a, int $b): int. Gabimet kapen më herët dhe editori të ndihmon më shumë.

Validation in Laravel

Validimi në Laravel

Laravel-i e bën validimin shumë të lehtë: $request->validate(["email" => "required|email"]). Po dështoi, e kthen vetë përdoruesin te formulari me mesazhet e gabimit.

var_dump, print_r & dd()

var_dump() e shfaq një vlerë me tipin dhe gjatësinë e saj, print_r() e shfaq array-n në mënyrë të lexueshme, dhe dd() i Laravel-it („dump and die“) e shfaq bukur dhe e ndal programin. Mjetet e para të debug-imit në PHP.

Variables in PHP ($)

Variablat në PHP

Në PHP, çdo variabël fillon me shenjën e dollarit: $emri, $mosha. S'ke nevojë ta deklarosh tipin — PHP-ja e kupton vetë nga vlera, si JavaScript-i dhe Python-i.

Visibility (public, private, protected)

Dukshmëria në PHP

Çdo fushë dhe metodë në PHP ka një nivel dukshmërie: public (kushdo), protected (klasa dhe fëmijët e saj), private (vetëm vetë klasa).

WooCommerce

WooCommerce-i është plugin-i që e kthen WordPress-in në dyqan online: produkte, shportë, pagesa dhe porosi. Shumë dyqane të vogla online në Shqipëri dhe Kosovë e përdorin.

WordPress development (themes & plugins)

Zhvillimi në WordPress

WordPress-i është shkruar në PHP. Zhvilluesit krijojnë „tema“ (pamja e faqes) dhe „plugin-e“ (veçori shtesë) në PHP. Shumë punë freelance dhe agjenci në rajon merren me WordPress.

WordPress hooks (actions & filters)

Hook-et e WordPress-it

Hook-et janë mënyra si plugin-et ndryshojnë WordPress-in pa e prekur kodin e tij: add_action() ekzekuton kodin tënd në një moment të caktuar, add_filter() e ndryshon një vlerë para se të shfaqet.

XAMPP, WAMP & MAMP

XAMPP (dhe WAMP, MAMP, Laragon) instalojnë me një klik Apache, PHP dhe MySQL në kompjuterin tënd — gjithçka që të duhet për të nisur me PHP. Shumë të përdorura në shkolla dhe kurse në rajon.

Xdebug

Xdebug-u është debugger-i i PHP-së: me të e ndal programin në një rresht (breakpoint) në VS Code ose PhpStorm, e ekzekuton hap pas hapi dhe sheh vlerat e variablave — shumë më mirë se var_dump kudo.