استارت‌آپ و کارآفرینی

قابلیت های جدید در PHP7

در اواخر سال ۲۰۱۵ شاهد انتشار نسخه ۷ از زبان PHP خواهیم بود. بعد از نسخه ۵٫۶، اگر قصد به روزرسانی PHP را داشته باشیم باید به PHP7 مهاجرت کنیم. حالا PHP6 کجاست، احتمالا باد آن را برده است …

اما واقعیت امر اینست که در سال ۲۰۰۵، تلاش‌هایی برای توسعه نسخه جدید آغاز شد. این نسخه تحت نام PHP6 کار توسعه خود را آغاز کرد. در حین کار بدلیل مشکلاتی که در اجرای یونیکد در PHP بوجود آمد در سال ۲۰۱۰ توسعه آن متوقف شد. اما اینکه چرا نام ورژن جدید، PHP7 شد به این دلیل است که منابع و کتاب‌های زیادی برای آن ورژن متوقف‌شده یعنی PHP6 منتشر شد. این نگرانی وجود داشت که اگر ورژن جدید را همان PHP6 بگذارند ممکن است تداخلی در داکیومنت‌ها و کتاب‌های ریفرنسِ ورژن کار شده در سال ۲۰۰۵ ایجاد بشود. به همین دلیل یک RFC برای انتخاب نام جدید PHP در ورژن جدید آینده ایجاد شد. که در نهایت PHP7 انتخاب شد.

 

قبل از معرفی قابلیت های ایجاد شده در PHP7 لازم است چند نکته درباره تغییرات بوجود آمده بیان شود:

۱- ترتیب آرگومان‌های توابع در نسخه جدید تغییری نمی‌کند.

۲- توابع به اشیاء اسکالر ( ()objects ->methods ) تبدیل نمی‌شوند و مطابق قبل خواهند بود.

۳- دستور goto که در php 5.3 اضافه شده است سرجای خود می‌ماند!

مهم‌ترین قابلیت‌های جدید php7

۱- اعلان گروهی use

use yii\web\Controller;
use yii\web\NotFoundHttpException;


use yii\web\{
	Controller,
	NotFoundHttpException,
};

 

۲- اپراتورهای جدید ?? و <=>

$username = isset($_GET['user']) ? $_GET['user'] : 'guest';
$username = $_GET['user'] ?? 'guest';


$compare = ($a < $b) ? -1 : ($a > $b ? 1 : 0);
$compare = $a <=> $b;

 

۳- امکان کچ کردن آنچه که باعث خطای مهلک می‌شود.

try {
	hive();
} catch (EngineException $e){
	echo 'A Fatal Error caught';
}

 

۴- وصل کردن توابع بدون اسم به یک آبجکت در runtime

class Foo{ public $bar;}
$foo = new Foo();
$foo->bar = 2;

$foobar = function($param) {echo $this->bar + $param;};
$foobar->call($foo, 4); /* 6 */

 

۵- همانند زبان‌های متداول مثل C می‌توانید برای توابع نوع مقدار بازگشتی تعریف کنید.

function hive(): int{
	return [];
}
hive(); /* Fatal Error: Return value of hive() must be of the type integer, array returned

نکته: PHP اگر امکانش باشد داده خروجی را به نوعی که شما برای تابع تعریف کرده‌اید تبدیل می‌کند، البته اگر بشود.

 

۶- تعریف نوع داده‌های ورودی در توابع

function hive(int $number, string $text, boolean $display)

 

۷- تعریف کلاسِ بدون اسم همانند توابع بدون اسم

new class() {}

 

در نهایت کامپایلر PHP7 کاملا بازنویسی شده و در قسمت مدیریت مموری هم بیشتر سعی شده با stack کار بشود تا heap، که طبیعتا سرعت پردازش سریع‌تر خواهد شد.

در نهایت تست انجام شده برای آشکار ساختن تغییرات ساختار داخلی PHP7 انجام شده که در تصاویر زیر قابل مشاهده است:

php7-is-coming-64-638php7-is-coming-65-638

 

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

 

منابع: + +

17 نظرات
  1. Griffin می گوید

    سلام من میخواستم این تابستون شروع کنم به یادگیری php الان با توجه به اومدن نسخه جدید به نظر شما موکولش کنم به بعد؟

    1. علی ذوقی می گوید

      سلام
      ارائه نسخه جدید منافاتی با یادگیری php5 نداره
      تغییرات نسخه جدید خیلی عمده نیست
      سعی شده به روزرسانی به نسخه جدید با کمترین تغییر انجام بشه

      1. Griffin می گوید

        ممنون لطف کردید

  2. محسن می گوید

    خدا قوت مهندس.

  3. Aref Sedaghat می گوید

    سلام به نظرتون برای یه php کار نسبتا ماهر بازار کار مناسب وجود داره؟ (با توجه به کثرت برنامه نویسان php)

    1. علی ذوقی می گوید

      سلام
      کلا در هر زبانی شخص بتونه به مهارت نسبی برسه کار هست.
      بله بازار کار کلا برای برنامه نویس ها خوب هست.
      اگر php کار، فریمورک های قدرتمند رو مسط باشه قطعا به کار مناسب می تونه برسه…

  4. رسول می گوید

    سلام خدمت شما
    راستش من بین asp.net و php ماندم تا قبل asp.net کار میکردم راستش دیگه خسته شدم از لایسنس و کرک کردن دلیل دومم اینکه چون تویه شهرستان هستم به خاطر گرانی هاست بازار اون کمه برای همین چند وقتی که درمورد php مطالعه میکنم و شروع یادگیری اون مشکلی هم نداشتم چون خیلی راحت است.

    ولی درمورد بازار کار اون یکم شک دارم
    راستش با سورس باز بودن اون میشه برنامه های تحت وب مثل مدیریت مدرسه و اتوماسیون اداری یا نرم افزارهای انبارداری ساده تحت وب نوشت یعنی استقبال میشه میتونم مشتری پیدا کنم یا برنامه های ساده پردازش تصویر که قبلا میتونستم با #c انجام بدم رو میتونم با php انجام بدم یک مقاله داخل سایت خودتون هم دیدم درمورد پردازش تصویر با php از نظر امنیت به مشکل بر نمی خورم یا محدودیت دارم ممنون میشم پاسخ بدین با تشکر از شما.

    1. علی ذوقی می گوید

      سلام بزرگوار
      اولا در رابطه با اینکه php یا asp طبیعتا دلیل اصلی بنده برای انتخاب phpاوپن سورس بودنشه.. به کرک کردن نرم افزار اصلا اعتقاد ندارم

      اما از جهت برنامه نویسی وب طبیعتا phpخودش رو خیلی وقته ثابت کرده هم از جهت قابلیت هم بروزرسانی مداوم

      توی asp شاید خیلی کارها رو لازم نباشه برنامه نویس انجام بده با یه کامپوننت ،براحتی کارهای پیچیده رو انجام میدین ولی توی phpباید همون کارها رو خودتون انجام بدین (البته با استفاده از فریمورک ها این مساله تا حدی برطرف شده )

      در مورد پردازش تصویر و اینطور کارها طبیعتا c# قوی تره در php هم میشه کارهایی کرد اما روی این قسمت phpحساب زیادی باز نکنید

      ازلحاظ امنیت هم، خیلی نکات امنیتی بستگی به کدنویس داره و اگر از فریمورکهای خوب و بروز موجود استفاده کنید مشکلی نخواهید داشت

      از جهت هاست هم که گفتید بله درسته .. برای شروع کار با php هم حتما توصیه میشه در لینوکس کدنویسی انجام بشه

      امیدوارم مفید فایده بوده باشه عرائضم

  5. رسول می گوید

    خیلی ممنون از شما بابت پاسخ خوب و کاملی که دادیم به خیلی از جواب هایم رسیدم
    فقط یک سوال دیگه بابت اون قسمت های پردازش تصویر که گفتین ضعف هایی داره و برای برنامه نویسی حرفه ایی تر میتونم این قابلیت ها رو با ++c برای php اکستنشن بسازم و به فریمورک اختصاصی خودم اضافه کنم یعنی محدودیت ندارم. با تشکر از شما

    1. علی ذوقی می گوید

      خداروشکر
      خواهش میکنم
      بله میتونید
      البته نمیدونم دقیقا چه کاری میخواین در بخش پردازش تصویر انجام بدین، شاید نیاز پیدا نکنید ولی در صورت نیاز بله میتونید اکستنشن نویسی کنید

      البته این نکته رو بگم که اکستنشن نویسی برای php نیاز به سرور اختصاصی یا سرور مجازی اختصاصی داره برای استفاده
      در هاستهای اشتراکی نمیتونید از اکستنشن خودتون استفاده کنید

      1. رسول می گوید

        ممنون خیلی جواب های شما به من کمک کرد راستش تا قبل از این هرجا این بحث میشد جواب خوبی نمیگرفتم و همیشه فکر میکردم php فقط یک زبان برای طراحی سایت رایگان هست و کاربرد دیگه نداره ولی الان دیگه نظرم عوض شد. ممنون از شما

        1. علی ذوقی می گوید

          خداروشکر
          ان شاءالله موفق باشید

  6. aliakbar می گوید

    با سلام
    برای شروع به یادگیری php چه کتابی را توصیه می کنید؟ کتاب انگلیسی یا هر چیز دیگر را لطف کنید معرفی کنید

    1. علی ذوقی می گوید

      سلام بزرگوار
      یکی از بهترین و استاندارد ترین منابع سایت w3schools.com هست.
      خیلی خوب و مرحله به مرحله با این زبان آشناتون میکنه.
      فکر میکنم برای ورود به PHP بهترین گزینه براتون باشه.

  7. […] بازگشتی برای توابع و خیلی موارد دیگر که به اجمال در + و ++ و +++ معرفی شده […]

  8. امیر می گوید

    سلام ممنون از پست تون!
    میخاستم بپرسم اگه من الان php 5 رو یاد بگیرم بعد تغییرات از ۵ به ۷ زیاد خواهد بود یا با جستجو در نت و خوندن مقاله ها میشه برطرفش کرد؟

    1. علی ذوقی می گوید

      سلام بزرگوار
      تغییرات آنچنان زیاد نیست. بهتر اینه آشنایی اتون رو با ورژن پنج شروع کنید.

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.