مرا اسکن کن!

امکانات جدید php 7

امکانات جدید php 7



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

یادگیری این زبان بسیار آسان است. یکی از برتری های php در مقابل دیگر زبان ها داشتن انبوهی از توابعی است که باعث می شوند چند صد خط کد دیگر زبان ها در php به چند خط تقلیل یابد. ولی اگر از تعاریف بگذریم همه ما می دانیم که این زبان در چند سال اخیر و به جرات می توان گفت در یک دهه ی اخیر دچار یک فریز اساسی شده بود و نسخه هایی که ارائه می داد چندان دردی را دوا نمی کردند. اما اواخر سال ۲۰۱۵ توسعه دهندگان این زبان با معرفی نسخه ۷ یک انقلاب performance به پا کردند. با ما باشید تا با تمامی تغییراتی که در این نسخه رخ داده است آشنا شوید.

 

در PHP 7 شاهد عملگر جدید <=> خواهیم بود .از این عملگر جدید می توان برای استفاده همزمان از ترکیب های مختلف بهره برد مخصوصا وقتی با مرتب سازی (Sorting) سرو کار دارید.

 

 PHP 7 به توسعه دهندگان اجازه می دهد نوع داده برگشتی از توابع را تعیین کنند — شبیه به نوع آرگومنت های توابع — به علاوه نوع آرگومنت ها و نوع مقدار برگشتی حالا از نوع داده های جدیدی پشتیبانی می کنند که به توسعه دهندگان کمک می کند دقیقا بدانند داده strings, floats, ints یا bools را باید از آرگومنت یا مقدار برگشتی انتظار داشته باشند .

  PHP 7 بر پایه پروژه PHPNG  یا (PHP Next-Gen)  بنا شده است که بدست  Zend برای بالا بردن سرعت اجرای برنامه های php  بکار  می رود .

بهبود سرعت در این نسخه فوق العاده است ! این بهبود بین ۲۵% تا ۷۰% در دنیای واقعی قابل مشاهده است و فقط کافیست نسخه php  را آپگرید کنید ، بدون تغییر دادن حتی یک خط از کد  !

از زمانی که پروژه PHPNG متن باز شد و با PHP 7 ترکیب گردید ، کارایی آن بیش از دو برابر شده است و باز هم در حال افزایش این سرعت هستند.

مطمئناً تمام سرورها باید به PHP 7 در اولین زمان ممکن سوییچ کنند. دلیل آن هم خیلی واضح است. شما حتی بدون تغییر دادن یک خط از کدهایتان میتوانید کارایی سرور را در پاسخ به درخواستها تا نزدیک به دو برابر افزایش دهید. در بعضی از تستهای (Benchmark)  انجام شده این افزایش حتی از کارایی HHVM هم فراتر رفته است.

این افزایش کارایی مدیون Zend Engine جدید موسوم به PHP Next-Gen یا PHPNG است.

در ضمن قبل از اینکه نسخه PHP سرورتان را آپگرید کنید، به این نکته توجه کنید که ممکن است بعضی از توابع یا ویژگیها در نسخههای جدیدتر، پشتیبانی نشوند و استفاده از آنها موجب بروز خطا در برنامه شما خواهد شد.

 

از همه مهمتر کارایی (performance)

کارایی یا پرفورمنس بدون شک بزرگترین دلیلی است که شما را مجبور خواهد کرد برنامه تان را به آخرین نسخه پایدار php ارتقا دهید. هسته بازنویسی شده با phpng RFC نسخه ۷ را حتی سریعتر از HHVM کرده است. بنچ مارک های رسمی php گویای این هستند که نسخه ۷ تقریبا ۲ برابر آخرین نسخه پایدار قبل از آن یعنی ۵٫۶ کارایی خواهد داشت.

 

رسیدگی بهتر به خطاهای قاتل

رسیدگی و مدیریت خطاهای fatal و catchable fatal در php هیچ وقت برای توسعه دهندگان کار آسانی نبوده است. اما در نسخه جدید با استفاده از Engine Exceptions برنامه نویس می تواند این خطاها را به exception تبدیل کند.

 

 

set_error_handler(function ($code, $message) {
   echo "ERROR $code: " . $message . "\n\n";
});
 
function a(ArrayObject $b){
   return $b;
}
 
a("test");
 
echo "Hello World";

 

try {
  call_method(null)// OOPS!
}catch(EngineException $e) {
  echo "Exception: {$e->getMessage()}\n";
}

 

یک پاکسازی اساسی

در این نسخه تعداد زیادی از توابع و syntax های deprecate شده حذف شده اند. شاید برخی از برنامه نویسان بنا به عادت در اپلیکیشن های خود از توابعی استفاده کرده اند که php حتی در نسخه های قبل نیز اعلام کرده بود که بزودی آنها را حذف خواهد کرد. خوشبختانه ide های هوشمندی چون phpstorm همیشه در زمان استفاده از چنین توابعی به ما هشدار می دادند و اگر به این هشدار ها گوش فرا داده باشیم مشکلی با بروزرسانی سرور به نسخه ۷ نخواهیم داشت ولی مسلماً برخی از نرم افزارهای قدیمی که مدتی است نسخه جدیدتری ارائه نداده اند مشکلات جدی ای با این نسخه خواهند داشت. البته این نرم افزار ها حتی با نسخه های قبلی php هم سازگار نبودند. به عنوان مثال اگر از نرم افزار مدیریت محتوای جوملا استفاده می کنید و پلاگین های رایگان زیادی بر روی آن نصب کرده اید بهتر است قید ارتقا به نسخه جدید را بزنید و یا به یک cms بهتری مهاجرت کنید که با استاندارد های جدیدتری توسعه می یابد.

 

توابع ereg

تمام توابعی که با ereg آغاز می شوند در این نسخه با یک اکستنشن PCRE بهمراه چندین قابلیت جدید جایگزین شده اند (preg).

توابع mysql 

تمامی توابع متعلق به اکستنشن mysql در این نسخه بصورت کامل با mysql جایگزین شده اند. در نتیجه کافی است فقط کلمه آغازین mysql در این توابع را با mysqli جایگزین کنید.

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

Uniform Variable Syntax

این راه حلی برای حل تناقضات استفاده از روش variable-variable expressions می باشد. برای درک بهتر به نمونه کد زیر دقت کنید:

PHP

class Person
{
   public $name = 'Erika';
   public $job = 'Developer Advocate';
}
 
$person = new Person();
$property = [ 'first' => 'name', 'second' => 'info' ];
echo "\nMy name is " . $person->$property['first'] . "\n\n";

 

قابلیت ها و ویژگی های جدید در PHP 7

حال به مرحله هیجان انگیر رسیدیم. اجازه دهید در مورد ویژگی های جدیدی که پس از ارتقا به php 7 در دسترس خواهند بود صحبت کنیم:

اپراتورهای جدید

php در نسخه ۷ خود ۲ اپراتور جدید و پرکاربردی را معرفی کرد: spaceship و  null coalesce operator.

اپراتور spaceship (<=>) با عنوان عملگر مقایسه ترکیب یک اپراتور شناخته شده ای در بسیاری از زبان هاست و هم اکنون به php نیز اضافه شده است.

مثال:

PHP

1
2
3
4
5
//in php 5.6
($a < $b) ? -1 : (($a > $b) ? 1 : 0)
 
//in php 7
$a <=> $b

 

null coalesce operator: با مثال این اپراتور را نیز راحت تر می توان فهمید:

PHP

//in php 5.6
$a = isset($b) ? $b : "default";
 
//in php 7.0
$a = $b ?? "default";

 

پشتیبانی از ویندوز ۶۴ بیت

همانطور که می دانید php ذاتا برای سیستم عامل هایی چون ویندوز ساخته نشده و بهترین سیستم عامل برای اجرای آن لینوکس می باشد. اما برخی از توسعه دهندگان php از ویندوز استفاده می کنند به همین جهت php نیز چون عضوی از LAMP Stack می باشد از سالها پیش نسخه ی پورت شده ای را برای اجرا در ویندوز ارائه داده است. اما علیرغم پشتیبانی آپاچی و mysql از نسخه ۶۴ بیت ویندوز، php همچنان در حالت ۳۲ بیت اجرا می شد. در نسخه ۷ کاربران ویندوز ۶۴ بیت می توانند php را با کیفیت و سرعت بالاتری اجرا کنند. البته این ویژگی به صورت آزامایشی به این نسخه افزوده شده است.

کلاس های بی نام و نشان

در این نسخه قابلیت anonymous classes افزوده شده است که این ویژگی یکی دیگر از قابلیت های شی گرایی در زبان هایی چون جاوا و C# به حساب می آید. این ویژگی زمانی بکار می آید که در طول کدنویسی برنامه نویس نیاز به آبجکتی دارد که فقط یکبار در طول برنامه استفاده خواهد شد. افزایش سرعت کدنویسی و اجرا از نتایج این ویژگی جدید می باشد.

PHP

1
2
3
4
5
6
7
var_dump(
 new class($i){
  public function __construct($i) {
    $this->i = $i;
  } 
 }
);

 


نوشته شده توسط :

وحید صمدیان وحید صمدیان



دوشنبه, 2 شهریور 1394

تعداد بازديد : 1730

برچسب ها : آخرین اخبار دنیای وب

2.0 ستاره