Theory
Kहाँ आपका Code चलता है Matter करता है
BCA405-01 में आपकी JavaScript browser में चलती थी, student के phone पर। फिर Node.js ने JavaScript को इसकी बजाय SERVER पर चलने दिया। PHP वह language है जिसने Node exist करने से बहुत पहले server-side web programming को mainstream बनाया, और यह अभी भी web का एक huge हिस्सा चलाती है।
इस semester आप PHP में एक छोटा event-registration portal with login build करेंगे। पर PHP का एक rule है जो हर beginner को day one पर trip करता है: यह SERVER पर चलती है, browser में नहीं, तो आप बस एक .php file double-click नहीं कर सकते और इसके काम करने की उम्मीद नहीं कर सकते। यह lesson explain करता है क्यों, और आपको set up कराता है।
Theory
PHP, Formally
PHP (PHP: Hypertext Preprocessor) web development के लिए एक widely used, open-source, server-side scripting language है।
Defining word server-side है: web server आपका PHP code चलाता है, जो typically HTML BUILD करता है, और सिर्फ़ finished HTML browser को भेजता है। Browser आपका PHP कभी नहीं देखता।
One line में history: Rasmus Lerdorf ने लगभग 1994 में इसे create किया, यह PHP 5 और बहुत faster PHP 7 से बढ़ते हुए आज के PHP 8.x (एक JIT compiler, match expressions, named arguments और ज़्यादा के साथ) तक पहुँची। इसका role: dynamic pages, form processing, और database-backed sites: exactly वह जो एक event portal को चाहिए।
Theory
Kitchen और Plate
Browser को एक diner और server को एक kitchen की तरह सोचिए।
Client-side JavaScript table AT plate garnish करने जैसी है। Server-side PHP kitchen है: cooking sight से बाहर होती है, और सिर्फ़ finished dish (HTML) diner तक carry की जाती है। Customer कभी recipe, raw ingredients, या वह database नहीं देखता जिससे kitchen ने consult किया। वह hidden execution यही वजह है PHP safely databases और secrets से बात कर सकती है: browser को सिर्फ़ plated result मिलता है।
Practical
hello.php: HTML में Embedded 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 से Set Up करना
- XAMPP (या WAMP) Install कीजिए यह Apache web server, PHP, और MySQL/MariaDB को साथ bundle करता है: एक install में एक PHP site को चाहिए सब कुछ।
- अपनी File htdocs में डालिए hello.php को XAMPP के htdocs folder के अंदर save कीजिए। यह वह folder है जिससे Apache serve करता है।
- Apache Start कीजिए XAMPP control panel खोलिए और Apache start कीजिए (और जब database चाहिए तब MySQL)।
- इसे localhost के through खोलिए एक browser में http://localhost/hello.php visit कीजिए। Apache PHP चलाता है और HTML return करता है। File को double-click MAT कीजिए।
- VS Code में Edit कीजिए अपने editor की तरह VS Code (एक PHP extension के साथ) इस्तेमाल कीजिए; save कीजिए, फिर changes देखने के लिए browser refresh कीजिए।
Quiz
एक student hello.php को directly browser में खोलने के लिए double-click करता है, और page की बजाय raw PHP code text की तरह देखता है। क्यों?
- PHP file corrupted है
- PHP server-side है: इसे एक web server (Apache via XAMPP) से चलना पड़ता है और http://localhost के through access होना पड़ता है, एक file की तरह खुलना नहीं
- Browser को एक PHP plugin installed चाहिए
- PHP सिर्फ़ Chrome में काम करती है
Show the answer
PHP server-side है: इसे एक web server (Apache via XAMPP) से चलना पड़ता है और http://localhost के through access होना पड़ता है, एक file की तरह खुलना नहीं
PHP SERVER पर execute होती है, तो file को Apache से serve होना पड़ता है और http://localhost/hello.php के through पहुँचना पड़ता है; directly एक file की तरह खोलने पर (file://), कोई server PHP नहीं चलाता, तो browser बस source text दिखाता है। यही number one day-one confusion है। Option A ग़लत है (file fine है)। Option C एक myth है: browsers बिल्कुल PHP नहीं चलाते, plugin के साथ या बिना: server चलाता है। Option D एक browser restriction invent करता है। Fix हमेशा है: Apache start कीजिए, localhost के through access कीजिए। Server-side मतलब है loop में एक server होना ज़रूरी है।
Think first
PHP या Node: Same Side, अलग Language
BCA405-01 में आपने Node.js में एक server लिखा। अब PHP भी server-side है। तो इनके बीच actually क्या अलग है, और एक project PHP क्यों pick कर सकता है? फिर tap कीजिए।
Show the answer
दोनों SERVER पर चलते हैं और browser के लिए responses build करते हैं, तो ये same ROLE occupy करते हैं। Difference language और ecosystem है: Node एक event-loop model के साथ JavaScript (client और server के across एक language) चलाता है, जबकि PHP web के लिए specifically built एक language है, traditionally Apache और MySQL के साथ paired, और यह WordPress जैसे enormous platforms चलाती है। एक project अपनी maturity, huge hosting availability, gentle setup (XAMPP), और vast existing codebase के लिए PHP pick कर सकता है। कोई भी 'better' नहीं है: ये same server-side question के 2 answers हैं। दोनों जानना आपको flexible बनाता है इस बारे में कि code कहाँ चलना चाहिए।
Watch out
Setup Traps
.php Files Double-Click करना: quiz bug; हमेशा http://localhost के through जाइए।
ग़लत Folder: htdocs के बाहर की files serve नहीं होतीं; Apache सिर्फ़ htdocs देखता है।
Apache Started नहीं: जब तक XAMPP panel में Apache चल न रहा हो localhost respond नहीं करेगा।
Port Conflicts: port 80 पर कोई दूसरा program Apache block कर सकता है; XAMPP इसे flag करेगा, और आप port बदल सकते हैं।
Edit करना पर Refresh न करना: PHP हर request पर fresh चलती है; save कीजिए, फिर browser reload कीजिए।
Theory
Portal यहाँ से शुरू होता है
XAMPP चलते हुए और hello.php served होते हुए, आपका development loop set है: PHP लिखिए, save कीजिए, localhost refresh कीजिए। यह unit हर lesson event portal का एक piece add करता है: अगला language का basic grammar है (tags, echo, variables, comments), फिर data types, control flow और arrays, और $_GET और $_POST से form handling actually एक registration process करने के लिए। Server-side web development, एक page एक बार में।
Summary
Key takeaways
- PHP एक server-side scripting language है: server इसे चलाता है और resulting HTML browser को भेजता है।
- Browser आपका PHP कभी नहीं देखता, सिर्फ़ finished output: यही वजह है PHP safely databases और secrets handle कर सकती है।
- History: Rasmus Lerdorf से created (mid-1990s), PHP 5, 7 से evolve होते हुए, आज के PHP 8.x तक।
- XAMPP/WAMP Apache + PHP + MySQL bundle करता है; files htdocs में डालिए और http://localhost के through access कीजिए।
- आप एक .php file double-click नहीं कर सकते: इसे एक running web server से serve होना पड़ता है।
- Node.js (BCA405-01) वाला same server-side ROLE, अलग language और ecosystem।
- Memory hook: PHP kitchen है; browser को सिर्फ़ plated dish मिलता है।