همه چیز از زمانی شروع شد که Rasmus Lerdorf دانمارکی در سال ۱۹۹۴ تعدادی اسکریپت به منظور مدیریت یک سری از کارها در سایت شخصی خود با زبان برنامه نویسی Perl نوشت. Lerdorf با استفاده از این اسکریپتها که بر اساس استاندارد اسکریپتنویسی (Common Gateway Interface) نوشته شده بودند، آمار افرادی را که در حال خواندن رزومه اش بودند محاسبه و ذخیره کرد. او با این کار توجه افراد زیادی را به اسکریپت هایش جلب کرد و از او درخواست کردند تا اسکریپتها را برای آنها هم ارسال کند. بنابراین Lerdorf تصمیم گرفت که نام اسکریپتهای خود را PHP گذارد که مخفف عبارت Personal Home Page بود.
معرفی زبان PHP
زبان PHP یک زبان اسکریپتی اوپن سورس است که برای طراحی برنامه های تحت وب سرور به کار می رود. سمت سرور بودن به این معناست که صفحات PHP ابتدا توسط سرور (که می تواند از نوع Apache یا IIS) باشد، پردازش شده و سپس خروجی به صورت کدهای HTML و جاوا اسکریپت برای مرورگر کاربر ارسال می شود. به عبارت دیگر وظیفه اجرای صفحات PHP به عهده سرور وب هاست سایت می باشد برخلاف HTML یا جاوا اسکریپت.
PHP مخفف عبارت Hypertext PreProcessor به معنای پیش پردازند فرامتن می باشد گه در سال ۱۹۹۴ توسط رسموس لردورف ایجاد شد و سپس توسط سایرین توسعه و گسترش پیدا کرد. اولین نگارش عمومی آن در اوایل سال ۹۵ ارائه شد و با نام Personal Home Page روانه بازار شد البته بسیار ساده بود.
ساختار زبان PHP بسیار شبیه به زبان C و در نسخه های جدبد شبیه به جاوا می باشد و به همین دلیل از محبوبیت فراوانی برخوردار است. از مشهورترین نرم افزارهای ساخته شده با PHP می توان به جوملا، وردپرس ، دروپال و … اشاره نمود. سایت های فراوانی در جهان براساس زبان PHP نوشته شده اند و هر روز نیز بر تعداد آنها افزوده می شود.
بر طبق آمار منتشر شده بیش از ۶۰% از سایت های موجود در سرورها با زبان PHP نوشته و بارگذاری شده است که از مهمترین آنها می توان به ویکی پدیا . فیسبوک اشاره کرد.
کاربرد php چیست؟
Php یک زبان برنامه نویسی است که متخصصان این حوزه با استفاده از آن اقدام به ساخت صفحات داینامیک میکنند. با به کارگیری این زبان میتوان سایت و اپلیکیشنهای تحت وب فوق العادهای را برنامه نویسی کرد. اگر بخواهیم به صورت دقیقتر به پرسش کاربرد php چیست؟ پاسخ دهیم، باید به کارهای پشت صحنهای که با استفاده از این زبان انجام میشود، اشاره کرد. به عبارت دیگر، با استفاده از php قادر به تغییر ظاهر سایت نخواهید بود و کاربرد این زبان تنها در گرفتن اطلاعات مختلف از پایگاه داده و نشان دادن آنها به کاربر است.
برای اینکه به طور کامل با کاربرد این زبان برنامه نویسی آشنا شوید، توضیح مختصری درمورد سایت داینامیک و استاتیک، ارائه میدهیم. منظور از سایت داینامیک، خواندن اطلاعات و کل محتواهای صفحه از یک پایگاه داده و نمایش آن به کاربران است. در مقابل منظور از سایت استاتیک، نوشتن اخبار و محتواها به صورت دستی، در صفحات وب است.
مزایای PHP
برخی از مزایای زبان php که سبب شده است بسیاری از برنامه نویسان به سراغ یادگیری آن روند، عبارتند از:
یادگیری آسان
یادگیری و استفاده از php بسیار راحت است. به همین دلیل بسیاری از برنامه نویسان مبتدی که هنوز نمی دانند برنامه نویسی چیست و تازه به حوزه برنامه نویسی ورود پیدا کردهاند، در ابتدا به سراغ یادگیری این زبان میروند.
Php زبانی منبع باز
زبان برنامه نویسی php یک زبان منبع باز یا (Open Source) است. معمولا زبانهای برنامه نویسی توسط جامعه جهانی گستردهای از توسعه دهندگان، توسعه یافته و نگهداری میشود. این زبانهای توسعه یافته به صورت آزاد در اختیار کاربران قرار میگیرد و نیاز به پرداخت هیچ هزینهای نیست.
قابلیت انتقال
پی اچ پی بر روی سیستم عاملهای مختلفی مانند مایکروسافت، ویندوز، لینوکس، سیستم عامل مک و… قابل اجرا است. همچنین این زبان با تمامی سرورهایی که امروزه مورد استفاده قرار میگیرند سازگار میباشد.
عملکرد سریع
اسکریپتهایی که با استفاده از زبان پی اچ پی نوشته میشوند، معمولا سریعتر از سایر زبانهای دیگر مانند ASP.NET یا JSP قابل اجرا هستند.
اجتماع گسترده
از آن جایی که زبان پی اچ پی توسط جامعه جهانی برنامه نویسان پشتیبانی میشود، یافتن مستندات و آموزشهای لازم به صورت آنلاین، بسیار راحت است.
معایب PHP
در کنار تمامی مزایایی که php در اختیار کاربران خود میگذارد، اشکالاتی نیز بر آن وارد شده است که در ادامه این معایب را معرفی میکنیم. به یاد داشته باشید برای بهبود عملکرد، بهتر است قبل از اینکه به سراغ یادگیری یک زبان بروید، به خوبی با ویژگیهای آن آشنا شوید. معایب این زبان عبارتند از:
- php مناسب برنامههای تحت دسکتاپ نیست
- نسبت به سایر برنامهها کم و بیش آهستهتر اجرا میشود
- Php ممکن است باگهای امنیتی داشته باشد
- پردازش خطاها در php نسبت به زبانهای برنامه نویسی قدیمیتر است و حل آنها زمانبرتر است
- امنیت کمتر نسبت به net
فریمورکهای PHP
فریمورکها به منزله بستری برای ایجاد برنامههای وب PHP هستند. آنها از کتابخانههای کد برای توابع متداول استفاده میکنند و تعداد کدهای اصلی موردنیاز را کاهش میدهند. در حقیقت، چارچوبهایی که برای این زبان ساخته شدهاند، ساختار اساسی را برای سهولت توسعه برنامههای وب فراهم کرده و اغلب توسعهدهندگان نیز از آنها استفاده میکنند.
لاراول Laravel
زمانی که صحبت از فریمورکهای PHP میشود، یکی از نامهایی که به ذهن هر توسعهدهندهای خطور میکند، لاراول است. این چارچوب به دلیل ساختار زیبایی که دارد، به شهرت رسیده که درک آن آسان و کار با آن بسیار لذتبخش است. با استفاده از Laravel میتوان با سرعت بیشتری پروژهها را انجام داد و تمرکز بیشتری بر روی آنها داشت. دسترسی به توابعی مانند: احراز هویت کاربر، مدیریت جلسهها و قابلیت کش، ازجمله مزایای استفاده از این فریمورک میباشند. به طور کلی، اگر در یک جمله بخواهیم در مورد کیفیت عملکرد این چارچوب صحبت کنیم، باید بگوییم که تمام عملکردهایی را که برای ساخت یک برنامه مدرن نیاز دارید، بستهبندی میکند.
همچنین بسیار راحت با کتابخانهها و سیستم عاملهای شخص ثالث مانند AWS ادغام میشود و این امکان را برای شما ایجاد میکند تا برنامههای گستردهتری بسازید. شما میتوانید برای کارهای طولانی، آنها را در صف قرار دهید تا در بکگراند به صورت همزمان اجرا نشوند و به بهبود عملکرد سایت کمک کنید.
Codelgniter
یکی دیگر از چارچوبهای PHP با نام Codelgniter شناخته میشود که از معماری mvc استفاده میکند. به بیانی دیگر، این فریمورک از مولفههای گوناگونی برای مدیریت امور خاص توسعه بهره میبرد. این شیوه، در بین توسعهدهندگان بسیار مورد پسند است؛ چراکه شما را قادر میسازد تا برنامههای وب مقیاسپذیرتری بسازید. اگر در زمینه کار با چارچوبهای این زبان تازهوارد هستید، انتخاب این مورد میتواند گزینه خوبی برای شما باشد. چراکه یادگیری و شروع کار با آن بسیار ساده است.
Symfony
اگر مسابقهای برای انتخاب برترین چارچوب PHP وجود داشته باشد، بدون شک Symfony از نظر محبوبیت با دو موردی که در قسمتهای قبلی معرفی کردیم، در یک سطح است. Symfony بسیار انعطافپذیر بوده و یک بسته نرمافزاری در اختیار شما میگذارد. منظور از بسته در اینجا این است که میتوانید عملکردهای PHP موردنیازتان را از آن انتخاب کنید یا خیلی راحت از کل چارچوب استفاده نمایید.
برای آنکه مطمئن شوید که برنامههایتان همانطور که میخواهید اجرا میشوند یا خیر، میتوانید از قابلیت تست داخلی آن استفاده کنید. با این وجود، براساس تجربه، برنامههایی که با استفاده از این پلتفرم ساخته میشوند، معمولا بهترین عملکرد را ندارند. همچنین، این چارچوب در مقایسه با گزینههایی که تا به حال دیدهایم، یک منحنی یادگیری شیبدار دارد.
Laminas Project
توسعهدهندگان معمولا از پروژههای Laminas که تا پیش از این تحت عنوان Zend بودند، به عنوان یک فریمورک glue یاد میکنند. این موضوع، راهی برای معرفی کردن ماهیت مبتنی بر glue نیز میباشد. Laminas یک چارچوب ساخته شده براساس MVC شیءگرا بوده که این امکان را برایتان فراهم میکند تا اجزای موردنظر خود را به عنوان کتابخانههای جداگانه بارگیری نمایید. به عبارتی دیگر، این فرصت را در اختیارتان قرار میدهد تا فقط بر روی اجزا و عملکردهای موردنظر خود تمرکز کرده و موارد دیگر را نادیده بگیرید. با استفاده از این رویکرد و ماهیت شیءگرایی آن، میتوانید کدی که مینویسید را بارها مورداستفاده قرار دهید.
Phalcon
Phalcon یکی دیگر از فریمورکهای PHP است که به دلیل نوشته شدن کد منبع آن با زبان C کمی عجیب به نظر میرسد. به عبارتی دیگر، این چارچوب یک اکستنشن C از PHP است که در عمل، یکی از سریعترین فریمورکهایی است که میتوانید از کار کردن با آن لذت ببرید. همچنین از نظر منابع، بسیار کممصرف بوده و از معماری MVC استفاده میکند. پس از نصب این چارچوب، تقریبا هیچ فایلی دریافت نمیکنید و به جای آن، فقط ماژولها و کتابخانههای موردنیازتان را در صورت نیاز میتوانید اضافه کنید.
FuelPHP
این فریمورک یکی از موارد نسبتا جدیدی است که برای نخستین بار در سال ۲۰۱۴ راهاندازی شد. سازندگان آن بر این باورند که بهترین روشها را از سایر چارچوبهای قدرتمند جمعآوری کرده و چیزهای جدید و هیجانانگیزی در آن قرار دادهاند.
CakePHP
در اوایل دهه ۲۰۰۰ بود که CakePHP به عنوان اولین چارچوب MVC PHP وارد بازار شد. در آن دوره، این فریمورک یک گزینه بسیار عالی بود و هنوز هم یکی از محبوبترین چارچوبهای زبان PHP محسوب میشود. نسخههای جدید آن با گذر زمان بهبود پیدا کرده و اجزای جدید زیادی به آن اضافه شدند. با این پلتفرم، پس از تسلط بر مجموعه قراردادهای آن، میتوانید بر توسعه تمرکز کرده و کارهای بیشتری انجام دهید.
همچنین مجموعه شگفتانگیزی از کتابخانهها را ارائه میدهد که شامل Componentsهای بسیار مفیدی میشود. آزمایشات انجام شده ثابت کرده که این چارچوب یکی از مجموعههای کاملی است که میتوانید برای برنامهنویسی با PHP استفاده کنید. بنابراین اگر نیاز به اجرای ویژگیهای دشوار دارید، CakePHP گزینه بسیار خوبی برای شما خواهد بود.
Yii
یکی دیگر از فریمورکهای قدرتمند و برتر PHP ، Yii است. یکی از ویژگیهای بارز آن، سهولت در تنظیم است و به همین دلیل توسعهدهندگان زیادی طرفدار آن هستند. همچنین دررابطه با عملکرد، این چارچوب در مقابل Phalcon قرار میگیرد و یک امتیاز بزرگی برای آن میباشد. مانند سایر چارچوبهایی که تا به حال دیدهاید، Yii هم مجموعه کاملی از اجزای سازنده را ارائه میکند تا بتوانید از آنها برای افزایش سرعت توسعه برنامههای وب استفاده کنید. علاوه بر این، به دلیل وجود مجموعه قدرتمندی از ویژگیهای امنیتی، Yii مشخصات برجستهای دارد که میتوان از آنها برای ساخت پروژههای بسیار ایمن استفاده کرد.
Slim
با استفاده از فریمورک Slim میتوان سرعت برنامههای وب و API را افزایش داد. علاوه بر مواردی که تا این قسمت از مطلب معرفی کردیم، سایر فریمورکهای PHP گزینههای زیر نیز هستند:
- Fat-Free Framework
- Lumen
نحوه نصب و اجرای زبان PHP
برای برنامه نویسی و استفاده از PHP به ۳ چیز کلی نیاز است :
برنامه یا ابزاری برای کدنویسی : در ساده ترین حالت می توانید از برنامه Notepad و حالت پیشرفته تر آن +Notepad برای کدنویسی استفاده کنید. اما نرم افزار های حرفه ای مانند Dreamweaver، NuSphere PhpED و NetBeans و … هستند
مرورگر وب : برای مشاهده صفحات نیاز به یک مرورگر می باشد که البته می شود از مرورگر پیشفرض استفاده نمود ولی پیشنهاد بهتر ما این است که حدالامکان از مرورگر Chrome و یا Firefox استفاده شود.
سرور اجرا کننده PHP : چنانچه بخواهید برنامه ها و صفحات PHP را بر روی کامپیوتر خود اجرا کنید نیاز به نصب PHP و MySQL می باشد که می توان آنها را به صورت تکی دانلود و نصب کرد
PHP یک زبان تفسیرشونده است که اساس و بنیان آن طراحی و ایجاد صفحات پویای وب بوده است. به عبارتی دیگر، کسانی که وظیفه کدنویسی سایت را بر عهده دارند با استفاده از زبان PHP قادر خواهند بود وب اپلیکیشنهایی طراحی کنند که به صورت تعاملی میباشند. منظور از تعاملی بودن وجود قابلیت هایی مانند سطوح دسترسی مختلف برای کاربران، امکان ثبتنام در سایت، پنل کاربری ، ذخیره اطلاعات کاربران و بسیاری از امکانات دیگر است که امروزه در تمامی سایتهای امروزی مشاهده میکنیم.
PHP یک زبان مفسری
همانطور که اشاره شد، زبان PHP به صورت مفسری کدها را ترجمه و اجرا میکند. زبانهای مفسری نسبت به زبانهای کامپایلری کندتر میباشند ولی در عوض عملیات دیباگ کردن یا خطایابی آنها راحتتر صورت میگیرد. از طرفی محصول نهایی زبانهای مفسری برخلاف زبانهای کامپایلری که یک خروجی واحد ارائه میدهند سورس کد نوشته شده است.
زبان هایی مانند PHP در سرور (مربوط به سایت) پردازش و اجرا و در نهایت خروجی آن به سوی کاربر ارسال میشود. به همین دلیل به زبان هایی مانند PHP سمت سرور یا Server-Side میگوییم. از آنجایی که پیاچپی در سمت سرور اجرا میشود، برای برقراری ارتباط بین کاربر و سرور نیاز نرم افزاری دارد که به آن وب سرور میگوییم.
زمانی که برنامه نویس نرم افزار مورد نظرش را با هر یک از زبانهای سطح بالا مانند زبان PHP مینویسد، نرمافزار دستورات نوشته شده را به صورت اتوماتیک به زبانهای سطح پایین یا ماشینی (منظور همان زبان قابل فهم برای سیستم یا زبان صفر و یک است) ترجمه میکند تا سیستم آنها را اجرا کند.
قبل از اینکه زبان هایی مانند PHP ، JavaScript و… ایجاد شوند، صفحات وب به صورت ایستا طراحی میشدند. منظور از طراحی به صورت ایستا، این است که صفحات وب فقط با استفاده از کدهای Css و Html ایجاد میشدند که طراحی وب سایت را با محدودیتهای فراوانی همراه میکرد. برای مثال اگر کارفرما و یا صاحب سایت از طراح آن برای ایجاد تغییری در سایت درخواستمی کرد، طراح میبایست به صورت دستی و یک به یک این تغییرات را در سایت اعمال کند و دیگر خبری از پنلهای تنظیمات پیشرفته و یا داشبوردهای مدیریتی در سایتهای استاتیک نبود.به همین دلیل زبان هایی مانند PHP با هدف رفع این محدودیتها به وجود آمدند تا فرآیند برنامه نویسی را برای طراحان سایت بسیار سادهتر کنند.
کاربردهای دیگر زبان برنامه نویسی PHP
- طراحی وبسایت (Back-end)
- ساخت نرم افزار دسکتاپ
- ساخت قالب و افزونه وردپرس
- ساخت ربات تلگرام
- ساخت گرافیک با PHP