Theory
તમારો code ક્યાં ચાલે છે એ અગત્યનું છે
BCA405-01 માં તમારું JavaScript browser માં, વિદ્યાર્થીના ફોન પર ચાલતું હતું. પછી Node.js એ JavaScript ને એને બદલે SERVER પર ચલાવવા દીધું. PHP એ ભાષા છે જેણે Node હતું જ નહીં એ પહેલાં server બાજુના web programming ને મુખ્યધારામાં લાવ્યું, અને આજે પણ વેબનો મોટો હિસ્સો એના પર ચાલે છે.
આ સત્રમાં તમે PHP માં login સાથેનું નાનું event-registration portal બનાવશો. પણ PHP નો એક નિયમ પહેલા જ દિવસે દરેક નવા શીખનારને ગૂંચવે છે: એ SERVER પર ચાલે છે, browser માં નહીં, એટલે તમે .php file પર બે વાર click કરીને એ ચાલશે એવી આશા રાખી ન શકો. આ પાઠ એ શા માટે એ સમજાવે છે અને તમારી ગોઠવણ કરી આપે છે.
Theory
PHP, ઔપચારિક રીતે
PHP (PHP: Hypertext Preprocessor) એ web development માટેની વ્યાપકપણે વપરાતી, open-source, server-side scripting ભાષા છે.
એને ઓળખાવતો શબ્દ છે server-side: web server તમારો PHP નો code ચલાવે છે, જે સામાન્ય રીતે HTML બનાવે છે, અને browser ને ફક્ત તૈયાર HTML જ મોકલે છે. Browser તમારો PHP કદી જોતું નથી.
એક લીટીમાં ઇતિહાસ: Rasmus Lerdorf એ 1994 ની આસપાસ એ બનાવ્યું, પછી એ PHP 5 અને ઘણી વધુ ઝડપી PHP 7 થઈને આજના PHP 8.x સુધી પહોંચ્યું (JIT compiler, match expressions, named arguments અને બીજું ઘણું). એની ભૂમિકા: dynamic pages, form ની પ્રક્રિયા, અને database પર ચાલતી sites: એટલે કે બરાબર એ જ જે event portal ને જોઈએ છે.
Theory
રસોડું અને થાળી
Browser ને જમનાર અને server ને રસોડું સમજો.
Client બાજુનું JavaScript એટલે થાળીને ટેબલ પર જ શણગારવી. Server બાજુનું PHP એ રસોડું છે: રસોઈ નજર બહાર થાય છે, અને જમનાર સુધી ફક્ત તૈયાર વાનગી (HTML) જ પહોંચે છે. ગ્રાહક વાનગીની રીત, કાચી સામગ્રી, કે રસોડાએ જોયેલું database કદી જોતો નથી. આ છુપી અમલબજાવણીને લીધે જ PHP databases અને ગુપ્ત વસ્તુઓ સાથે સલામત રીતે વાત કરી શકે છે: browser ને તો હંમેશા પીરસાયેલું પરિણામ જ મળે છે.
Practical
hello.php: HTML માં ગોઠવાયેલું PHP
<!DOCTYPE html>
<html>
<body>
<h1>Event Portal</h1>
<?php
// Everything between <?php and ?> runs on the SERVER
echo "<p>Welcome! Server time is " . date("H:i") . "</p>";
?>
<p>This line is plain HTML.</p>
</body>
</html>
Follow along
XAMPP થી ગોઠવણ કરવી
- XAMPP (કે WAMP) install કરો એ Apache web server, PHP અને MySQL/MariaDB ને એકસાથે બાંધી આપે છે: PHP ની site ને જોઈતું બધું એક જ install માં.
- તમારી file htdocs માં મૂકો hello.php ને XAMPP ના htdocs folder ની અંદર સાચવો. Apache આ જ folder માંથી પીરસે છે.
- Apache ચાલુ કરો XAMPP નું control panel ખોલો અને Apache ચાલુ કરો (અને database જોઈએ ત્યારે MySQL પણ).
- એને localhost દ્વારા ખોલો Browser માં http://localhost/hello.php ખોલો. Apache PHP ચલાવે છે અને HTML પાછું આપે છે. File પર બે વાર click ન કરો.
- VS Code માં લખો તમારા સંપાદક તરીકે VS Code વાપરો (PHP extension સાથે); સાચવો, પછી ફેરફાર જોવા browser refresh કરો.
Quiz
એક વિદ્યાર્થી hello.php ને સીધું browser માં ખોલવા બે વાર click કરે છે, અને એને page ને બદલે કાચો PHP નો code લખાણ તરીકે દેખાય છે. શા માટે?
- PHP ની file બગડી ગઈ છે
- PHP server બાજુનું છે: એ web server (XAMPP વાળા Apache) દ્વારા ચાલવું જોઈએ અને http://localhost દ્વારા ખૂલવું જોઈએ, file તરીકે નહીં
- Browser માં PHP નું plugin install કરવું પડે
- PHP ફક્ત Chrome માં જ ચાલે છે
Show the answer
PHP server બાજુનું છે: એ web server (XAMPP વાળા Apache) દ્વારા ચાલવું જોઈએ અને http://localhost દ્વારા ખૂલવું જોઈએ, file તરીકે નહીં
PHP SERVER પર ચાલે છે, એટલે file Apache દ્વારા પીરસાવી જોઈએ અને http://localhost/hello.php દ્વારા ખૂલવી જોઈએ; સીધી file તરીકે (file://) ખોલો ત્યારે PHP ચલાવનારો કોઈ server હોતો જ નથી, એટલે browser ફક્ત મૂળ લખાણ બતાવે છે. પહેલા દિવસની આ સૌથી મોટી ગૂંચવણ છે. વિકલ્પ A ખોટો છે (file સાબૂત જ છે). વિકલ્પ C એક ભ્રમ છે: browsers PHP ચલાવતાં જ નથી, plugin હોય કે ન હોય; server ચલાવે છે. વિકલ્પ D browser પરની કોઈ ઉપજાવેલી મર્યાદા છે. ઉપાય હંમેશા આ જ છે: Apache ચાલુ કરો, localhost દ્વારા ખોલો. Server બાજુનું એટલે server ચક્રમાં હોવો જ જોઈએ.
Think first
PHP કે Node: એક જ બાજુ, જુદી ભાષા
BCA405-01 માં તમે Node.js માં server લખ્યો હતો. હવે PHP પણ server બાજુનું છે. તો એ બંને વચ્ચે ખરેખર શું જુદું છે, અને કોઈ પ્રોજેક્ટ PHP કેમ પસંદ કરે? વિચારીને પછી tap કરો.
Show the answer
બંને SERVER પર ચાલે છે અને browser માટે responses બનાવે છે, એટલે એમની ભૂમિકા એક જ છે. ફરક ભાષા અને પરિવેશનો છે: Node event-loop વાળા model સાથે JavaScript ચલાવે છે (client અને server બંને પર એક જ ભાષા), જ્યારે PHP ખાસ વેબ માટે બનેલી ભાષા છે, પરંપરાગત રીતે Apache અને MySQL સાથે જોડાયેલી, અને WordPress જેવાં વિરાટ platforms એના પર ચાલે છે. કોઈ પ્રોજેક્ટ PHP ને એની પરિપક્વતા, hosting ની વિપુલ સગવડ, સહેલી ગોઠવણ (XAMPP) અને પહેલેથી હાજર વિશાળ codebase માટે પસંદ કરે. બેમાંથી કોઈ 'વધુ સારું' નથી: એ server બાજુના એક જ સવાલના 2 જવાબ છે. બંને જાણવાથી code ક્યાં ચાલવો જોઈએ એ બાબતે તમે લવચીક બનો છો.
Watch out
ગોઠવણના ફાંદા
.php files પર બે વાર click કરવું: quiz વાળી એ જ ભૂલ; હંમેશા http://localhost દ્વારા જાઓ.
ખોટું folder: htdocs ની બહારની files પીરસાતી નથી; Apache ને ફક્ત htdocs જ દેખાય છે.
Apache ચાલુ ન કરવું: XAMPP ના panel માં Apache ચાલુ ન થાય ત્યાં સુધી localhost જવાબ આપશે નહીં.
Port ની અથડામણ: port 80 પર બીજું કોઈ program હોય તો એ Apache ને રોકી શકે; XAMPP એ બતાવશે, અને તમે port બદલી શકો.
ફેરફાર કરીને refresh ન કરવું: PHP દરેક request પર નવેસરથી ચાલે છે; સાચવો, પછી browser ફરી load કરો.
Theory
Portal ની શરૂઆત અહીંથી
XAMPP ચાલુ છે અને hello.php પીરસાય છે, એટલે તમારું development નું ચક્ર ગોઠવાઈ ગયું: PHP લખો, સાચવો, localhost refresh કરો. આ unit નો દરેક પાઠ event portal માં એક ટુકડો ઉમેરે છે: પછી આવે છે ભાષાનું પાયાનું વ્યાકરણ (tags, echo, variables, comments), પછી data types, control flow અને arrays, અને registration ને ખરેખર પ્રક્રિયામાં લેવા $_GET તથા $_POST સાથે form handling. Server બાજુનું web development, એક સમયે એક page.
Summary
Key takeaways
- PHP એ server બાજુની scripting ભાષા છે: server એને ચલાવે છે અને પરિણામરૂપ HTML browser ને મોકલે છે.
- Browser તમારો PHP કદી જોતું નથી, ફક્ત તૈયાર output જ જુએ છે: એટલે જ PHP databases અને ગુપ્ત વસ્તુઓ સલામત રીતે સંભાળી શકે છે.
- ઇતિહાસ: Rasmus Lerdorf એ (1990 ના દાયકાના મધ્યમાં) બનાવ્યું, પછી PHP 5, 7 થઈને આજના PHP 8.x સુધી વિકસ્યું.
- XAMPP અને WAMP Apache, PHP તથા MySQL ને એકસાથે બાંધે છે; files ને htdocs માં મૂકો અને http://localhost દ્વારા ખોલો.
- તમે .php file પર બે વાર click કરી શકતા નથી: એને ચાલુ web server દ્વારા જ પીરસાવી પડે.
- Node.js (BCA405-01) જેવી જ server બાજુની ભૂમિકા, પણ ભાષા અને પરિવેશ જુદાં.
- યાદ રાખવાની કડી: PHP એ રસોડું છે; browser ને ફક્ત પીરસાયેલી વાનગી જ મળે છે.