پیاچپی: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
جز ربات ردهٔ همسنگ (۳۰.۱) +مرتب+تمیز (۱۴.۹ core): + رده:نوشتارهای صوتی |
|||
خط ۳۲:
|وبگاه = {{URL|http://www.php.net}}
|پسوند نام پرونده=.php, .phtml, .php3, .php4, .php5, .php7, .phps, .php-s, .pht}}
'''پیاچپی''' {{انگلیسی|PHP}} یک
▲'''پیاچپی''' {{انگلیسی|PHP}} یک [[زبان برنامهنویسی|زبان برنامهنویسیِ]] [[شیءگرا]] است که برای [[طراحی وب]] توسعه یافتهاست، اما میتوان از آن به عنوان یک زبان عمومی نیز استفادهکرد. تا ژانویهٔ سال ۲۰۱۳ میلادی پیاچپی بر روی ۲۴۴ میلیون [[وبگاه]] و ۲٫۱ میلیون [[سرور وب]] نصب شدهاست.<ref>{{یادکرد |نویسنده = Andy Ide|نشانی= http://news.netcraft.com/archives/2013/01/31/php-just-grows-grows.html|عنوان= PHP just grows & grows| ناشر = Netcraft|تاریخ = January 31, 2013|تاریخ بازبینی= September 22, 2013|زبان=en}}</ref> این زبان در سال ۱۹۹۵ میلادی توسط [[راسموس لردورف|راسموس لِردورف]] {{به انگلیسی|Rasmus Lerdorf}} ساختهشد و در حال حاضر توسعهٔ آن بر عهدهٔ گروه پیاچپی میباشد.<ref name="history">{{یادکرد |نویسنده = |نشانی= http://www.php.net/manual/en/history.php.php|عنوان= History of PHP| ناشر = PHP Website|تاریخ = |تاریخ بازبینی= September 22, 2013|زبان=en}}</ref> در ابتدا پیاچپی از عبارت ''صفحهٔ خانگی شخصی'' {{به انگلیسی|Personal Home Page}} گرفته شدهبود.<ref name="history" /> اما اکنون این کلمه مخففِ بازگشتی ''PHP: Hypertext Preprocessor'' به معنی ''پیاچپی: [[پیشپردازنده|پیشپردازندهٔ]] [[ابرمتن]]'' میباشد.<ref>{{یادکرد |نویسنده = |نشانی= http://www.php.net/manual/en/preface.php|عنوان= Preface | ناشر = PHP Webiste|تاریخ = |تاریخ بازبینی= September 22, 2013|زبان=en}}</ref>
کدهای پیاچپی توسط یک [[سرور وب]] که [[نرمافزار]] پیاچپی بر روی آن نصب باشد، [[مفسر (رایانه)|تفسیر]] میشوند. دستورهای این زبان میتوانند به صورت مستقیم در درون کدهای [[اچتیامال]] قرار بگیرند. زبان پیاچپی از نسخهٔ ۴٫۳ به بعد قابلیت پشتیبانی از [[واسط خط فرمان]] را نیز به امکانات خود اضافه کرد. این قابلیت میتواند برای ایجاد [[نرمافزار]]های غیر وبی یا نرمافزارهایی با [[واسط گرافیکی کاربر]] مورد استفاده قرار بگیرد.<ref>{{یادکرد |نویسنده = |نشانی= http://www.php.net/manual/en/intro-whatcando.php|عنوان= What can PHP do?| ناشر = PHP Website|تاریخ = |تاریخ بازبینی= September 22, 2013|زبان=en}}</ref>
سطر ۴۲ ⟵ ۴۱:
{{triple image|left| Rasmus Lerdorf cropped.jpg|100| Andi Gutmans 1.jpg|100| Zeev Suraski 2005 cropped.jpg|100|[[راسموس لردورف]] (در تصویر سمت راست) که پیاچپی اولیه را نوشت، در کنار [[اندی گاتمنس]] و [[زیو سوراسکی]] که نویسندههای نسخهٔ ۳ پیاچپی بودند.}}
توسعهٔپیاچپی از سال ۱۹۹۴ و زمانی که [[راسموس لردورف]] تعدادی [[اسکریپت]] به زبان [[سی (زبان برنامهنویسی)|سی]] نوشت تا صفحهٔ خانگی خود را مدیریت کند، آغاز شد. این اسکریپتها که به صورت ''رابط دروازهٔ مشترک'' {{به انگلیسی|Common Gateway Inteface}} نوشته شدهبودند، مسئول انجام عملیاتهای سادهای مانند نشان دادن رزومهٔ [[راسموس لردورف|راسموس]] و بررسی آمارهای بازدید از [[وبگاه]] او بودند.<ref name="history"
[[اندی گاتسمن]] و [[زیو سوراسکی]] با بازنویسی [[تجزیهکننده|موتور تجزیهکننده]] در سال ۱۹۹۷ میلادی، پایه و اساس نسخهٔ ۳ پیاچپی را بنیان نهادند. این ۲ نفر با همراهی لردورف با تغییر نام پیاچپی به ''پیاچپی: [[پیشپردازنده|پیشپردازندهٔ]] [[ابرمتن]]'' {{به انگلیسی|PHP: Hypertext Preprocessor}} که یک مخفف بازگشتی است، در ماه جون ۱۹۹۸ میلادی رسماً پیاچپی نسخهٔ ۳٫۰ را منتشر کردند.<ref name="history"
در تاریخ ۲۲ می سال ۲۰۰۰ میلادی پیاچپی نسخهٔ ۴ که از [[موتور زند]] نسخهٔ ۱٫۰ استفاده میکرد، منتشر شد.<ref name="history"
در ۱۳ ژوئیه سال ۲۰۰۴ میلادی، نسخهٔ ۵ پیاچپی که از موتور زند نسخهٔ ۲ بهره میبرد، منتشر شد.<ref name="history"
در کنار نسخهٔ ۵ پیاچپی یک نسخهٔ اصلی دیگر در حال توسعه است. با توجه به تغییرات عمدهٔ موجود در این نسخه از جمله پشتیبانی کامل از یونیکد، قرار بود این نسخه به عنوان نسخهٔ ۶ پیاچپی منتشر گردد. اما پیادهسازی پشتیبانی از یونیکد بیش از آنچه انتظار میرفت به طول انجامید. این امر باعث شد تا در مارچ سال ۲۰۱۰ میلادی، این نسخه به بخش در حال توسعه {{به انگلیسی|Trunk}} منتقل شد و دیگر به آن نسخهٔ ۶ گفته نمیشود.
مهمترین تغییرات این بخش جدید شامل حذف <code>register_globals</code>،<ref>{{یادکرد |نویسنده = |نشانی= http://www.php.net/manual/en/ini.core.php#ini.register-globals|عنوان= Description of core php.ini directives| ناشر = PHP|تاریخ = |تاریخ بازبینی= September 24, 2013|زبان=en}}</ref> <code>magic quotes</code> و <code>safe mode</code> میباشد.<ref name="archive_2007"
دلیل حذف <code>magic quotes</code> تأثیرات غیرقابل پیشبینی و دلیل حذف <code>register_globals</code> خطرهای امنیتی بود که در نرمافزارها ایجاد میکرد. به جای استفاده از <code>magic qoutes</code> [[برنامهنویس]]ها میتوانند از تابع <code>addslashes()</code> یا توابع دقیقتری که برای هر [[پایگاه داده]] ایجاد شدهاند مانند <code>mysql_real_escape_string()</code> که برای پایگاه داده [[مایاسکیوال]] طراحی شدهاست، استفاده کنند. توابعی که قرار است در نسخهٔ ۶ حذف شوند، از نسخهٔ ۵٫۳ به صورت ''توصیهنشده'' {{به انگلیسی|Deprecated}} درآمدهاند و استفاده از آنها باعث بروز هشدار در نرمافزار خواهد شد.<ref>{{یادکرد |نویسنده = |نشانی= http://www.php.net/manual/en/migration53.deprecated.php|عنوان= Deprecated features in PHP 5.3.x| ناشر = PHP|تاریخ = |تاریخ بازبینی= September 24, 2013|زبان=en}}</ref>
سطر ۷۲ ⟵ ۷۱:
| {{Date|1995-06-08}}
|
| این نسخه به صورت رسمی "Personal Home Page Tools" یا "PHP Tools" نامیده شد. کلمهٔ پیاچپی اولین بار در اینجا به کار رفت.<ref name="about PHP"
|-
| {{نسخه |ق | ۲٫۰}}
سطر ۸۱ ⟵ ۸۰:
| {{نسخه |ق | ۳٫۰}}
| {{Date|1998-06-06}}
| {{Date|2000-10-20}}<ref name="eol"
| توسعهدهندگان از یک به چند نفر افزایش یافتند. [[زیو سوراسکی]] و [[اندی گاتمنس]] هستهٔ این نسخه را بازنویسی کردند.<ref name="history"
|-
| {{نسخه |ق | ۴٫۰}}
| {{Date|2000-05-22}}
| {{Date|2001-06-23}}<ref name="eol"
| سیستم دومرحلهای تجزیه/اجرای پیشرفته تحت عنوان ''[[موتور زند]]'' به این نسخه اضافه شد.<ref name="php4changelog">{{یادکرد |نویسنده = |نشانی= http://www.php.net/ChangeLog-4.php|عنوان= PHP: PHP 4 ChangeLog| ناشر = |تاریخ = |تاریخ بازبینی= September 24, 2013|زبان=en}}</ref>
|-
| {{نسخه |ق | ۴٫۱}}
| {{Date|2001-12-10}}
| {{Date|2002-03-12}}<ref name="eol"
| متغیرهای فوقِ سراسری(Superglobal) معرفی شدند. (<code>GET</code>، <code>$_POST</code>، <code>$_SESSION</code> و…)<ref name="php4changelog"
|-
| {{نسخه |ق | ۴٫۲}}
| {{Date|2002-04-22}}
| {{Date|2002-09-06}}<ref name="eol"
| تنظیم <code>register_globals</code> به صورت پیشفرض غیرفعال شد. با این تغییر اطلاعاتی که از طریق شبکه ارسال میشدند، دیگر بهطور مستقیم در محدودهٔ متغیرهای فوقِ سراسری قرار نمیگرفتند. این نکته مشکلات امنیتی احتمالی بسیاری از نرمافزارها را برطرف کرد.<ref name="php4changelog"
|-
| {{نسخه |ق | ۴٫۳}}
| {{Date|2002-12-27}}
| {{Date|2005-03-31}}<ref name="eol"
| [[واسط خط فرمان]] یا همان CLI به این نسخه اضافه شد.<ref name="php4changelog"
|-
| {{نسخه |ق | ۴٫۴}}
| {{Date|2005-07-11}}
| {{Date|2008-08-07}}<ref name="eol"
| صفحات راهنما(man page) برای درستورات phpsize و config-php اضافه شد.<ref name="php4changelog"
|-
| {{نسخه |ق | ۵٫۰}}
| {{Date|2004-07-13}}
| {{Date|2005-09-05}}<ref name="eol"
| [[موتور زند]] نسخهٔ ۲ معرفی شد.<ref name="php5changelog">{{یادکرد |نویسنده = |نشانی= http://www.php.net/ChangeLog-5.php|عنوان= PHP: PHP 5 ChangeLog| ناشر = PHP|تاریخ = |تاریخ بازبینی= September 24, 2013|زبان=en}}</ref>
|-
| {{نسخه |ق | ۵٫۱}}
| {{Date|2005-11-24}}
| {{Date|2006-08-24}}<ref name="eol"
| بهبود بازدهی با معرفی متغیرهای مترجم (Compiler Variables) در موتور جدید پیاچپی.<ref name="php5changelog"
|-
| {{نسخه |ق | ۵٫۲}}
| {{Date|2006-11-02}}
| {{Date|2011-01-06}}<ref name="eol"
| افزونهٔ فیلتر (Filter Extension) به صورت پیشفرض فعال شد. پشتیبانی از [[جیسن|جیسَن]] (JSON) افزوده شد.<ref name="php5changelog"
|-
| {{نسخه |ق | ۵٫۳}}
| {{Date|2009-06-30}}
| {{Date|2014-08-14}}<ref name="eol"
| پشتیبانی از namespace, late static binding، دستور jump (نسخهٔ ضعیف شدهٔ دستور Goto) و [[زباله جمعکن (علوم رایانه)|زباله جمعکن]]. پشتیبانی بهتر از [[سیستمعامل]] [[ویندوز]]. پشتیبانی از [[اسکیوال لایت|اسکیواللایت]] نسخهٔ ۳. کتابخانهٔ Mysqlnd جایگزین کتابخانهٔ libmysql (که مسئول برقراری ارتباط با بانکاطلاعاتی [[مایاسکیوال]] بود) شد. افزونهٔ fileinfo که کارایی بهتری در مورد MIMEها دارد، جایگزین افزونهٔ mime_magic شد. افزونهٔ بینالملل (Internationalization) اضافه شد و توابع ereg از دور خارج شدند.
|-
| {{نسخه |ق | ۵٫۴}}
| {{Date|2012-03-01}}
| {{Date|2015-09-03}}<ref name="eol"
| پشتیبانی از [[Trait]]. پشتیبانی از آرایهها با فرمت کوتاه. [[سرور وب]] داخلی.<ref>{{یادکرد |نویسنده = |نشانی= http://php.net/manual/en/features.commandline.webserver.php|عنوان= PHP: Built-in web server - Manual| ناشر = |تاریخ = |تاریخ بازبینی= September 24, 2013|زبان=en}}</ref> بهبود کارایی و استفاده از حافظه به میزان کمتر.{{سخ}}توابع حذف شده: <code>register_globals</code>, <code>safe_mode</code>, <code>allow_call_time_pass_reference</code>, <code>session_register</code>
|-
سطر ۱۵۱ ⟵ ۱۵۰:
| {{نسخه |ق | ۷٫۰}}
| {{Date|2015-12-03}}<ref name=php7final>{{cite web |url=http://php.net/archive/2018.php#id2018-07-19-2|title=News Archive – 2018: PHP 7.2.9 Released |date=2018-08-16 |access-date=2018-08-16 |website=php.net}}</ref>
| {{Date|2018-12-03}}<ref name="releaseprocess"
| Zend Engine 3 (performance improvements<ref name="phpng"
|-
| {{نسخه |قج | ۷٫۱}}
سطر ۱۶۲ ⟵ ۱۶۱:
| ۹ آذر ۱۳۹۶
| ۱۰ آذر ۱۳۹۹<ref name="supportedversions"/>
| Object parameter and return type hint<ref>{{cite web|url=https://wiki.php.net/rfc/object-typehint|title=PHP: rfc:object-typehint|website=wiki.php.net}}</ref>
|-
| {{نسخه |جا | ۷٫۳}}
| ۱۵ آذر ۱۳۹۷<ref>{{cite web|url=https://wiki.php.net/todo/php73|title=PHP: todo:php73|website=wiki.php.net}}</ref>
| ۱۵ آذر ۱۴۰۰
| Flexible [[
|-
| colspan="4" | <small>{{نسخه|ا|نمایاندن=۱۱۱۱۱۱}}</small>
|}
از تاریخ ۲۸ جون سال ۲۰۱۱ میلادی، گروه پیاچپی برنامهای مدون برای انتشار نسخههای آیندهٔ این زبان را منتشر کرد.<ref name="release"
== ساختار ==
سطر ۲۲۲ ⟵ ۲۲۱:
</source>
در نسخهٔ ۵٫۲ و نسخههای قبل آن توابع دست اول نبوده و تنها بهصورت مستقیم یا غیرمستقیم با نامشان قابل فراخوانی هستند.<ref name="functions">{{یادکرد |نویسنده = |نشانی= http://www.php.net/manual/en/language.functions.php|عنوان= PHP: Functions| ناشر = PHP Manual|تاریخ = |تاریخ بازبینی= October 22, 2013|زبان=en}}</ref> توابع پیاچپی میتوانند بدون نوشتن نمونه اولیه (Prototype) تعریف شوند.<ref name="functions"
از نسخهٔ ۵٫۳ به بعد میتوان با استفاده از قابلیت [[بستار (علوم رایانه)|بستار]] (Closure)، توابع بدوناسم را به صورت زیر تعریف کرد:
سطر ۲۵۴ ⟵ ۲۵۳:
=== اشیاء ===
قابلیت [[برنامهنویسی شیءگرا]]یی بهصورت ابتدایی در نسخهٔ ۳ به زبان پیاچپی افزوده و در نسخهٔ ۴ بهتر شد.<ref name="history"
اگر شخص [[برنامهنویس]] با استفاده از کلمهٔ کلیدی <code>clone</code> سعی کند که یک شیء را کپی کند، [[موتور زند]] ابتدا بررسی میکند که متد <code>__clone</code> در درون کلاس تعریف شدهاست یا خیر. در صورتی که تعریف نشدهباشد، متد پیشفرض <code>__clone</code> فراخوانی میشود که تمامی خصوصیات کلاس را کپی میکند. اما اگر این متد در کلاس وجود داشتهباشد، مسئولیت کپی کردن و مقداردهی در کلاس کپیشده بر عهدهٔ این متد خواهد بود.<ref>{{یادکرد |نویسنده = |نشانی= http://www.php.net/language.oop5.cloning|عنوان= PHP: Object Cloning| ناشر = PHP Manual|تاریخ = |تاریخ بازبینی= October 30, 2013|زبان=en}}</ref>
سطر ۳۰۴ ⟵ ۳۰۳:
== پروانه انتشار ==
پیاچپی یک [[نرمافزار آزاد]] است که با [[پروانه پیاچپی]] منتشر میشود.<ref name="license"
:تمامی محصولاتی که بر پایهٔ پیاچپی گسترش مییابند، نباید بدون اجازهٔ قبلی از group@php.net از نام "PHP" برای نامگذاری استفاده کنند. شما میتوانید با قرار دادن کلمهٔ "for PHP" (بهمعنای برای پیاچپی) در نام محصول خود نشان دهید که محصول شما با زبان پیاچپی کار میکند. مثلاً استفاده از نام "PHP Foo" غیرمجاز است، در حالیکه استفاده از "Foo for PHP" بدون مشکل خواهد بود.
سطر ۳۱۲ ⟵ ۳۱۱:
بهطور کلی دو روش اصلی برای نصب زبان پیاچپی بر روی [[سرور وب|سرورهای وب]] وجود دارد. در بسیاری از سرورهای وب یک ماژول مستقیم به نام Server Application Programming Interface یا SAPI وجود دارد. برای مثال سرورهای [[کارساز اچتیتیپی آپاچی|آپاچی]]، مایکروسافت آیآیاس و آیپلنت (iPlanet) از این روش استفاده میکنند. تعدادی دیگر از سرورهای وب نیز از Internet Server Application Programming Interface یا ISAPI پشتیبانی میکنند. اگر زبان پیاچپی در سرور وب ماژولی نداشتهباشد، همواره میتوان از آن به عنوان Common Gateway Interface یا CGI و FastCGI استفاده کرد. در این حالت باید سرور را تنظیم کرد تا تمامی درخواستهای مربوط به زبان پیاچپی را با فایلهای CGI اجرا کند.<ref name="install">{{یادکرد |نویسنده = |نشانی=http://www.php.net/manual/en/install.general.php |عنوان= PHP: General Installation Consideration| ناشر = PHP Website|تاریخ = |تاریخ بازبینی= November 28, 2013|زبان=en}}</ref>
برای نوشتن برنامههای دارای [[رابط گرافیکی کاربر|رابط گرافیکی]] نیز میتوان از افزونهٔ PHP-GTK در زبان پیاچپی استفاده کرد. این افزونه در نسخهٔ منتشر شده موجود نیست و باید به این زبان افزودهشود.<ref name="install"
هنگامی که از زبان پیاچپی در محیطهای [[محاسبات ابری|ابری]] استفاده میشود، [[کیت توسعه نرمافزار|کیتهای توسعه نرمافزار]] (SDK) خاصی برای استفاده از امکانات محیط نیز همراه با آن منتشر میگردد. برای مثال:
سطر ۳۲۵ ⟵ ۳۲۴:
== جستارهای وابسته ==
* [[طراحی وب]]
* [[اچتیامال]]
سطر ۳۶۲ ⟵ ۳۶۰:
[[رده:نرمافزارهای پیاچپی]]
[[رده:نرمافزارهای چندسکویی]]
[[رده:نوشتارهای صوتی]]
[[رده:واژگان اینترنت]]
|