ویژگی های php 8

ویژگی های جدید در PHP 8

از آن جایی که این ورژن، یک نسخه اساسی و بسیار مهم می باشد، باید انتظار تغییرات گسترده و ویژگی هایی جدیدی را در PHP 8 داشت. دانستن خصوصیات و مشخصات PHP 8 به شما کمک خواهد کرد تا به شکل راحت تری به این موضوع فکر کنید که این نسخه چگونه روی اپلیکیشن های شما اثر خواهد گذاشت و چه اقداماتی لازم است از سوی شما صورت بگیرد تا اطمینان حاصل شود که این ارتقا بدون مشکل و به بهترین و صحیح ترین شکل صورت می گیرد.با توجه به قابلیت ارتقای نسخه php در هاست، در این مقاله سعی کرده ایم تا برخی از اساسی ترین تغییرات این نسخه را مورد بررسی قرار داده و ببینیم چه ویژگی های جدیدی قرار است در ورژن PHP 8 به ما ارائه شود.

ویژگی هایی که در نسخه PHP 8 اضافه شده

str_contains

به طور کلی شما از strpos() استفاده می نمایید. همان طور که می دانید، strops() در میان انبار کاه، سوزنی را پیدا می کند که شما به دنبال آن هستید. در حقیقت، نخستین موقعیتی را که سوزن مورد نظر در آن مشاهده شده به شما نشان می دهد. اکنون، با نسخه جدید دیگر امکان بررسی این که آیا strpos() موفق بود سوزن را پیدا کند یا خیر وجود ندارد. در عوض، در صورتی که به شما پیام 0 را نشان دهد، آن گاه به صورت یک مقدار منفی یا false در نظر گرفته می شود. به زبان ساده تر، هنگامی که با مقدار 0 مواجه شدید، یعنی strpos() نتوانسته است سوزن مورد نظر شما را بیابد.

نمایش Boolean

به طور کلی، شما باید یک سری مقادیر شرطی مانند -“strpos($haystack, $needle) !== false.” بنویسید. مقدار false نشان دهنده این است که امکان پیدا کردن موقعیت string وجود نداشته است. این شیوه بسیار مستور و ناواضح است اگرچه چندان گیچ کننده نمی باشد. برای پیشگیری از چنین مشکلاتی، در نسخه PHP 8 از str_contains() استفاده می شود. وظیفه str_contains() این است که یک مقدار Boolean را به شما نشان دهد. این که آیا سوزن در انبار کاه بود یا خیر. نوشتن چنین کدی بسیار ساده تر و برای فردی که کد را کنترل می کند قابل فهم تر می باشد.

ویژگی های جدید و تغییرات PHP 8

ویژگی های جدید php 8

خصوصیات جدیدی به PHP 8 اضافه شده اند و همچنین، تغییراتی در آن مشاهده می شود. شاید بتوان گفت که بدون شک اصلی ترین این ویژگی های جدید، JIT compiler می باشد:

  • compiler JIT
  • اجرای LSP
  • خطا های حیاتی در متد های ناسازگار
  • Resource “Classes“
  • هم اکنون در نسخه جدید XML-RPC در PECL است
  • رفتار موکد
  • تغییرات Reflection

ما در این مقاله تنها به موارد اصلی این فهرست یعنی JIT compiler، ResourceClasses” و در نهایت تغییرات API Reflection می پردازیم.

قابلیت Just In Time Compiler

به سبب بهبود سرعت که پیش از انتشار PHP 7 صورت گرفت، قابلیت جدیدی به نام Just In Time (JIT) Compiler پدید آمد. این ویژگی در PHP 8 معرفی شد زیرا امکان بهبود بیشتر سرعت بدون استفاده از آن وجود نداشت. در حقیقت هدف از این قابلیت افزایش کارایی و عملکرد PHP می باشد. هنگام اجرا، کد های PHP به کد های بایتی ترجمه می شوند و از این کد های بایتی نیز برای اجرای مراحل گوناگون در برنامه استفاده می شود. در آخر PHP کد هایی که شما اجرا کردید را آنالیز و بررسی می کند. این همان معنای JIT می باشد. در ادامه، این ویژگی می تواند علاوه بر بهبود عملکرد کد هایی که اجرا کردید، تصمیماتی بی درنگ بگیرد. تنها استفاده این موضوع در برنامه های مبتنی بر وب نیست و افزون بر آن در برنامه هایی که به نیروی پردازش زیادی نیاز دارند فوق العاده کاربردی خواهد بود.

زمان اجرای تابع microtome

زمان کوتاه اجرای توابع در php 8

ما متوجه شدیم که تعدادی از کاربران در تلاش بودند تا این ویژگی جدید در PHP 8 را تحت آزمایش و بررسی قرار دهند و تفاوت هایی که ایجاد می کند را نشان بدهند. ما از نتایج آزمایشات این افراد استفاده کردیم تا ببنیم استفاده از تابع microtome() چقدر طول می کشد. در زیر نتیجه این آزمایش برای ورژن PHP 7.4.8 و نسخه جدید تر PHP 8 آمده است:

Burningship - 84.20269203186  Burningship - 15.272277116776
Mandlebrot – 21.552599906921  Mandlebrot -3.7528541088104
Tricorn – 32.685042858124  Tricorn -4.4957919120789

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

Resource “Classes”

  • Resource “Classes” به عنوان فهرستی از تغییرات در PHP 8 مشاهده خواهد شد و به عنوان یک جایگزین غیر قابل نمونه سازی برای گونه های منابع خاص خواهد بود. جایگزین های موجود به شرح زیر است:
  • CurlHandle - از این پس curl_init()، CurlHandle را بازگشت می دهد که به یک منبع Curl مربوط می شود.
  • سوکت / اطلاعات آدرس – با توجه به افزونه سوکت ها، مقدار تابع های socket_*() به شما یک سوکت تحویل می دهند. این درحالی است که تابع socket_adderss_info_lookup() به شما اطلاعات آدرس یا AddressInfo را پاسخ می دهد.
  • GdImage – این مورد بیانگر یک منبع GD می باشد که توسط تعداد زیادی از توابع imagecreateform*() بازیابی می شود.

علاوه بر آن، بسیار مهم است که بدانید این منابع توسط توابعی همچون curl_close() از بین نمی روند. بنابراین، باید با استفاده از تابع unset()، آدرس دهی را باز گردانده تا به یک متغیر نمونه تبدیل شود. شما این امکان را خواهید داشت که کلاس های مختلف را به عنوان typehint در توابع و متد های خود مشخص کنید.

افزایش امنیت و خوانایی کد های PHP 8

امنیت بالا در php 8 

کمی قبل تر، ما مجبور بودیم مقادیر را بدون تیپ بازگردانیم و یا معادلات را به صورت منابع رها کنیم و آن ها را از طریق حاشیه نویسی به اثبات برسانیم. اما در نسخه جدید، شما این اجازه را دارید که تیپ های صریح داشته باشید و این نه تنها کد شما را خوانا تر و قابل درک تر می کند، بلکه امنیت آن را نیز بالاتر می برد. بنابراین، در PHP 8 باید کد های خود را به روز رسانی کنید تا بتوانید به جای تابع های قدیمی که از کار افتاده اند، منابع را به کمک unset() از بین ببرید. این مسئله به صورت عادی از طریق جست و جو و جایگزینی امکان پذیر می باشد.

تغییرات Reflection API

یک تغییر جزئی دیگر که می تواند نقش بسیار مهم و حیاتی در PHP 8 داشته باشد مربوط به Reflection API می باشد. هنگامی که از سیستم مقادیر استفاده می کند، می توانید به راحتی این مقادیر را از طریق Reflection API یا هر گروه Reflection دیگری به دست آورید. با اضافه شدن گروه های ترکیبی و متحد، تکنیک های پارامتر های Reflection، تابع getClass()، تابع isCallable() و تابع isArray اگرچه همچنان قابل استفاده می باشند اما دیگر کاربرد سابق را نداشته و بهتر است از آن ها استفاده نشود. این موضوع به این سبب است که استفاده از تابع getType() بسیار بهتر و کاربردی تر است و با استفاده از آن شما یک فهرست کامل از تیپ هایی که یک پارامتر مشخص را کامل می کند به دست می آورید.

جمع بندی و نکات نهایی

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

  • با خدمات ابری پارس آشنا شوید

    اولین ارائه‌دهنده خدمات رایانش ابری در ایران هستیم

    ابر سرور

    ابر سرور

    با ابرسرورها می‌توانید سرور با سیستم‌عامل دلخواه خود را در چند دقیقه انتخاب و نصب نموده و آزادانه منابع سخت‌افزاری که در نظر دارید را، در زمان دلخواه به سرور خود بیافزایید و تنها برای منابع مورد نیاز سرور، هزینه پرداخت نمایید.

    هایبرید سرور

    هایبرید سرور

    هایبرید سرورها نسل جدید و پیشرفته سرورهای اختصاصی هستند که با پنل قدرتمند ابری ارائه می‌شوند. در هایبرید سرورها علاوه بر ارائه سخت‌افزار مستقل، امکانات سخت‌افزاری ویژه‌ای نیز در نظر گرفته شده است.

    ماکرو سرور

    ماکرو سرور

    ماکرو سرور محصولی ویژه است که برای دریافت بالاترین کیفیت سخت‌افزاری طراحی شده است. در شرایطی که نیازمند سخت‌افزاری قدرتمند برای سرور خود هستید، ماکرو سرورها منابع سخت‌افزاری مورد نیاز را برای شما فراهم می‌کنند.

    هاست ابری

    هاست ابری

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

    هاست دانلود

    هاست دانلود

    سیاری از مدیران سایت‌های دانلود و یا سایت‌هایی که با ترافیک بالایی برای به اشتراک‌گذاری فایل‌های خود روبرو هستند، عمدتا با مشکلاتی مانند هزینه‌های گزاف زیرساختی و یا مصرف بالای منابع سخت‌افزاری روبرو می‌شوند. از همین رو پارس‌پک با معرفی فضای هاست دانلود برای این دسته از کاربران، محصول مناسبی را پیش‌بینی نموده است.

    مطالعه این مطالب نیز پیشنهاد می‌شود

    مقالات و نظرات اعضای تیم ما درباره تکنولوژی، روزهای کاری و چیزای دیگر…

    گوگل سرچ کنسول چیست؟

    گوگل سرچ کنسول یکی از قدرتمندترین و رایگان ترین ابزارهای سئویی در حال حاضر می‌باشد. سرچ کنسول (Google Webmaster Tools سابق) یک سرویس رایگان از گوگل هس...

  • کلیه حقوق برای شرکت دانش بنیان پارس پک محفوظ می باشد.

    Copyright © 2021 Pars Parva System Ltd. ParsPack Cloud Computing Technology ® , All Rights Reserved.