پیاچپی (PHP) یک زبان برنامهنویسی متن باز رایج است که برای ساخت برنامههای کاربردی وبمحور مورد استفاده قرار میگیرد. اگرچه PHP در ابتدا مخفف صفحه اصلی شخصی (personal home page) بود، اما اکنون PHP مخفف بازگشتی پیش پردازشگر فرا متن (hypertext preprocessor) است. در مقاله PHP چیست و برای چه کارهایی استفاده میشود، قصد داریم اطلاعات ارزشمندی در ارتباط با این زبان برنامه نویسی به دست آوریم تا ببینم کاربردهای PHP چیست و ترکیب نحوی PHP به چه صورتی است.
پیشنهاد مقاله: آیا برای یادگیری برنامهنویسی شرط سنی خاصی وجود دارد؟
در سادهترین شکل، زبان برنامه نویسی PHP یک زبان برنامهن ویسی سمت سرور است که در HTML تعبیه شده است. PHP به توسعهدهندگان وب اجازه میدهد تا محتوای پویا ایجاد کنند و با پایگاه دادهها تعامل داشته باشند. PHP به دلیل سادگی، سرعت و انعطافپذیری خود مورد توجه توسعهدهندگان قرار دارد و ویژگیهایی کاربردی غنی ارائه کرده که آنرا به یکی از ابزارهای کلیدی دنیای توسعه وب تبدیل کرده است.
زبان برنامه نویسی PHP توسط 79.1٪ از تمام وبسایتها و بر مبنای رویکرد برنامهنویسی سمت سرور مورد استفاده قرار میگیرد و استفاده از آن در دهه گذشته به شدت در حال افزایش بوده است. این زبان برنامهنویسی در برخی از بزرگترین پلتفرمهای وب مطرح جهان مثل فیسبوک، ویکی پدیا، وردپرس و زوم مورد استفاده قرار میگیرد.
PHP چه قابلیتهای کلیدی ارائه میکند؟
مانند هر زبان اسکریپتنویسی دیگری، PHP اساسا ابزاری است که هم برای اتصال به پایگاه داده برای دریافت اطلاعات و هم برای تحویل آن اطلاعات به وب سرور برای نمایش محتوا در HTML استفاده میشود، اما جنبههای زیادی از PHP وجود دارد که آن را از سایر زبانها متمایز میکند. بهطور خلاصه، از ویژگیهای کاربردی ارائه شده توسط این زبان به موارد زیر باید اشاره کرد:
یک زبان اسکریپتنویسی کارآمد است: زبانهای اسکریپت توسط برنامه دیگری در زمان اجرا تفسیر میشوند (نیازی به کامپایل نیست). زبانهای اسکریپت میتوانند در سمت سرور یا سمت سرویس گیرنده (در مرورگر) تفسیر شوند.
کارایی زیادی سمت سرور دارد: یک زبان برنامه نویسی سمت سرور است که توسط یک مترجم PHP در یک وب سرور پردازش میشود. نتیجه (خروجی) به عنوان HTML ساده به مرورگر وب ارسال میشود.
منبعباز است: به صورت رایگان برای دانلود و استفاده در دسترس است.
شیگرا است: برنامه نویسی شیگرا (OOP) از مفهوم اشیاء برای کار با دادهها و توابع برای کمک به ساخت برنامههای کاربردی وب پیچیدهتر با قابلیت استفاده مجدد استفاده میکند. لازم به توضیح است که شیگرایی از نسخه 5 به این زبان برنامه نویسی افزوده شده است.
سریع است: PHPدارای یک کش داخلی است که باعث میشود تا حجم کاری سرور به حداقل برسد و عملکرد افزایش پیدا کند. PHP میتواند تا 382٪ سریعتر از Python و 195٪ سریعتر از Ruby باشد.
ساده است: ترکیب نحوی PHP به راحتی قابل درک و یادگیری است، چه از ابتدا بسازید یا از فریمورکها یا افزونههای موجود استفاده کنید.
پشتیبانی خوبی از آن به عمل میآید: PHP از تمام پایگاههای داده پیشرو مثل MySQL، SQLite، ODBC و غیره پشتیبانی میکند، با اکثر وب سرورها مثل آپاچی (Apache)، IIS و غیره سازگار است. در همه سیستم عاملها (ویندوز، سیستم عامل مک، لینوکس و غیره) قابل استفاده است و تیم قدرتمندی از توسعهدهندگان از آن پشتیبانی میکنند. علاوه بر این توسط چارچوبهای بزرگی مثل لاراول (Laravel)، CodeIgniter، Symfony و نمونههای مشابه پشتیبانی میشود.
PHP یک زبان loosely-typed است: PHP در مجموع از هشت نوع داده استفاده میکند که برای ساخت متغیرها (که انواع مختلفی از دادهها را ذخیرهسازی میکنند) استفاده میکند. برخلاف سایر زبانهای برنامه نویسی، PHP در مورد متغیرها، ارزیابی و حدس زدن نوع داده انعطافپذیر است. تعریف همه متغیرها در ابتدا با کاراکتر دلار ($) آغاز میشود، اما میتوان هر چیزی را که با یک حرف شروع میشود نامگذاری کرد.
برخلاف بیشتر زبانهای برنامه نویسی، متغیرهای PHP ماهیت قوی (Strong) یا ضعیف (Weak) ندارند و در مقابل همگی از نوع پویا (dynamic) هستند.
PHP یکی از مولفههای کلیدی پشته LAMP
کدهای پیاچپی در بیشتر موارد بر روی یک وبسرور اجرا میشوند. وبسرور مسئول ارسال صفحههای وب به هر کاربری است که وارد یک نام دامنه یا آدرس آیپی خاص شده است.
رایجترین انتخاب برای وبسرور، استفاده از نرمافزار محبوب آپاچی است. این پروژه نرمافزاری منبع باز و چند پلتفرمی به بخش عمدهای از سایتهای اینترنتی جهان سرویسدهی میکند. به بیان دقیقتر ۴۵ درصد از همه وبسایتهای روی اینترنت با استفاده از وبسرور آپاچی صفحههای خود را سرویسدهی میکنند. البته، وبسرورهای دیگری مانند LightTTPD و IIS مایکروسافت نیز وجود دارند.
عبارت LAMP مخفف Linux ،Apache ،MySQL و PHP است که حرف دوم آن اشاره به وبسرور آپاچی دارد.
بدون شک، همه وبسایتها مجبور هستند اطلاعاتی را که برنامه تحت وب تولید میکند، ذخیرهسازی کنند. بهتر است که این اطلاعات به روشی ساختیافته، امن و سازماندهی شده ذخیره شوند. همه اینها باعث میشود که ما به چیزی به نام پایگاه داده نیاز داشته باشیم و در اغلب موارد بهترین انتخاب برای یک پایگاه داده، استفاده از مایاسکیوال است.
بیشتر وبسایتهای پیاچپی بر روی سیستمهایی ارائه میشوند که از سیستمعامل متنباز لینوکس بهره میگیرند. با این حال لزومی نیست که از لینوکس به عنوان محیط توسعه خود استفاده کنید.
داشتن سیستمعامل، آپاچی، مایاسکیوال و نصب زبان برنامهنویسی، چهار مولفه اساسی برای اغلب پیکربندیهای رایج پیاچپی محسوب میشوند.
PHP در توسط چه وبسایتهای بزرگی استفاده میشود؟
PHP میتواند برای توسعه صفحات وب پویا و تعاملی، برنامههای کاربردی و پلتفرمهای تجارت الکترونیک استفاده شود. PHP برای انواع انجام انواع مختلفی از کارهای تحت وب مثل ساخت صفحات وب پویا، ارسال ایمیل و جمعآوری فرمهای وب تا ارسال و دریافت کوکیها، مناسب است. از آنجایی که PHP میتواند اطلاعات را در یک پایگاه داده ذخیره، حذف و اصلاح کند، به یک زیرساخت قوی برای ایجاد برنامههای کاربردی وب از جمله سیستمهای مدیریت محتوا (CMS)، پایگاههای داده آنلاین سفارشی، وبسایتهای تجارت الکترونیک، برنامههای کاربردی بازی و پورتالهای اجتماعی تبدیل شده است.
وقتی نوبت به ارائه یک تجربه دیجیتالی قوی میرسد که رابطه برند-مشتری را تقویت میکند و مزیت رقابتی شرکت را بهبود میبخشد، PHP قابلیتهای توسعه بی نظیری را ارائه میدهد. برای آنکه ببنید این زبان برنامه نویسی چه قابلیتهای کاربردی را ارائه میکند اجازه دهید به چند نمونه از کاربردهای واقعی PHP نگاهی داشته باشیم.
فیسبوک
فیسبوک از نسخه PHP به نام ماشین مجازی HipHop (HHVM) استفاده میکند که نتیجه خالص پردازش سریعتر و کارآمدتر درخواستهای کاربران است. فیس بوک 2.45 میلیارد کاربر فعال ماهانه دارد و هنگامی که صحبت از مقیاسبندی و گسترشپذیری به میان میآید به یک زبان برنامه نویسی کارآمد نیاز دارد که توانایی مدیریت این حجم از درخواستها را داشته باشد.
ویکیپدیا
از نظر بهروزرسانی، هیچ چیز وبسایتی مثل ویکیپدیا نیست. ویکیپدیا که با سرعت 1.9 ویرایش در ثانیه و 594 مقاله جدید بزرگترین وب سایت نگارش مقالات در سراسر جهان است. این وبسایت برای آنکه بتواند پایداری خود را حفظ کند و مقیاسپذیری را به بهترین شکل ارائه دهد به یک زبان برنامه نویسی انعطافپذیر و قدرتمند نیاز دارد.
یاهو
موتور جستجوی یاهو و پورتال خبری آن در سال 2002 بر مبنای PHP به کاربران سرویسدهی کنند. یاهو از یک سیستم اختصاصی مبتنی بر زبانهای سیپلاسپلاس به همراه PHP برای کاهش هزینهها و پشتیبانی از مقیاسپذیری استفاده میکنند. یاهو همچنان به حدود 700 میلیون نفر در ماه خدماترسانی میکند.
کانوا
Canva در چند سال گذشته رشد زیادی داشته است و از یک ویرایشگر عکس با کاربری ساده به سمت ساخت الگوهای گرافیکی وب با قابلیت چاپ تبدیل شده است. این وبسایت 10 میلیون کاربر در 179 کشور دارد و یکی از پلتفرمهای طراحی محبوب به شمار میرود.
اسلک
Slack در انتخاب خود برای استفاده از PHP برای منطق برنامه سمت سرور خود کاملا موفق بوده است. Slack فراتر از یک دارایی تحت وب ساده است. یک پلت فرم ارتباطی کامل است که اخیرا توسط Salesforce به مبلغ 27.7 میلیارد دلار خریداری شده است.
چه سیستمهای مدیریت محتوا از PHP استفاده میکنند؟
سیستم مدیریت محتوا (CMS) یک برنامه نرمافزاری آنلاین است که به کاربران کمک میکند تا محتوای دیجیتال را بدون دانش تخصصی ایجاد و مدیریت کنند. رایجترین نمونه از CMS سیستمی است که به شما امکان میدهد وب سایت خود را بدون دانش HTML بسازید و مدیریت کنید. سایر CMSها بر مدیریت داراییها مانند آلبومهای عکس آنلاین یا اشتراکگذاری اسناد تمرکز دارند.
امروزه اکثر سیستمهای مدیریت محتوا از جمله وردپرس، دروپال، مجنتو، جوملا و بسیاری از پلتفرمهای محبوب دیگر از PHP استفاده میکنند. به عنوان یک زیرساخت PHP به توسعهدهندگان این سیستمهای مدیریت محتوا کمک میکند از این پلتفرمها و افزونههای CMS برای ساخت وب سایتهای مقرون به صرفه و پلتفرمهای تجارت الکترونیک استفاده کنند.
وردپرس احتمالاً شناخته شدهترین سیستم مدیریت محتوا PHP است که 76.4 درصد از بازار CMS را به خود اختصاص داده و 75 میلیون وب سایت فعال را میزبانی میکند. وردپرس بینهایت سازگار است و میزبان وبسایتهایی است که پیچیدگی آنها از وبلاگهای رایج تا فروشگاههای بزرگ تجارت الکترونیک را شامل میشود.
آشنایی کلی با PHP
اکنون که اطلاعات اولیهای در ارتباط با PHP به دست آوریم، وقت آن رسیده تا برنامه ساده و سنتی Hello World در این زبان برنامه نویسی را بررسی کنیم.
ابتدا باید به بررسی این مسئله بپردازیم که چگونه میتوانیم فایلهای پیاچپی را ذخیره کنیم. فایلهای پیاچپی یک وبسایت در محلی به نام ریشه سند (Document Root) ذخیره میشوند. ریشه سند یک دایرکتوری است که هرچه در آن ذخیره شود برای هر کسی که از آدرس آیپی کامپیوتر بر روی شبکه و به وسیله مرورگر وب بازدید میکند، در دسترس خواهد بود.
موقعیت ریشه سند بسته به اینکه چه محیطی برای توسعه پیاچپی ایجاد کردهاید، متفاوت هستند. اگر از MAMP روی مک استفاده میکنید میتوانید ریشه سند در آدرس /Applications/MAMP/htdocs قرار دارد. اگر سرور LAMP را روی لینوکس و با استفاده از ابزار مدیریت بسته نصب کردهاید، در این صورت دایرکتوری ریشه سند احتمالاً در /var/www خواهد بود. بر روی XAMPP دایرکتوری ریشه در آدرس /C:/xampp/htdocs قرار دارد.
زمانی که پوشه ریشه سند را پیدا کردید یک فایل به نام index.php ایجاد کنید و خطوط زیر را به آن اضافه کنید.
<!doctype html>
<html lang=”en”>
<head>
<meta charset=”UTF-8″>
<title>Microblogging Site</title>
</head>
<body>
</body>
</html>
با اینکه نکته قابل تاملی در ارتباط با کدهای فوق وجود ندارد، اما قطعه کد بالا اسکلت یک وبسایت مبتنی بر زبان برنامه نویسی PHP را نشان میدهد. این صفحه اصلی وبسایت در آدرس localhost قابل مشاهده است. گاهی اوقات لازم است که شماره پورت را که معمولاً 80، 8888، یا 8080 است را نیز پس از آدرس فوق وارد کید. این شمارههای پورت بسته به محیط توسعهی پیاچپی که استفاده میکنید، متغیر هستند. اگر مطمئن نیستید به مستندات بسته توسعه خود مراجعه کنید.
اکنون قصد داریم کدهای ابتدایی مبتنی بر پیاچپی را بنویسیم. کد زیر را بین تگهای <body> و </body> بنویسید.
<?php echo(“Hello World!”);?>
کد فوق اطلاعات جالبی دارد. همه کدهای PHP باید بین دو عبارت php؟> و <? نوشته شوند. اگر چنین کاری نکنید، وبسرور آنها را اجرا نمیکند. سپس عبارت echo را داریم که همانطور که حدس زده میشود، محتوایی را در مرورگر نمایش میدهد. در نهایت خود محتوایی که قرار است نمایش یابد را میبینیم. لازم به ذکر است که پرانتزها (در اغلب موارد) هنگام فراخوانی یک تابع اختیاری هستند.
وقتی عبارت echo پایان یافت آن را با یک نقطهویرگول (;) میبندیم. اگر این نقطهویرگول جا بیفتد، کد اجرا نمیشود. اگر کد شما به طور صحیحی اجرا شود، در مرورگر وب خود عبارت Hello World را خواهید دید.
آیا ضرورتی دارد تا کدهای پیاچپی درون HTML قرار گیرند؟
پاسخ منفی است. اگر نیاز است تا کاری را برنامهنویسی کنید که نتیجه آن بیدرنگ در مرورگر وب نمایش مییابد، بهتر است آن را درون سند HTML قرار دهید. به این کار کدنویسی درونخطی (inline) پیاچپی گفته میشود و مان نیز از همین روش در کدنویسی نمایش Hello World روی صفحه استفاده کردیم.
با این حال در موارد پیچیدهتر همواره باید کد را درون سند PHP خاص خود قرار دهیم. همانند مثال قبل این فایل سند باید پسوند .php داشته باشد و همه کدها باید با بین عبارتهای php؟> و <? قرار گیرند.
بانکهای اطلاعاتی
هنگامی که صحبت از برنامه نویسی PHP به میان میآید، MySQL به عنوان ابزار مکمل آن مورد توجه قرار میگیرد، زیرا این دو فناوری ارتباط نزدیکی با یکدیگر دارند.
یک روش ذخیرهسازی داده، استفاده از پایگاههای دادهای رابطهای است که بر مفهوم ارتباط متقابل جداول استوار است. در این پایگاههای داده، اطلاعات در ردیفها و ستونهای جداول مختلف ذخیره میشود.
تعداد زیادی از سیستمهای مدیریت پایگاه داده وجود دارند که از این پارادایم (به نام RDBMS شناخته میشود) استفاده میکنند. از جمله آنها اوراکل (Oracle)، اماسکیوال (MsSQL)، و ماریادیبی (MariaDB) هستند. اما مایاسکیوال (MySQL) همراه با PHP مورد استفاده قرار میگیرد.
مایاسکیوال یک سیستم مدیریت پایگاه داده مدرن است. تعداد وبسایتهایی که از آن استفاده میکنند، زیاد است. وردپرس از آن استفاده میکند و نسخههای اولیه فیسبوک نیز از آن استفاده میکردند. این پایگاه داده بر اساس پارادایم پایگاههای داده رابطهای عمل میکند.
مایاسکیوال مزایای زیادی دارد. مزیت اول این است که این پایگاه داده رایگان است. از آن بر روی هر پلتفرمی میتوان استفاده کرد. همچنین، مایاسکیوال یک بسته نرمافزاری سبک است و میتواند روی سیستمهایی با منابع محدود مورد استفاده قرار گیرد.
همچنین یادگیری آغاز کار با مایاسکیوال بسیار ساده است و حجم اطلاعات زیادی در مورد آن برای افرادی که میخواهند آن را بیاموزند، وجود دارد. برخی از منابع آموزشی آن مستندات دقیق و پرجزییاتی هستند که کاربران برایش ایجاد کردهاند.
برای تعامل با مایاسکیوال باید از زبان برنامهنویسی SQL (زبان کوئری ساختیافته) استفاده کنیم. این زبان امکان اجرای کوئریهای پیچیدهای را بر روی یک پایگاه داده فراهم میکند و ساختار آن نیز شبیه یک زبان معمولی انسانی است و نه یک زبان ماشینی. در نتیجه آغاز یادگیری آن برای مبتدیها آسان است.
انواع داده مایاسکیوال
مایاسکیوال این نیاز را دارد تا هر ستون در یک جدول با نوع داده مشخصی تعریف شده باشد. برای مثال نوع سن یک نفر را میتوان به صورت عددی تعریف کرد؛ در حالی که نام فرد میتواند شامل انواع مختلفی از کاراکترهای الفبایی باشد.
برای تضمین انسجام دادههای ذخیره شده در یک جدول، باید نوع دادهها از قبل مشخص شوند. با اینکه این کار تا حدودی پیچیده به نظر میرسد؛ اما مطمئن باشید که بسیار ساده است. تنها کاری که باید بکنیم این است که از قبل بدانیم که قرار است چه نوع دادههایی را در یک ستون جدول داده ذخیره کنیم.
مایاسکیوال نوعهای دادهای زیادی دارد. به طور مثال، Varchar(x) یکی از آنها است. وقتی محتوایی را در پایگاه داده وارد میکنید که میتواند شامل انواع عدد، کاراکترهای خاص و حروف مختلف باشد، بهتر است از یک فیلد varchar استفاده کنید. این نوع داده میتواند طول متغیری داشته باشد. اندازه فیلد با طول بیشینه 30 کاراکتر را میتوان به صورت varchar(30) تعریف کرد.
نوع پر کاربرد دیگر مقدار صحیح (Integer) است. وقتی در نظر داریم اعداد را در پایگاه داده خود ذخیره کنیم، میتوانیم از این نوع داده استفاده کنیم. این نوع داده میتواند اعدادی از-2147483648 تا 2147483647 را در خود جای دهد. با این حال اگر قصد دارید اعداد بزرگتری ذخیرهسازی کنید، میتوانید از انواع دادهای دیگری که به این منظور وجود دارند استفاده نمایید.
در نهایت به این نکته دقت کنید که هنگامی قصد یادگیری پیاچپی را دارید، پیشنهاد میکنیم همراه به آن پایگاه داده MySQL را نیز بیاموزید تا بتوانید به شکل کاربردیتری از PHP استفاده کنید.
منبع: