PHP یکی از پرکاربردترین زبانهای برنامهنویسی وب است که برای ساخت برنامههای وب محور و سایتها از آن استفاده میشود و به توسعهدهندگان اجازه میدهد ایدههای خلاقانه خود را به بهترین شکل متجلی کنند.
بدون شک نام این زبان را در گذشته شنیدهاید و میدانید یکی از زبانهای برنامهنویسی قدیمی دنیای وب است که حتا با وجود ظهور سامانههای مدیریت محتوایی که امکان ساخت وبسایتها در کوتاهترین زمان را میدهند هنوز هم به شکل گستردهای توسط توسعهدهندگان استفاده میشود، اما شاید از این نکته بی اطلاع باشید که پیاچپی همان زبان برنامهنویسی است که فیسبوک، وردپرس و ویکیپدیا برای خدمترسانی به میلیاردها درخواست روزانه از آن استفاده میکنند. پیاچپی یک زبان برنامهنویسی ساده و زیبا است، اما در عین حال قدرتمند است و امکان ساخت طیف گستردهای از برنامههای غنی وب را به توسعهدهندگان میدهد. آیا یک ایده استارتاپی عالی دارید، اما نمیدانید چگونه باید آنرا اجرا کنید، آیا میخواهید زبانی بیاموزید که بتوانید با آن امکانات وردپرس را گسترش دهید یا به دنبال افزایش سطح مهارتهای خود از طریق یادگیری زبانهای برنامهنویسی هستید؟ اگر پاسختان مثبت است، بهتر است از پیاچپی غافل نشوید.
تاریخچه PHP
در اوایل پیدایش اینترنت، سایتها تعاملی نبودند و افرادی که از سایتها بازدید میکردند، تجربهای تقریباً تکبعدی داشتند. پیادهسازی ایدههای سرگرمکننده برای توسعهدهندگان کار سختی بود و در بیشتر موارد برنامهنویسان از طریق تعامل با متخصصان علوم روانشناسی قادر به انجام این کار بودند. در آن زمان یک برنامهنویس کانادایی به نام راسموس لِردورف (Rasmus Lerdorf) تصمیم گرفت یکزبان برنامهنویسی متفاوت به نام پیاچپی ایجاد کند که به شیوه سادهای امکان افزودن جنبههای تعاملی به صفحات وب را ارائه میکرد. این زبان جدید بهسرعت مورد استقبال توسعهدهندگان قرار گرفت. راسموس لردورف تصور نمیکرد روزگاری این زبان برنامهنویسی بهاندازهای پیشرفت کند که جامعهای از برنامهنویسان و کمپینهای مختلف برای آن ساخته شود و زمان و پول خود را صرف توسعه این زبان کنند. پیاچپی بهتدریج به چالش بزرگی برای شرکت Sun (شرکت اورکل فعلی) و مایکروسافت تبدیل شد که قصد داشتند با پلتفرمهای جاوا و asp بر بازار توسعه وب تسلط پیدا کنند و به همین دلیل ظهور زبان برنامهنویسی پیاچپی را میتوان یک شروع طوفانی در این حوزه توصیف کرد.
از آن روزگار نزدیک به 20 سال زمان سپری شده و در این مدت پیاچپی هنوز هم گزینه اول توسعهدهندگان وب است. به ویژه توسعهدهندگانی که ایدههای بکری دارند و قصد پیادهسازی عملی ایدههای خود را دارند.
نکات جالبی در مورد LAMP
اکنون میدانیم که پیاچپی یکزبان برنامهنویسی محبوب برای ساخت صفحات وب تعاملی است، اما هنوز به این نکته اشاره نکردهایم که چگونه میتوانیم کدهای خود را به یک محصول واقعی تبدیل کنید. کدهای پیاچپی در بیشتر موارد روی یک وب سرور اجرا میشوند. وب سرور وظیفه ارسال صفحههای وب برای هر فردی که وارد یک نام دامنه یا آدرس آیپی خاص میشود را دارد. متداولترین انتخاب برای وب سرور، استفاده از نرمافزار آپاچی است. این پروژه نرمافزاری متنباز و چند سکویی پذیرای بخش عمدهای از سایتها است. به بیان دقیقتر 45 درصد وبسایتهای اینترنت با استفاده از وبسرور آپاچی صفحههای خود را سرویسدهی میکنند. البته وبسرورهای دیگری مانند LightTTPD و IIS مایکروسافت نیز وجود دارند که برنامهنویسان ASP.Net از آنها استفاده میکنند.
عبارت LAMP سرنام Linux ،Apache ،MySQL و PHP است که کاراکتر دوم آن اشاره به وب سرور آپاچی دارد. با سه مورد از فناوریهای مورداستفاده در اصطلاح LAMP آشنایی دارید، اما کاراکتر M که اشاره به مایاسکیوال دارد به چه معنا است؟ وبسایتها مجبور هستند اطلاعاتی که برنامههای وب محور تولید میکنند را ذخیرهسازی کنند. این کار باید به روشی ساختیافته، امن و سازماندهی شده انجام شود. برای انجام این کار به فناوری به نام پایگاهداده نیاز داریم و در اغلب موارد بهترین انتخاب برای یک پایگاهداده، استفاده از مایاسکیوال است. علاوه بر این، بیشتر وبسایتهای پیاچپی روی سیستمهایی میزبانی میشوند که از سیستمعامل متنباز لینوکس استفاده میکنند. البته لزومی ندارد از لینوکس بهعنوان محیط توسعه استفاده کنید، زیرا امکان برنامهنویسی پیاچپی روی سیستمهای ویندوز، اندروید و مک نیز وجود دارد. سیستمعامل مناسب، آپاچی، مایاسکیوال و نصب زبان برنامهنویسی، چهار مؤلفه اساسی برای اغلب پیکربندیهای رایج پیاچپی هستند که باید در مورد روش پیکربندی آنها اطلاعات کافی داشته باشید.
راهاندازی محیط توسعه
راهاندازی محیط توسعه پیاچپی برخلاف سایر زبانهای برنامهنویسی ساده است. به بیان دقیقتر، بستههای آمادهای وجود دارند که تمامی این کارها را انجام میدهند. در ادامه با نحوه انجام این کار در سیستمعاملهای مختلف آشنا میشوید.
ویندوز
سادهترین روش راهاندازی یک محیط توسعه پیاچپی در ویندوز بهوسیله XAMPP است که طرفداران وب سرور آپاچی توسعه دادهاند. این بسته شامل مایاسکیوال، یک نسخه از زبان برنامهنویسی پیاچپی و وب سرور آپاچی است. بهعلاوه، یک کنترل پنل مدیریتی و افزونههایی برای SSL و ارسال ایمیل در آن وجود دارد (شکل 1).
شکل 1
امکان دانلود رایگان AMPP از سایت طرفداران آپاچی وجود دارد. البته دقت کنید دو نسخه از XAMPP وجود دارد. یکی از نسخهها 1.8.2 است و نسخه قدیمیتری از زبان برنامهنویسی پیاچپی را اجرا میکند و دیگری 1.8.3 است که نسخه فعلی پیاچپی است.
لینوکس
راهاندازی محیط توسعه پیاچپی روی لینوکس بهوقت بیشتری نیاز دارد. در توزیعهای لینوکسی روش نصب تا حدودی متفاوت است. اگر قصد دارید از اوبونتو یا هر توزیع دیگر لینوکس که از مخزن اوبونتو استفاده میکند، برای راهاندازی محیط توسعه پیاچپی بهره بگیرید، دستور زیر را اجرا کنید:
sudo apt-get install lamp-server^
دستور فوق یک سرور LAMP و مولفههای ضروری را نصب میکند. این مؤلفهها اجازه میدهند یک سرور LAMP را بهعنوان بخشی از پلتفرم بلاگنویسی وردپرس نصب کنید. این دستورالعملها در توزیعهایی که از YUM یا RPM برای مدیریت بستهها استفاده میکنند، کار نمیکنند و در سایر توزیعهای لینوکسی نیز باید از روش متفاوتی برای راهاندازی LAMP استفاده کنید. بااینحال گزینه دیگری نیز وجود دارد. در محیط لینوکس نیز مثل ویندوز میتوان Xampp را دانلود و روی لینوکس نصب کرد. البته پیشنهاد ما این است که سرور LAMP از طریق ابزار مدیریت بستهها نصب شود، زیرا در این حالت LAMP بهتر با سیستمعامل ادغام میشود و آسانتر میتوان آن را ارتقا داد. بهعلاوه نصب پیاچپی از طریق خط فرمان رویه مناسبی برای توزیع برنامه روی یک سرور VPS است.
سیستمعامل مکاوس ایکس
اگر از سیستمعامل مک شرکت اپل بهعنوان پلتفرم اصلی توسعه برنامهها استفاده میکنید، باید بدانید که فرایند راهاندازی محیط توسعه پیاچپی روی این زیرساخت ساده است. روی این سیستمعامل باید از بسته MAMP استفاده کنید که دو نسخه رایگان و پولی برای آن وجود دارد. اگر تجربه کار با پیاچپی را ندارید، نسخه رایگان گزینه مناسبی است. برای نصب MAMP باید روی فایل pkg کلیک کرده و دکمه continue را کلیک کنید تا نصب کامل شود (شکل 2).
شکل 2
همانند مراحل قبل باید یک محیط توسعه پیاچپی را از طریق XAMPP که برای مک پورت شده، راهاندازی کنید.
اندروید
اندروید تنها یک پلتفرم ساده برای گوشیهای همراه نیست و به توسعهدهندگان امکان ساخت نرمافزارهای کاربردی را میدهد. اگر بهتازگی گوشی اندرویدی خریداری کردهاید، توانایی اجرای پی اچپی، آپاچی و مایاسکیوال را دارد. سرورهای LAMP زیادی برای اندروید وجود دارند، اما پیشنهاد ما Palapa Server است. این سرور روی یک تبلت نکسوس 7 قدیمی نیز بدون مشکل قابلاجرا است. درست است که اندروید یک محیط توسعه ایدئال نیست، اما امکان کدنویسی زبان پیاچپی روی آن وجود دارد.
انتخاب یک ویرایشگر متن مناسب
هنگامی که قصد کدنویسی دارید باید از ویرایشگرهای متنی استفاده کنید. یکی از بهترین ویرایشگرهای متنی نرمافزار Sublime Text 2 است. این ویرایشگر رایگان امکانات خوبی برای کدنویسی در اختیارتان قرار میدهد.
ویرایشگر فوق امکان هایلایتکردن ترکیب نحوی زبان پی اچپی، جاوا اسکریپت و HTML را دارد تا خواندن کدها ساده شود. خوشبختانه ویرایشگر فوق چند سکویی است و امکان استفاده از آن روی لینوکس، ویندوز و مک وجود دارد. اگر از اندروید استفاده میکنید ویرایشگر متنی VimTouch یک انتخاب خوب است.
ملزومات دیگر
اکنون آماده هستید تا یادگیری پیاچپی را آغاز کنید، اما قبل از آن باید به چند نکته مهم دقت کنید. قبل از اینکه وارد بحث برنامهنویسی پیاچپی بشویم باید درباره ساختاربندی یک وبسایت در زبان HTML اطلاعات کافی داشته باشید. باشید. بهطور مثال، باید بدانید که برچسبهای<p> و تگ <span> چه تفاوتی با یکدیگر دارند. اگر آشنایی کمی با Html دارید، بهتر است ابتدا اطلاعات کافی در مورد HTML و البته HTML5 بهدست آورید و در ادامه به سراغ برنامهنویسی PHP بروید.
برنامه معروف Hello World
اکنون زمان آشنایی با پیاچپی و نوشتن برنامه سنتی Hello World فرارسیده است. قبل از این کار باید بدانیم که چگونه میتوانیم فایلهای پیاچپی را ذخیره کنیم. ما فایلهای پیاچپی را در محلی به نام Document Root ذخیره میکنیم. هر نوع فایلی که در این محل ذخیره شود برای هر کسی که آدرس آیپی کامپیوتر روی شبکه را بداند از طریق مرورگر وب در دسترس است. مکان Document Root بسته به اینکه چه محیطی برای توسعه پیاچپی ایجاد کردهاید، متفاوت است. اگر از MAMP روی مک استفاده میکنید، پوشه فوق در مسیر /Applications/MAMP/htdocs قرار دارد. اگر سرور LAMP را روی لینوکس و با استفاده از ابزار مدیریت بسته نصب کردهاید، دایرکتوری فوق در مسیر /var/www است. روی XAMPP دایرکتوری در آدرس /C:/xampp/htdocs قرار دارد. زمانی که پوشه فوق را پیدا کردید، فایلی به نام index.php ایجاد کنید و دستورات زیر را در آن بنویسید (شکل 3).
شکل 3
با اینکه دستورات خاصی در فایل وجود ندارد، اما اسکلت یک وبسایت را نشان میدهد. این صفحه اصلی وبسایتی است که در آدرس localhost قابلمشاهده است. برخی اوقات باید شماره پورت که 80، 8888، یا 8080 است را پس از آدرس فوق وارد شود. این شمارههای پورت بسته به محیط توسعه پیاچپی متغیر هستند. اکنون اولین دستور پیاچپی را بنویسید. کد زیر باید میان تگهای <body> و </body> قرار بگیرد.
<?php echo(“Hello World!”); ?>
تمامی کدهای PHP باید بین دو عبارت <?php’ and ‘?> ’ نوشته شوند در غیر این صورت وب سرور آنها را اجرا نمیکند. در قطعه کد فوق دستور echo محتوایی که میان پرانتزها قرار گرفته را روی مرورگر نشان میدهد. وقتی دستور echo به اتمام رسید از کاراکتر نقطهویرگول (;) به معنای پایان دستور استفاده میکنیم. اگر این نقطهویرگول را قرار ندهید، کد اجرا نمیشود. اگر کد را بهدرستی نوشته باشید، در مرورگر عبارت Hello World را مشاهده میکنید (شکل 4).
شکل 4
امکان استفاده از کدهای پیاچپی درون HTML وجود دارد؟
متأسفانه، پاسخ منفی است. اگر لازم است کاری را انجام دهید که نتیجه آن بهسرعت در مرورگر وب نشان داده شود، بهتر است آن را درون سند HTML قرار دهید، درست مشابه کاری که ما انجام دادیم. به این کار کدنویسی درونخطی (inline) پیاچپی گفته میشود. بااینحال در موارد پیچیدهتر همواره باید کد را درون سند PHP خاصی قرار دهید. همانند مثال قبل این فایل سند باید پسوند .php داشته باشد و همه کدها باید با بین عبارتهای <?php ?> قرار گیرند.
مفاهیم زیربنایی پیاچپی
قبل از آن که با دستورات دیگری از زبان پیاچپی آشنا شویم، بهتر است به طور اجمالی به مهمترین مفاهیم زبان برنامهنویسی پیاچپی نگاه کنیم. البته این فهرست کامل نیست، اما دید روشنی در ارتباط با مفاهیم کلیدی این زبان در اختیارتان قرار میدهد.
متغیرها
متغیرها در همه زبانهای برنامهنویسی وجود دارند. متغیرها راهکاری برای نگهداری موقت مقادیر در حافظه اصلی هستند تا بتوانید در بخشهای مختلف یک برنامه از آنها استفاده کنید. در برخی زبانهای برنامهنویسی تعیین یک مقدار برای متغیر ضروری است. به طور مثال، در زبانهای سی، سیشارپ، سیپلاسپلاس و جاوا تعیین مقدار متغیر قبل از استفاده از آن ضروری است و ترکیب نحوی شبیه به حالت زیر دارد:
Int x=10;
اگر با زبان اسکریپتنویسی جاوا اسکریپت آشنا باشید، میدانید که متغیرها با کلیدواژه var تعریف میشوند.
Var x=10;
در زبان پیاچپی متغیرها با استفاده از نماد دلار ($) تعریف میشوند.
$x=10;
در متغیرهای پیاچپی نمیتوان از عدد یا کاراکترهای خاص به جز کاراکتر (_) در ابتدای نام متغیر استفاده کرد. بهعلاوه نام متغیر نمیتواند this باشد، زیرا از کلیدواژههای اختصاصی این زبان است.
دستورات if
دستورات if در تمامی زبانهای برنامهنویسی نقش کلیدی دارند، این دستورات اجازه میدهد تا کدها بر مبنای تحقق شرط خاصی اجرا شوند. برای روشنشدن موضوع به قطعه کد زیر دقت کنید:
$x = 5;
if ($x == 4) {
echo(“Hello World”);
} elseif ($x == 3) {
echo(“Hello Dave”);
} else {
echo(“Hello Brian”);
{
در قطعه کد بالا، شرط اولی که بررسی میشود این است که آیا x$ برابر مقدار چهار است یا خیر (به علامتهای دوگانه مساوی توجه کنید). به دلیل اینکه شرط برقرار نیست، مفسر کد پیاچپی به دستور شرطی دوم نگاه میکند که آیا x$ برابر 3 است یا خیر؟ اگر بازهم شرط برقرار نیست به آخرین دستور میرود و عبارت Hello Brian را نشان میدهد. با اضافه کردن ! به ابتدای یک متغیر در عبارت if میتوان بررسی کرد که آیا یک متغیر تهی (خالی) خالی است خیر. متغیرهایی که تهی هستند با نامهایی مثل null یا null value شناخته میشوند. ترکیب نحوی دستورات فوق به شرح زیر است:
if (!$x){
echo(“x is empty”);
}
حلقه While
حلقه while برای تکرار دستورات مشخصی بر مبنای تحقق یک شرط استفاده میشوند. این حلقه مادامی که شرط برقرار باشد اجرا میشود. قطعه کد زیر این موضوع را نشان میدهد:
$x = 10;
while ($x > 1) {
echo($x);
$x = $x – 1;
{
کد فوق به مقدار x$ نگاه میکند و اگر این مقدار بزرگتر از 1 باشد، مقدار متغیر x$ را نشان میدهد، در غیر این صورت یک مقدار از آن کم میکند. کد قطعه کد فوق تا زمانی که $x>1 باشد، تکرار میشود.
حلقه For
حلقههای For یکی دیگر از دستورات پر کاربرد برنامهنویسی هستند که برای افراد مبتدی چالشبرانگیز است. در نگاه اول این دستورات کمی ترسناک به نظر میرسند، اما هنگامی که با ترکیب نحوی آنها آشنا شوید مشاهده میکنید کاملاً کاربردی هستند. قطعه کد زیر یک حلقه for ساده را نشان میدهد که مقادیر یک تا ده را شمارش میکند.
for($i = 0; $i < 10; $i++){
echo($i);
}
در قطعه کد فوق، ابتدا یک متغیر با مقدار 0 ایجاد میشود ($i=0). در ادامه شرط حلقه نوشته میشود که اگر $i کمتر از 10 بود حلقه به کار خود ادامه دهد ($i<10) و سپس یک واحد به متغیر i افزوده میشود ($i++) و دستورات درون آکولادها اجرا شده و حلقه تکرار میشود.
توابع
توابع یکی از کاربردیترین مفاهیم برنامهنویسی هستند که با منسجم کردن کدها، باعث صرفهجویی در نوشتن مجدد کدهایی میشوند که قرار است یک کار تکراری را انجام دهند. شیوه عملکرد توابع به این صورت است که کدهای تکراری درون بلوک مشخص نوشته میشوند و اگر قرار باشد در بخشهای مختلف یک برنامه به کار گرفته شوند تنها نام تابع فراخوانی میشود. نحوه ساخت تابع در پی اچپی ساده است. در مثال زیر، تابعی برای نمایش عبارت Hello World نوشته شده و سپس فراخوانی میشود. این تابع sayHello() نام دارد.
function sayHello(){
echo(“Hello World”);
{
علاوه بر این، میتوانید مقادیری را به تابع ارسال کنید. این مقادیر پارامتر نامیده میشوند و درون دو پرانتز در خط نخست اعلان تابع قرار میگیرند.
function sayHello($hello){
echo($hello);
{
نحوه فراخوانی توابعی که پارامتر دارند به شرح زیر است:
sayHello(“Hello World”);
در نهایت میتوان توابع را بهگونهای نوشت تا مقداری را باز گردانند.
function returnHello(){
return “Hello World”;
{
در مطلب بعدی مبحث فوق را ادامه میدهیم.
منبع: مجله شبکه