سفارش تبلیغ
صبا ویژن

بررسی php ورژن 8 | بررسی آخرین ورژن و نسخه ی php

 


با نشر جدیدترین ورژن PHP یعنی php 8.0 با خصوصیت‌ها و بروزرسانی‌های جدیدی رو به رو هستیم. درین نوشته‌علمی، خصوصیت‌های PHP 8.0، بروزرسانی و تغییرات اجرا گردیده در‌این ورژن را ارزیابی خوا‌هیم کرد. ولی یک کدام از مهم ترین تغییرات ایفا گردیده درین ورژن، در لحاظ دریافت کردن کامپایلر JIT برای PHP میباشد که میتوانید درپی این نوشته‌ی‌علمی بیشتر با آن آشنا گردید.

در نوشته‌علمی قبلی درمورد PHP 7.4 و خصوصیت ‌های آن و موردها تصحیح گردیده سخن شد و تا حدودی آیتم چک قرار گرفت و دیدیم که به طور ملموسی از نظر سرعت و کارایی نسبت به ورژن های دیرین‌خیس مانند PHP 5 پیشرفته میباشد.


ولی زمانی حرف از ورژن بعدی آن یعنی PHP 8.0 می‌گردد، انتظارات یوزرها ارتقاء مییابد، به دلیل آنکه با ارائه آیتم real-time که یکی‌از ازمهم‌ترین خصوصیت‌های PHP8.0 است، به اشخاص این قابلیت و امکان را می دهد تا در یک پروژه، نیازی به استعمال از تعدادی گویش اپلیکیشن‌نویسی متفاوت نداشته باشند.

با دقت به اینکه امروزه سیستم‌های real-time به صورت وسیع‌ای کاربرد یافته‌اند، کانال وب نیز در اکنون میل به‌این خصوصیت میباشد و یوزرها نیز تصمیم به داشتن محتوای هر چه سریع‌خیس دارا‌هستند. چند گویش دیگر امکاناتی جهت دستیابی به‌این خصوصیت دارا هستند، مثلا، جاوا اسکریپت از Node.js و پایتون از Tornado به کارگیری می‌نمایند اما php که تا به امروز از این خصوصیت مستثنی بود، در ورژن پی اچ پی 8 در این مورد تکامل خواهد یافت و ازکامپایلر JIT (Just-in-Time) به کارگیری خواهد نمود.

با توضیح مختصری در ارتباط PHP و نظارت بعضا از خصوصیت‌های PHP 8.0 و ورژن‌های گذشته آن استارت می کنیم.

 

 

خصوصیت‌های PHP 8.0

 

Hypertext preprocessor تحت عنوان یک پروژه OpenSource کوچک آغاز شد که در غایت تکامل یافت و عموم بخش اعظمی فهمیدند که چقدر اثر گذار است. در سال 1994 یک نرم افزار‌نویس کانادایی-دانمارکی، ورژن ابتدایی PHP را منتشر نمود. PHP جاسازی گردیده در HTML، لهجه متنی سمت سرور میباشد که فعلا بسیار دارای شهرت است.

زبانی که برای رئیس متن‌های داینامیک، ردیابی session، مقر‌های داده و وب سایت‌های e-commerce به کار گیری می شود. این لهجه با دیتابیس‌های دارای شهرت اکثری برای مثال MySQL، Oracle، PostgreSQL، Sybase، Microsoft SQL Server و Informix مخلوط گردیده و تکامل یافته میباشد.

PHP مخصوصا وقتی که تحت عنوان یک ماژول آپاچی برروی Unix کامپایل می گردد، در انجام خوشایند میباشد و هنگامی که سرور MSQL آغاز می‌کند، کوئری‌های بسیار غامض‌ای با حاصل بزرگی در حین record –setting تهیه میگردد. علاوه براین، این لهجه از تعداد بی‌شماری پروتکل مهم مانند IMAP، POP3 و LDAP پشتیبانی می‌کند.
تحت عنوان یکی‌از دیگر از خصوصیت‌های 8?0 PHP می‌قدرت اعلام‌کرد یک لهجه بسیار سخاوتمند میباشد و syntax آن مانند گویش C است. هم اینگونه خیر فقط تحت عنوان نرم افزار نویس‌های توسعه یافته، عمل با این لهجه شل میباشد بلکه جدید امور نیز به راحتی می توانند با آن عمل نمایند و هنوز لیست جامعی از خصوصیت‌های خلاقانه خویش را برای برنامه نویس ها رشته‌ای جهت گسترش محافظت کرده است.

 

 

JIT در‌پی اچ پی 8

 

برای فهم و شعور وجود JIT در PHP در آغاز مختصری توضیح نیاز میباشد. کامپایل JIT، شایسته ترین خط مش جهت باصرفه‌سازی اجرای کدهاست. قابل ذکر میباشد که‌این طرز دارای شهرت، پیش‌خیس به وسیله JVM (Java Virtual Machine) مستعمل‌میباشد.

گسترش و رویش PHP به وسیله JIT بر روی بهبود آن تمرکز داشته که منجر ارتقا بهبود قابل توجهی در معیارهای آن گردیده، البته گسترش‌های کوچک در اپ‌هایی مثل جوملا و وردپرس اثبات شده است. طبق شغل های انجام یافته برای PHP 7.0 و سفارش توسعه و گسترش‌های اساسی آن، سعی PHP 7.1 و PHP 7.2کم گردیده، چون مجددا برروی پیاده سازی JIT اقداماتی انجام یافته میباشد.

 

 

JIT چه می باشد؟

 

در محاسبات یک خط مش اجرای کد کامپیوتر که در کامپایل مجال جاری ساختن سرگرم میباشد JIT می باشد. که اسم دیگر آن ترجمه داینامیک یا این که کامپایل run-time میباشد که مشمول source code یا این که ترجمه Bytecode به کد ماشین هست. کامپایلر JIT سیستمی را پیاده‌سازی نموده‌میباشد که به طور متناوب کدی که اعمال میشود را پیاده سازی می‌کند.

 

 

چرا JIT در ورژن PHP 8.0 معرفی شد؟

 

HHVM ماشین مجازی و موتور اجرایی کدهای PHP نیز از JIT به کار گیری می‌کند. حتی‌د‌ر مقایسه با PHP engine اساسی که در PHP 7.0 ارائه شد سریع‌خیس و بهتر میباشد. به جهت آوازه عظیم و تقاضای زیاد PHP ، سرتاسر عالم مجددا خواهان JIT engine میباشند.

Zend و PHP مهیا استعمال از JIT بوده و در نشر PHP8.0 در حیث گرفته گردد. همانگونه که کد مندرج در PHP 5 ، سوای هیچ سیرتکامل تفییری، در PHP 7 نیز قابل انجام میباشد، تحت عنوان یک فیض، کارایی دو برابر می گردد.
این گزینه به جهت تغییرات در engine وجود ندارد بلکه استدلال باصرفه‌سازی‌های دیگری در PHP 7.0 میباشد. از این رو می اقتدار به عهده گرفت، به روز در engine همت در لایه‌های گوناگون را بهبود و توسعه و گسترش خواهد اعطا کرد. استاندارد HHVM، سطح تلاش را به راحتی دوبرابر خواهد نمود یا این که می‌اقتدار ذکر کرد هنگامی که کدی در php 7.0 نوشته می شود درنسخه PHP 8.0 نیز جاری ساختن شود و منجر نصف شدن فرصت جاری ساختن می شود.

به عبارت دیگر، برای جاری ساختن کامپایل در طول اجرای اپلیکیشن یا این که runtime ، JIT یک کدام از شایسته ترین خط مش‌ها میباشد و هیچ سیرتکامل سوالی راجع به کامپایل پیش از انجام نیست، به ویژه اینکه فرصت متعددی مستعمل باشد.
از آنجایی که پیاده‌سازی‌های کادر ورک .NET و JAVA متعلق به JIT هستند، برای PHP نیز مشکلی نیست تا از کامپایل داینامیک منفعت پیروزشود و همت خویش را به سطح های فراتر ارتقاء دهد. به کار گیری از JIT منجر می گردد تا PHP نادر‌خیس مستعد overflow و ایرادات مرتبط با رئیس یاد گردد و به صورت آحاد مشکلاتی که مرتبط با اپلیکیشن نویسی زیر لهجه C هست از فی مابین خواهد رفت.

 

 

اپلیکیشن‌های PHP چه طور کامپایل میشوند؟

 

در PHP یک ماشین مجازی با اسم Zend VM وجود دارااست. اسکریپت‌های قابل قرائت به وسیله بشر به ساختارهایی با اسم “OpCodes” که برای ماشین مجازی نیز قابل درک میباشد، کامپایل و ترجمه می گردند. ساختارهای کامپایل گردیده، OpCodes، برای ترجمه به کد ماشین درمقایسه با کد اساسی PHP سریع‌خیس هستند و ادله آن این میباشد که آنان کدهای سطح ذیل یا این که اصطلاحا low-level می باشند. این مرحله از جاری ساختن در طی کامپایل شناخته می گردد و این ساختارهای کامپایل گردیده با اسم مستعار OpCodes، بوسیله Zend VM درمرحله runtime اعمال میگردند.

در شکل نیاز به اجرا کامپایل، JIT تحت عنوان یک قسمت غیر وابسته از OPcache و extension ای برای cache ساختار OpCodes جاری ساختن میشود. به علاوه JIT ساختارهای ساخت گردیده را برای Zend VM تحت عنوان یک واسط میانی در PHP گزینه کار قرار میدهد. همینطور در سوی میزبانی کردن کد، تحت عنوان یک CPU (ونه یک Zend VM) ، کد ماشین متعلق به معماری را ساخت می‌کند.

 

 

تاریخ نشر پی اچ پی 8؟

 

ورژن PHP 8.0 در تاریخ 26 نوامبر 2020 متساوی 6 آذر ماه 1399 منتشر شد.

 

 

بروزرسانی‌های php 8.0

 

به تازگی گزارش شده است که PHP 7.4 پلاگین‌های قابل توجهی را داشته میباشد. در حالی که بروزرسانی به PHP 8.0 یار و همدم با JIT که جانشین آخرین PHP7.4 هست مشمول مفاد ذیل میباشد:

خصوصیت preload که به طور قابل مراعات‌ای قادر است کوشش PHP برروی اینترنت سرورها را بوسیله preloading کلاس‌ها و توابع تا‌وقتی‌که اینترنت سرور فعال میباشد بهبود ببخشد تا از کامپایل مجدد یا این که نظارت این که آیا فولدر source شناسایی گردیده‌است یا این که نه بپرهیزد. براین اساس قادر است 30 الی 50 درصد سرعت را در امتحان اول ارتقا دهد.
گسترش‌های همت دیگرPHP بیرون از اسکوپ preloading حادثه می‌ افتد.
FFI extention مربوط به PHP برای واسط سعی فرنگی پس از این که تشکیل داد آن برایPHP 7.3 به نقطه پایان نرسید اضافه شده است تا اذن دهد کدهای PHP توابع و دیتاهای محلی مشخص و معلوم گردیده در لهجه نرم‌افزار نویسی C را فراخوانی کند. از این رو برای تولید تجهیزات تازه این گویش نرم افزار نویسی، PHP FFI extension در PHP 7.4 درنظر دریافت شد.
خدمت سیستم FPM لهجه، پاره ای سخت شده است.
پشتیبانی PHP OpenSSL stream، پشتیبانی از TLS 1.3 و یک‌سری تغییرات دیگر انجام یافته‌میباشد.
Hash extension مربوط به PHP بخش جامعی از گویش میباشد و نمی‌تواند به طور زمان بر غیرفعال باشد.

 


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

 

 

bitly.com:

https://bit.ly/3vVquGf

tinyurl.com:

https://tinyurl.com/46kh5xwx

yon.ir:

httsp://yun.ir/mux837

1da.ir:

https://1da.ir/iDLJYu4D

b2n.ir:

https://b2n.ir/y00244