پیاچپی
|
|
این مقاله نیازمند تمیزکاری است. لطفاً تا جای امکان آنرا از نظر املا، انشا، چیدمان و درستی بهتر کنید، سپس این الگو را از بالای مقاله بردارید. محتویات این مقاله ممکن است غیر قابل اعتماد و نادرست یا جانبدارانه باشد یا قوانین حقوق پدیدآورندگان را نقض کرده باشد. |
پیاچپی - پیشپردازندهٔ فرامتنی |
|
| گونه | |
|---|---|
| منتشر شده در | ۱۹۹۵- ۱۸ سال پیش |
| طراح(ها) | رسموس لردورف |
| توسعهدهنده(ها) | گروه پیاچپی |
| آخرین نسخه پایدار | ۵.۴.۱۵ (۹ مه ۲۰۱۳) |
| زبان برنامهنویسی | سی |
| سیستمعامل | چندسکویی |
| سکو | لینوکس، یونیکس، ویندوز، اواسده |
| تاثیر گرفته از | تیسیال، سی++، سی، جاوا، پرل |
| اجازهنامه | مجوز پیاچپی |
| وبگاه | www.php.net |
پیاچپی (به انگلیسی: PHP) که مخفف پیش پردازندهٔ فرامتن (به انگلیسی: Hypertext Preprocessor) میباشد، یکی از پر طرفدارترین زبانهای پردازهنویسی متن باز و رایگان است که بیشتر برای طراحی برنامههای سمت سرور در وبگاههای پویا مورد استفاده قرار میگیرد. پیاچپی در حال حاضر در بیش از ۲۴۴ میلیون وب سایت و ۲.۱ میلیون سرور وب نصب است.[۱] پیاچپی نرمافزار آزاد منتشر شده تحت مجوز پیاچپی است که بر روی اکثر سیستم عاملهای معروف مانند: لینوکس، یونیکس، ویندوز، اواسده و با اغلب کارگزارهای وب، قابل اجرا است. همچنین پیاچپی امکان استفاده از انواع مختلفی از پایگاههای دادهٔ بزرگ مانند: مایاسکیوال و اوراکل را فراهم میکند.[۲] وردپرس، مایبیبی،جوملا، مدیاویکی و فیسبوک از مشهورترین نرمافزارهای ایجاد شده با پیاچپی میباشند.
محتویات |
تاریخچه[ویرایش]
پیاچپی در آغاز جایگاه شخصی داشت. در ابتدای سال ۱۹۹۴ عموما مانند زبان برنامهنویسی سی به صورت باینری توسط برنامهنویسان دانمارکی/گرینلندی به نام رسموس لردورف نوشته شد. لردروف در اصل این ابزار را ایجاد کرد تا یک مجموعه کوچکی از پردازه (اسکریپت) را جایگزین کند. او سعی میکرد که صفحات شخصی را حفظ کند. این ابزار برای این استفاده میشد که وظایفی مانند نمایش دادن خلاصۀ تجربیات و حفظ کردن اینکه چقدر از این صفحه مورد استفاده قرار میگیرد را انجام دهد.
او این دو را با مفسرش ترکیب کرد تا پیاچپی/افآی را ایجاد کند چون بیشتر کاربرد داشت. پیاچپی/افآی شامل پیادهسازی برای زبان برنامه نویسی c بود و میتوانست با پایگاه داده ارتباط یابد. قابلیت ساخت ساده و پویا برای کاربردهای وب. لردروف پیاچپی را در ۱۹۹۵ رها کرد تا کد آنرا بهبود ببخشد و اشکالات آن را برطرف کند. این واگذاری به نسخۀ دوم پیاچپی منجر شد و هم اکنون استفاده میشود. پیاچپی شامل شبیهسازی و دستکاری کردن متغیرها با توانایی جاسازی HTML بود. ترکیب آن مانند پِرل اما محدودتر ٬سادهتر و پایدارتر بود. زیو سوراسکی و اندی گاتمنز دو توسعه دهنده در فناوری اطلاعات اسرائیل بودند که پارسر را در سال ۱۹۹۷ دوباره نوشتند و اساس پیاچپی ۳ را تشکیل دادند با تغییر دادن مجدد نام زبان به پیاچپی: پیش پردازنده مافوق متن.
گروه توسعه یافته رسما پیاچپی /اف آی ۲ را در نوامبر ۱۹۹۷ بعد از دو ماه تجربه و آزمایش منتشر کرد. پس از آن آزمایش عمومی پیاچپی ۳ آغاز شد و زبان رسمی در ژوئن ۱۹۹۸ تشکیل شد.سوراسکی و گاتمنز گروهی را برای باز نویسی پیاچپی تشکیل دادند و موتور زند (به انگلیسی: Zend Engine) را در ۱۹۹۹ تولید کردند. آنها همچنین تکنولوژی آن را در اسرائیل تأسیس کردند.
در۲۲ مه ۲۰۰۰ پیاچپی ۴ که توسط موتور زند روی کار آمده بود منتشر شد. در ۱۳ ژوئیه ۲۰۰۴ پیاچپی ۵ که توسط ماشین Zend2 نیرو گرفته بود منتشر شد. پیاچپی ۵ دارای ویژگیهایی مانند پشتیبانی از زبان شیٴ گرا (برای پایگاه داده) و وسعت بسیار زیاد در کاراییاش شده بود. پیاچپی که اخیرا توسط گروه پیاچپی منتشر شده نسخه ۴ آن است. در آگوست ۲۰۰۸ این نسخه به ۴٫۴٫۹ توسعه یافت. در سال ۲۰۰۸ بدنۀ نسخه استوا و ثابت پیاچپی ۵ در دست توسعه بود. پیاچپی ۶ نیز در کنار پیاچپی ۵ در دست توسعهاست. تغییرات عمده آن شامل از بین بردن متغیرهای رجیستری است.
تا کنون پیاچپی کاملاً از یونیکد یا رشتههای چند بایتی حمایت نکرده است. یونیکد در پیاچپی ۶ پشتیبانی خواهد شد. این نسخه در هر دو محیط ۳۲ و ۶۴ بیتی اجرا خواهد شد.
تاریخچه انتشار[ویرایش]
| Meaning | |
|---|---|
| قرمز | نشر قدیم. حمایت نشد |
| زرد | نشر قدیم. هنوز حمایت نشده |
| سبز | نشر جاری |
| آبی | نشر آینده |
۶٫۰
| نسخه مهم | نسخه مهم | تاریخ نشر | یادداشتها |
|---|---|---|---|
| ۱٫۰ | ۱٫۰٫۰ | ۱۹۹۵-۰۶-۰۸ | این اولین نام کاربردی پی اچ پی بود.
نامیده شد..(PHP Tools) Personal Home Page Tools رسما "PHP". |
| ۲٫۰ | ۲٫۰٫۰ | ۱۹۹۶-۰۴-۱۶ | توسط سریعترین و ساده ترین ابزار ایجاد شد. برای ایجاد کردن صفحات وب پویا pages. |
| ۳٫۰ | ۳٫۰٫۰ | ۱۹۹۸-۰۶-۰۶ | توسعه آن از یک نفر به چند نفر تغییر کرد. زیو سوراسکی و اندی گاتمنز دوباره اساس این نسخه را نوشتند. |
| ۴٫۰ | ۴٫۰٫۰ | ۲۰۰۰-۰۵-۲۲ | سیستم تجزیه/اجرا در دو مرحله تحت عنوان موتور زند اضافه شد.[۳] |
| ۴٫۱٫۰ | ۲۰۰۱-۱۲-۱۰ | ($_GET, $_POST, $_SESSION)
متغیرهای بسیار خوبی معرفی شدند. etc.)[۳] |
|
| ۴٫۲٫۰ | ۲۰۰۲-۰۴-۲۲متغیرهای بدون استفاده با پیش فرض.holes in applications.[۳] | ||
| ۴٫۳٫۰ | ۲۰۰۲-۱۲-۲۷ | علاوه بر CLI٬CGI نیز معرفی شد..[۳] | |
| ۴٫۴٫۰ | ۲۰۰۵-۰۷-۱۱ | صفحات مهمی برای اسکریپت phpsize و config-php اضافه شد..[۳] | |
| ۴٫۴٫۸ | ۲۰۰۸-۰۱-۰۳ | چند پیشرفت ایمنی. منتشر شدن پی اچ پی ۴..[۴] | |
| ۴٫۴٫۹ | ۲۰۰۸-۰۸-۰۷ | پیشرفت بیشتر و انتشار نسخه پی اچ پی ۴٫۴..[۵][۶] | |
| ۵٫۰ | ۵٫۰٫۰ | ۲۰۰۴-۰۷-۱۳ | ماشین ۲zend با امکان مدل شی گرایی..[۷] |
| ۵٫۲٫۰ | ۲۰۰۶-۱۱-۰۲ | گسترش فیلتر با پیش فرض.[۷] | |
| ۵٫۳٫۰ | ۲۰۰۹-۰۶-۳۰ | پشتیبانی از Namespace, Late Static Binding، برچسب jump و....[۷] | |
| ۶٫۰٫۰ | No date set |
پشتیبانی از یونیکد یامتغیرهای رجیستری. support[۸] |
کاربرد[ویرایش]
پی اچ پی یک زبان اسکریپتنویسی برای وب است. پی اچ پی عمدتا بر روی سرور وب اجرا میشود. پی اچ پی عمدتا مانند یک فیلتر عمل میکند، کد برنامه را به عنوان ورودی میگیرد و صفحات وب را به عنوان خروجی (غالبا از نوع اچ تی ام ال) ایجاد میکند. همچنین میتواند برای اسکریپت کردن خط فرمان استفاده شود. پی اچ پی میتواند بر روی صفحات وب و سیستمهای عامل و یا پایگاههای داده مستقر شود. همچنین میتواند به عنوان سیستم مدیریتی پایگاه داده استفاده شود. پی اچ پی رایگان بوده و گروه پی اچ پی منبع کاملی از کد آن را در اختیار کاربران قرار میدهد. همچنین میتوان از آن برای کاربردهای شخصی استفاده کرد. این زبان میتواند کد باینری را برای موتور زند تولید کند. از پی اچ پی عمدتا در طراحی وب استفاده میشود.
میزان بهینه سازی[ویرایش]
همزمان با اسکریپت کردن زبانها٬ساختار الگو گونه برای نمایش ترتیب حوادث PHP به طور طبیعی به صورت کد مرجع خوانا برای تولید سرورهای وب نگه داری میشود. بنابر این ساختار الگوگونه برای PHP در زمان اجرا توسط ماشین PHP کامپایل خواهد شد. کامپایل کردن در زمان اجرا دفعات اجرای فایل آغاز گر را افزایش میدهد. چون یک مرحله اضافه به زمان اجرا میافزاید. ساختار الگوگونه PHP میتواند قبل از زمان اجرا توسط مترجمهایی درست شبیه زبانهای برنامه نویسی همچون C ترجمه شود.(زبان برنامه سازی PHP برنامه دار است تا جائیکه برای تمدید کردن آن استفاده شود.) کد میتواند کیفیت کد کامپایل شده را با کم کردن اندازه آن و ایجاد کردن تغییراتی که بتواند زمان اجرا را کاهش دهد و کارایی را بهبود ببخشد بالا ببرد و بهینه نماید. نوع کامپایلر PHP آنچنان است که اغلب فرصت برای بهینه سازی کد آن وجود دارد. به طور مثال میتوان برای بهینه سازی کد بهینه ساز Zend را نام برد. شتابگر PHP میتواند سطح کارایی را با ذخیره کردن نوع کامپایل شدهای از ساختار PHP در حافظه تسهیم شده بالا ببرد تا از هزینههای تجزیه و کامپایل کد در زمان اجرا جلوگیری شود. ایمنی: میزان ناامنی نرمافزار نوشتاری PHP که توسط نرمافزارهای رایج دیگر در معرض آسیب پذیری است به این صورت میباشد: ۱۲ درصد در سال۲۰۰۳، ۲۰ در صد در سال ۲۰۰۴، ۲۸ در صد در سال ۲۰۰۵، ۴۳ در صد در سال ۲۰۰۶، ۳۶ در صد در سال۲۰۰۷، و ۳۳ در صد در بخشی از سال ۲۰۰۸، بیشتر از یک سوم آسیب پذیری نرمافزار PHP به تازگی صورت گرفته. اغلب آسیبها با پیروی نکردن از قوانین برنامه نویسی ایجاد میشود و این آسیبها مرتبط با نسخه قدیمی PHP است. یکی از مهمترین این نا امنیها متغیرهای رجیستری هستند که از سال ۲۰۰۲در PHP نسخه ۴٫۲ بدون استفاده شدهاند.
ترکیب[ویرایش]
یک برنامهٔ PHP میتواند قسمتی از یک برنامهٔ HTML باشد.PHP کد را بدون تعیین حدود کردن تجزیه میکند. هر چیزی خارج از این محدوده به طور مستقیم به خروجی فرستاده میشود و توسط PHP تعیین نمیشوند. حدود رایج و مشترک <? و php?> است که به ترتیب بسته کردن و باز کردن میباشد. علائم کوتاه میتواند برای شروع کد به کار روند: =?> یا ?> و علامتی که برای پایان کد به کار میرود:<? این علائم به طور رایج استفاده میشود. اما علائمی مانند <% و =% > یا %> کمتر مورد استفاده قرا میگیرند. به همین خاطر استفاده ازعلائم کوتاه و ASP کم شدهاست. هدف از اینها جدا کردن PHP و HTML میباشد. متغیرهایی که قبل از آنها علامت $ به کار میرود لازم نیست مشخص شوند. بر خلاف نامها و توابع کلاس نام متغیرها به کوچک و بزرگ بودن حروف حساس است.PHP در حالت زبان form free با خط جدید و فاصله سرو کار دارد(به جز در رشتهها) و جملهها با سمی کالن تمام میشوند.PHP دارای سه نوع روش برای توضیحات میباشد. از/* */ و // برای توضیحات استفاده میشود. همچنین از # برای توضیحات کوتاه استفاده میشود. PHP در واژگان مانند زبانهای سطح بالا همچون C است.if شرطی- حلقههای while و for و توابع بازگشتی شبیه به زبان C و ++C است.
شیوه کار برنامه[ویرایش]
یک برنامهٔ پیاچپی میتواند قسمتی از یک برنامهٔ اچتیامال (HTML) باشد. مثلاً در برنامهٔ زیر تنها
<?php echo 'Hello world!'; ?>
به زبان پیاچپی است و بقیهٔ برنامه به زبان HTML نوشته شدهاست. برای جداسازی برنامهٔ پیاچپی و برنامهٔ اچتیامال باید قسمت پیاچپی را بین php?> و <? قرار داد. لازم به ذکر است که بجای تگ آغاز که همانا php?> است، میتوان از حالت خلاصه شده آن که به صورت ?> است استفاده نمود، منتها این کار استاندارد نبوده و بستگی به تنظیمات هنگام نصب php دارد. بنابر این توصیه میشود که از همان حالت کامل استفاده شود.
<code> <pre> <html> <head> <title>Azmayesh</title> </head> <body> <?php echo 'Hello world!'; ?> </body> </html> </pre> </code>
با صدا زدن صفحهای با متن بالا از سرور بهوسیله مرورگر در صفحه '!Hello world' را میبینیم.
نوع داده[ویرایش]
PHP همه متغیرها را در یک محدوده مستقل ذخیره میکند. این محدوده به طور نمونه ۳۲ بیت اعداد علامتدار است. اعداد بدون علامت در حالتهای معینی به مقادیر علامتدار تبدیل میشوند: این رفتار در زبانهای برنامه نویسی متفاوت است. متغیرهای صحیح میتوانند به صورت دهدهی(مثبت یا منفی) ٬هشت هشتی و شانزده شانزدهی مشخص شوند.
اعداد واقعی نیز در محدوده معینی ذخیره میشوند. آنها میتوانند به دو صورت اعشاری و علمی استفاده شوند.PHP دارای نوع محلی به نام بولین میباشد که شبیه به بولین در زبان جاوا و ++C است. در نوع داده بولین مقدار غیر صفر به عنوان درست و مقدار صفر به عنوان نادرست استفاده میشود. همانطور که در پرل و ++C نیز همین طور است.
نوع داده null برای متغیرهایی که هیچ مقداری ندارند استفاده میشود. متغیرهایی با نوع مرجع به منابع خارجی اشاره میکنند. اینها نوعا توسط توابع ایجاد میشوند و تنها میتوانند با همان تابع مورد استفاده قرار گیرند. مانند پوشهها و عکسها و پایگاه داده.PHP آرایهها و رشتهها را هم حمایت میکند.
کتابخانه استانداردPHP(SPL) به منظور حل مسائل استاندارد و دسترسی به دادههای موثر و کلاسها به کار میرود.
۵٫۲ و قدیمی تر:
توابع بهترین توابع نیستند و تنها میتوانند با نامشان صدا زده شوند. توابع تعریف شده توسط کاربر میتوانند بیرون از نمونه اولیه ایجاد شوند. توابع میتوانند در درون بلوکها تعریف شوند. توابع فراخوانی شده باید از پرانتز استفاده کنند. به جز آرگومان zero توابع سازنده کلاس با اپراتور new فراخوانده میشوند. در اینجا پرانتزها اختیاری هستند. PHP توابع بی نام را که توسط دستور function_ creat ایجاد میشوند را هم پشتیبانی میکند. اگر چه درست نیستند چون توابع بی نام از اسم بر خوردار نیستند و توابع تنها میتوانند توسط نامشان صدا زده شوند. ۵٫۳ وجدیدتر:
PHP از توابع درجه اول و توابع بی نام حمایت میکند که توسط ساختار زیر پشتیبانی میشوند:
function getAdder($x) { return function ($y) use ($x) { return ($x + $y); }; }
در اینجا تابع()getAdder یک پارامتر x$ ایجاد میکند که آرگومان y$ اضافی را میگیرد و آنرا به صدا زننده بر میگرداند.
اشیا[ویرایش]
برنامه نویسی شی گرا به 4PHP اضافه شد. اشیا در5 PHP به طور کامل دوباره نوشته میشود. در نسخه قبلی PHP اشیا مانند تایپهای اولیه به کار برده میشوند. اشکال این روش این بود که وقتی یک متغیر تعریف میشود تمام اشیا کپی میشوند. در روش جدید اشیا با handle بازگشت داده میشوند نه با مقدار.5PHP متغیرهای عضو خصوصی و حفاظت شده تعریف میکند. همچنین یک روش استاندارد برای معرفی سازنده و مخرب همانند زبان برنامه سازی ++C تعریف میکند. interfraceهای خاصی وجود دارد که به اشیا اجازه میدهد بر روی زمان اجرا اثر بگذارد. اگر توسعه دهنده یک کپی از یک شی با استفاده از کلمه محفوظ clone ایجاد کند موتور زند آنرا بررسی خواهد کرد که آیا روشی برای آن تعریف شده یا نه. اگر نشده بود یک clone پیش فرض را صدا خواهد زد که ویژگیهای آن شی را کپی میکند. اگر تعریف شده بود برای ویژگیهای لازم اشیا ایجاد شده معتبر است. برای سادگی ماشین تابعی را تولید میکند که مشخصات شی مرجع را وارد میکند که برنامه نویس میتواند با یک مقدار مشابه شی مرجع آغاز به کار کند و تنها ویژگیهایی را که نیاز دارد تغییر دهد.
روش نصب پی اچ پی[ویرایش]
شما برای کار با پی اچ پی نیاز به یک سرور مجازی دارید که میتوانید از IIS یا Apache استفاده کنید که ما آپاچی را توصیه میکنیم. همچنین به یک پایگاه داده نیاز دارید که برای این کار mysql بهترین گزینهاست.
شما میتوانید با نصب Wampserver به راحتی همه این گزینهها را یکجا داشته باشید. Wampserver یک نرمافزار رایگان است که با نصب آپاچی، پی اپ پی، مای اسکیو ال و پی اچ پی مای ادمین شما را از نصب تک تک این برنامهها آسوده میکند. Wampserver را میتوانید از اینجا دانلود کنید.
آسانی[ویرایش]
به گفته بیشتر برنامه نویسان وب، پی اچ پی یک زبان تحت وب ساده به شمار میرود، زیرا نیاز به یادگیری هیچ پیش نیازی نیست، همچنین پی اچ پی، به زبانهای دیگری وابسته نیست. اغلب دستورات آن مشابه زبانهای محاورهای بوده و یادگیری آن سادهاست. از ساختارهای دستوری پیچیده اثری در HTML دیده نمیشود.[نیازمند منبع]
اشکالات [پی اچ پی][ویرایش]
پی اچ پی نیز مانند بسیاری از زبان های اسکریپت نویسی، مساله خوانایی کد را در درجه اول اهمیت قرار داده است. به این ترتیب اسکریپت های پی اچ پی در زمان اجرا کامپایل می شوند. این امر با افزودن یک مرحله اضافه به اجرای برنامه، سرعت اجرا را کاهش می دهد. با این حال، هم اکنون نرم افزارهایی به نام [بهینه ساز کد۷] وجود دارند که با کاهش اندازه و ایجاد تغییراتی در کد، می توانند زمان اجرا و کارایی برنامه را افزایش دهند.
جستارهای وابسته[ویرایش]
منابع[ویرایش]
- ↑ http://www.php.net/usage.php
- ↑ http://www.php.net/manual/en/faq.databases.php
- ↑ ۳٫۰ ۳٫۱ ۳٫۲ ۳٫۳ ۳٫۴ PHP: PHP 4 ChangeLog. . The PHP Group, 2008-01-03. Retrieved on 2008-02-22.
- ↑ PHP: PHP ۴٫۴٫۸ Release Announcement
- ↑ PHP: Downloads
- ↑ PHP: PHP ۴٫۴٫۹ Release Announcement
- ↑ ۷٫۰ ۷٫۱ ۷٫۲ PHP: PHP 5 ChangeLog. . The PHP Group, 2007-11-08. Retrieved on 2008-02-22.
- ↑ Personal homepage of Jeroen van der Meer
- Gilmore, W. Jason. Beginning PHP and MySQL 5: From Novice to Professional. Apress, 2006. ISBN 1-59059-552-1.
پیوند به بیرون[ویرایش]
| در ویکیانبار پروندههایی دربارهٔ پیاچپی موجود است. |
|
|||||||||||
|
||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||