آموزش پی اچ پی (PHP)

دسته بندی: آموزش طراحی وب

آموزش پی اچ پی

آنچه در این صفحه می خوانید:

معرفی پی اچ پی (PHP)

PHP یک زبان برنامه نویسی شیء گرا و متن باز است که برای طراحی وب توسعه یافته است اما می توان از آن به عنوان یک زبان عمومی نیز استفاده کرد. تا ژانویه سال ۲۰۱۳ میلادی پی‌اچ ‌پی بر روی ۲۴۴ میلیون وب‌گاه و2.1 میلیون سرور وب نصب شده‌است. در ابتدا پی‌اچ‌ پی از عبارت صفحه خانگی شخصی( Personal Home Page) گرفته شده ‌بود اما اکنون این کلمه مخفف Hypertext Preprocessor به معنی پیش‌پردازنده ابرمتن می‌باشد.

این زبان برنامه نویسی بر پایه زبان C نوشته شده و یک زبان Cross-Platfrom است و بر روی سیستم عامل های مختلف (ویندوز، لینوکس، یونیکس، مک OS X، و غیره) قابل اجرا است و همچنین قابلیت نصب آن به صورت یک شل جداگانه بر روی تقریباً تمامی سیستم‌های عامل و پلت‌فرم‌ها یا سکوها وجود دارد. پی اچ پی تقریبا با تمام سرورهای مورد استفاده امروز (آپاچی، IISو غیره) سازگار است و از طیف گسترده ای از پایگاه های داده نیز پشتیبانی می کند. کدهای پی‌اچ‌ پی توسط یک سرور وب که پی‌اچ ‌پی بر روی آن نصب باشد، تفسیر می‌شوند. دستورهای این زبان می‌توانند به صورت مستقیم در درون کدهای HTML قرار بگیرند.

قابلیت بهینه‌سازی کد نیز در زبان پی‌اچ‌ پی موجود بوده، و برنامه‌ها و افزونه‌هایی مانند eAccelerator برای این منظور توسعه داده می‌شوند. زبان PHP در نسخه های جدید قابلیت پشتیبانی از واسط خط فرمان را نیز به امکانات خود اضافه کرده است. این قابلیت می‌تواند برای ایجاد نرم‌افزارهای غیر وبی یا نرم‌افزارهایی با واسط گرافیکی کاربر مورد استفاده قرار بگیرد. تست برنامه‌های کاربردی و نرم‌افزارهای توسعه داده شده با PHP از جهت‌های مختلف حایز اهمیت هستند. با توجه به استفاده فراگیر PHP در برنامه‌های کاربردی وب، تست کارایی (Performance Testing) از اهمیت دوچندانی برخوردار است. همچنین ابزارهای بازبینی و مرور کد نیز کمک فراوانی به توسعه دهندگان می‌کند که بتوانیم بسیاری از اشکالات را در سطح کد و قبل از تست برطرف نماییم.

در حال حاضر نسخه های مختلفی از این زبان برنامه نویسی ایجاد شده که جدیدترین آنها نسخه 7 می باشد. پی اچ پی 7 آخرین نسخه پایدار است و بسیار سریع تر از نسخه قبلی است. پی اچ پی 7 پردازش خطاها را بهبود بخشیده و از نوع اعلان های سخت تر و اپراتورها، متدها و ویژگی های جدید پشتیبانی می کند.

تاریخچه پی اچ پی (PHP)

توسعه PHP در سال 1994 شروع شد وقتی كه Rasmus Lerdorf چندین برنامه رابط مشترک دروازه (CGI) را در C نوشت، كه وی برای حفظ صفحه شخصی خود استفاده می كرد. وی آن ها را برای کار با وب فرم ها و برقراری ارتباط با پایگاه داده گسترش داد و این اجرای را "صفحه اصلی شخصی / فرم ها مترجم" یا PHP/FI خواند. از PHP/FI می توان برای ساختن برنامه های وب ساده و پویا استفاده کرد. برای تسریع در گزارش اشکال و بهبود کد، Lerdorf در ابتدا خبر انتشار PHP / FI را با عنوان "ابزارهای شخصی صفحه اصلی (ابزارهای پی اچ پی) نسخه 1.0" در 8 ژوئن 1995 این نسخه قبلاً عملکرد اساسی ای داشت که امروزه PHP دارد. این شامل متغیرهای شبیه به پرل، نحوه مدیریت فرم و امکان جاسازی HTML است. نحو شبیه به پرل بود، اما ساده تر، محدودتر و کمتر سازگار بود.

در طول سال 2014 و 2015، نسخه اصلی PHP جدید ایجاد شد که با شماره PHP 7 شماره گذاری شده است. شماره گذاری این نسخه بحث هایی را شامل می شود. در حالی که آزمایش PHP 6 Unicode هرگز منتشر نشده بود، چندین مقاله و عناوین کتاب نام PHP 6 را ارجاع دادند، که در صورت استفاده مجدد از این نام، ممکن است باعث سردرگمی شود. پس از رای گیری، نام PHP 7 انتخاب شد.

ویژگی های پی اچ پی (PHP)

این زبان محبوب ترین و اغلب مورد استفاده در سراسر جهان است، دلیل اصلی محبوبیت آن است. اوپن سورس و بسیار ساده است. از دیگر ویژگی های عمده می توان به موارد زیر اشاره کرد:

  • ساده: این بسیار ساده و آسان برای استفاده است، در مقایسه با یک زبان برنامه نویسی دیگر بسیار ساده و آسان است ، این مورد به طور گسترده در سراسر جهان استفاده می شود.
  • تفسیر شده: این یک زبان تفسیری است، یعنی نیازی به کامپایل نیست.
  • سریع: این سرعت سریعتر از سایر زبانهای اسکریپت به عنوان مثال asp و JSP.
  • اوپن سورس: منبع آزاد به این معنی است که نیازی به پرداخت هزینه استفاده از PHP نیست، می توانید بارگیری و استفاده رایگان کنید.
  • بسترهای نرم افزاری مستقل: کد PHP در هر پلتفرم، لینوکس، یونیکس، Mac OS X، ویندوز اجرا خواهد شد.
  • حساس به حالت: PHP در هنگام اعلام اظهار متغیر، زبان نوشتاری حساس به فایل است. در PHP، تمام کلمات کلیدی، کلاس ها، توابع و توابع تعریف شده توسط کاربر، حساس به حالت نیستند.
  • گزارش خطا: PHP برخی از ثابت های گزارش خطا از پیش تعریف شده برای ایجاد اخطار یا اعلام خطا را دارد.
  • نظارت بر دسترسی به real-tiem: با ایجاد خلاصه ای از دسترسی های اخیر برای کاربر، ورود به سیستم را فراهم می کند.
  • زبان تایپی آزاد: PHP بدون اعلام نوع داده از استفاده متغیر پشتیبانی می کند. در زمان اجرا براساس نوع داده ای كه در مورد ارزش آن دارد، گرفته می شود.

کاربرد پی اچ پی (PHP)

کلاس PDO

ما از PHP Data Object منحصراً برای اتصال به پایگاه داده های MySQL استفاده می کنیم. PDO یک لایه انتزاع خوب در اطراف مجموعه ای از درایورهای پایگاه داده مانند MySQL ،PostgreSQL و MS SQL فراهم می کند. این بدان معناست که از هر پایگاه داده ای که استفاده می کنید، تا زمانی که PDO از آن پشتیبانی می کند، می توانید از همان عملکردها برای انجام همان عملکردها در پایگاه داده استفاده کنید. این باعث می شود کد شما قابل حمل باشد تا بتوانید برنامه وب خود را در کلیه پایگاه های داده بدون زمان توسعه اضافی مورد استفاده قرار دهید.

json_encode و json_decode

با استفاده از PHP5.2، دو عملکرد بسیار مفید وجود دارد که به شما امکان می دهد رشته های JSON را تجزیه کنید. JSON یک استاندارد مبتنی بر متن است که به طور کلی برای ارسال و دریافت داده با ساختار ساده ای طراحی شده است که به راحتی قابل خواندن است، هم توسط یک کامپیوتر و هم توسط یک انسان.

کلاس DateTime

کلاس DateTime به شما امکان می دهد زمان و تاریخ ها را به شیوه ای مرتب تر مدیریت کنید که استفاده از توابع اصلی استاندارد مانند mktime و strtotime غیرممکن است. با استفاده از کلاس های DateInterval و DateTimeZone، ما قادر به انجام عملکردهای استاندارد مانند اضافه کردن یا کم کردن فواصل زمانی در یک تاریخ یا تغییر منطقه زمانی فعلی هستیم. کلاس DateTime همچنین قابل گسترش است، بنابراین می توان قابلیت های اضافی را فراهم کرد، در حالی که پاک کننده تر کردن کد و خواندن آن ساده تر است.

استثناها (Exceptions)

با PHP5 اجرای استثنائات را به وجود آورد. مانند سایر زبان های برنامه نویسی مانند جاوا و سی شارپ، استثنائاتی برای "throw" خطاها استفاده می شود که می توانند در هر نقطه با حباب کردن از طریق پشته کد شما گرفتار شوند. یک استثناء را می توان به راحتی با استفاده از کلید واژه پرتاب به دنبال یک شیء Exception ایجاد کرد. گرفتن استثناها با بستن کدی که می خواهید در بلوک آزمایشی آزمایش کنید، انجام می شود. پس از آن شما نیاز به ایجاد یک بلوک گیرنده برای گرفتن هر استثنائی دارید که کد موجود در بلوک امتحان است.

فضای نامی (Namespaces)

در زمان های قبل از نام های نام، PHP هر متغیر، عملکرد و کلاس را تحت عنوان نام جهانی قرار می دهد. این توسعه دهندگان محدود است تا اطمینان حاصل شود که برنامه های آنها فقط عملکرد و نام کلاس منحصر به فرد دارند. توسعه دهندگان با پیشوند نام کلاس و عملکردها به این مسئله رسیدند تا تأثیر شبه مکانهای نام را ارائه دهند، اما مشکل اینجاست که نام کلاس می تواند به بزرگی برسد و این باعث می شود گاهی اوقات خواندن و نوشتن آنها بدون استفاده از یک IDE هوشمند دشوار شود.

Hashing API

چندی پیش مشکلی پیش آمد که سایت های بزرگ با نام های بزرگ هک شده و رمزهای عبور ناخواسته هک شدند. در آن زمان، استفاده از عملکرد MD5 برای رمزگذاری رمز عبور کافی بود، بنابراین ایمن بود. مشکلی که در MD5 و SHA1 وجود دارد این است که آنها سریعاً الگوریتم هشینگ را انجام می دهند. در کنار اختراع پردازنده های سریعتر و استفاده از GPU، مردم توانایی پردازش صدها هزار هش در ثانیه حتی بر روی رایانه رومیزی استاندارد یا لپ تاپ را دارند.

API hashing جدید که در PHP5.5 معرفی شده است، لایه ای آسان برای استفاده در بالای bcrypt برای ایجاد هش های ایمن (در حال حاضر) فراهم می کند که حل آن توسط هکرها بسیار سخت تر است. مثال زیر نشان می دهد که چگونه می توان هر متغیر رشته را هش کرد. یک نمک به طور خودکار ایجاد می شود و روال عذاب آور هزینه ای برابر با 15 خواهد داشت.

<?php$hash = password_hash($password, PASSWORD_BCRYPT, ['cost' => 20]);

کلاس SimpleXML

هنگامی که ما باید با فایلهای XML سر و کار داشته باشیم، تمایل داریم از کلاس SimpleXML استفاده کنیم. این کلاس با کاربرد آسان، خواندن و ویرایش فایل های XML را از طریق اشیاء به شما امکان می دهد. استفاده از این اشیاء به شما این امکان را می دهد تا مقادیر معمول و همچنین مجموعه ای از روش های ساده برای تغییر ساختار XML را به بازگرداندن مقادیر و تکرار آن در آرایه ها بپردازید. اگر فقط نیاز به چیز خاصی در XML دارید و با استفاده از روش داخلی XPath، می توانید مجموعه ای از اشیاء SimpleXML Element را فقط برای مسیری که ارائه کرده اید برگردانید. علاوه بر خواندن XML ،SimpleXML روش هایی را برای ایجاد اسناد جدید و یا تزریق عناصر به XML وارد شده فراهم می کند. این می تواند در چند خط کد ذخیره شود.

معماری پی اچ پی (PHP)

در این بخش چگونگی قرارگیری تمام قسمت های مختلف راننده در کنار هم توضیح داده شده است. از ران تایم های مختلف زبان، از طریق برنامه های افزودنی و کتابخانه های PHP در بالا. این معماری جدید جایگزین پسوند مانگو قدیمی شده است.

معماری پی اچ پی

در بالای این پشته یک کتابخانه PHP خالص قرار دارد که آن را به عنوان یک بسته کامپوزر توزیع خواهد شد. این کتابخانه API مشابه آنچه را که کاربران از درایور قدیمی mongo انتظار دارند ارائه داده است (به عنوان مثال روش های CRUD، پایگاه داده ) و انتظار می رود که این یک وابستگی مشترک برای اکثر برنامه های کاربردی ساخته شده با MongoDB باشد. این کتابخانه همچنین به منظور بهبود قوام API در کلیه »رانندگان تحت حمایت MongoDB مشخصات خاص را نیز اجرا می کند. این برنامه افزودنی به طور موثر اتصال بین PHP و کتابخانه های سیستم را تشکیل می دهد (»libmongoc و» libbson). این برنامه افزودنی یک API عمومی یکسان برای اساسی ترین و حساس ترین عملکرد را در معرض نمایش قرار می دهد:

  • مدیریت اتصال
  • رمزگذاری و رمزگشایی BSON
  • سریال سازی سند شی (برای پشتیبانی از کتابخانه های ODM)
  • اجرای دستورات و عملیات نوشتن
  • رسیدگی به نمایش داده ها و مکان نما

با جدا کردن داخلی درایو و یک API سطح بالا به ترتیب به کتابخانه های افزودنی و PHP، بار تعمیر و نگهداری خود را کاهش داده و امکان تکرار سریعتر در ویژگی های جدید را فراهم می شود. این امر همچنین کمک به هر کسی را برای درایو آسانتر می کند. علاوه بر این، یک API عمومی یکسان می تواند انتقال برنامه را در طول زمان های PHP آسانتر کند، خواه برنامه از درایور سطح پایین بطور مستقیم استفاده کند یا یک کتابخانه PHP سطح بالاتر.

در ابتدا اشاره شد که انتظار می رود که کتابخانه PHP یک وابستگی متداول برای اکثر برنامه ها باشد، اما نه همه. برخی از کاربران ممکن است ترجیح دهند به API بدون زواید ارائه شده توسط برنامه های افزودنی بپیوندند یا انتزاع سطح بالایی را ایجاد کنند. كتابخانه هاي آينده مي توانند شامل يك كتابخانه PHP باشند كه براي مديريت MongoDB در نظر گرفته شده است و API براي مديريت و كاربردهاي مختلف براي كاربران و برنامه ها فراهم مي كند.

فریمورک های پی اچ پی (PHP)

فریمورک های PHP

فریمورک های زیادی برای PHP ایجاد شده اند که به برنامه نویسان تحت وب این قدرت را می دهد تا برنامه های پیچیده تر و امن تری بسازند. فریمورک PHP، معماری وبی است که روش های مختلفی را در خود جای می دهد و شامل یک سری سیاست های امنیتی و کد های قابل مصرف دوباره و COMPONENT هایی برای کد نویسی سریع برنامه های تحت وب می باشد. این فریمورک ها مزیت های زیادی را برای برنامه نویس به همراه می آورند. از فریمورک های معروف PHP می توان به موارد زیر اشاره کرد :

فریمورک لاراول (Lavarel)

فریمورک لاوارل در سال ۲۰۱۱ معرفی شد و تغییراتی بنیادین در شکل برنامه‌نویسی PHP ایجاد کرد. شعار لاراول "فریم‌ورک PHP برای صنعتگران وب" است. شباهت بیشتر برنامه‌نویسی لاراول به زبان طبیعی سبب می‌شود توسعه و تغییر دادن کدهای نوشته شده در گذشته آسان‌تر از قبل باشد. همچنین بهره‌گیری از آخرین استانداردها و متودولوژی‌های تولید نرم‌افزار، کار کردن با لاراول را برای برنامه‌نویسان و توسعه‌دهندگان آسان و برای کاربران، دلپذیر می‌کند.

فریمورک سیمفونی (Symfony)

سیمفونی یکی از فریمورک های PHP پایدار یا Stable در حوزه طراحی وب است. مقیاس پذیری و قابلیت انعطاف آن به توسعه دهندگان اجازه می دهد تا مهارت های خود را به صورت آزادانه به کار بگیرند. به عنوان یک فریمورک قابل انعطاف دارای آرایه های قابل استفاده مجدد زیادی است که توسعه دهندگان از آن در شکل پیکربندی فرم ها، تایید اطلاعات، موتور قالب، امنیت و …استفاده می کنند.

فریمورک کدایگنایتر (Codeigniter)

فریمورک Codeigniter یا کدایگنایتر یک فریمورک وب متن باز خیلی سبک است و به توسعه دهندگان در ساخت سریع صفحات وب داینامیک کمک می کند. مستندات جامع و طبیعت انعطاف پذیر فوق العاده آن یادگیری این میکرو فریمورک را خیلی ساده کرده است. نصب آن سبک و بدون دردسر است و تنظیمات کمی دارد. همچنین از کتابخانه‌ های قدرتمندی بهرمند است. این فریمورک محدود به الگوی MVC نیست به این شکل که Model و View ها در آن به دلخواه هستند اما Controller ها الزامی اند.

فریمورک یی (Yii)

فریمورک Yii سریع، ایمن و با عملکرد بالا است و می تواند زمان کد نویسی را بسیار کاهش دهد. این فریمورک کاملا شئ محور است. از تکنیک بارگذاری Lazy و همچنین کامپوننت‌هایی برای توسعه‌ ابزارها استفاده می‌کند. برای ساخت انواع برنامه های وب مانند انجمن ها، پورتال ها، سیستم های مدیریت محتوا، خدمات RESTful، وب سایت های تجارت الکترونیک و غیره مناسب است. همچنین Yii دارای یک ابزار سازنده کد به نام Gii است که شامل سازنده کامل CRUD می باشد.

فریمورک فالکون (Phalcon)

فریمورک فالکون از معماری model – view – controller استفاده می کند و برنامه نویسان راحت تر و با سرعت بیشتری می توانند برنامه های پیچیده و بزرگ طراحی کنند. این فریمورک حداقل استفاده از منابع را دارد. فالکون یک extention برای PHP است که به زبان C نوشته شده است. شما می‌توانید Phalcon را متناسب با نیازهایتان، بهینه سازی کنید.

فریمورک زند (Zend)

زند فریمورکی بسیار امن و قابل اطمینان است.این فریمورک از معماری MVC پشتیبانی می کند و بر اساس متد چابک (Agile) طراحی شده است. همچنین Zend کاملا از اصول شی گرایی (SOLID) در ساختار خود پیروی می کند. دارای ویژگی های خوبی مثل ویرایش drag-drop است که از HTML ، Javascript، Css و سیستم خطایابی لحظه ای آنلاین PHP برخوردار است و ابزار های کد نویسی رمز نگاری را در خود جای داده است.

آیا این نوشته را دوست داشتید؟