مقدمه :
همانطور که خیلی از شما میدانید در RFC مربوط به PHP نسخه جدیدی از آن به کاربران ارائه خواهد شد؛ نسبت به توافقات انجام گرفته در مرکز PHP.net نام جدید آن را PHP7 در نظر گرفتهاند.
بی توجه به احساس هایتان روی این موضوع ، PHP7 ویرایشی هست که در طی سال جاری در اواست ماه ژوئن به کاربران عرضه خواهد شد و بر اساس گفته های php.net این نسخه از php است که بسیار مورد قبول کاربران آن قرار خواهد گرفت. ما اکنون به بخشی از ویژگی های این محصول جدید خواهیم پرداخت.
اما این مسئله چه معنایی خواهد داد؟ بعد از اعمال این تغییر بسیاری از هاست ها و سرورهای میزبان وب سایتهای php میبایست تغییرات عمده ای در سرور های خود اعمال نمایند تا بتوانند از php 5.x به ورژن جدید آن نقل مکان نمایند؛ این مسئله باعث وارد شدن اعتراضات بسیار زیاد میزبانان وب شده است.
این مسئله باعث به وجود آمدن تأخیر زمانی در اعمال نسخه جدید در سرورها خواهد شد.
رفع اشکالات مربوط به نا هماهنگیها:
یکی از بزرگترین تغییراتی که در php رخ داده است، به وجود آمدن یک درخت انتزاعی نحوی (Abstract Syntax Tree) میباشد. در طی یک بازنگری کلی که در کامپایلر php صورت گرفته است کاربران میتوانند بعضی از ناهماهنگیها را برطرف کرده و از ابزار بسیار جالب AST استفاده نمایند.
دومین ابزار استفاده شده مربوط به Uniform Variable Syntax میباشد که ممکن است تأثیرات زیادی بر برنامه نویسی شما داشته باشد، این ابزار بسیاری از نا هماهنگی های متعدد را ارزیابی و حل مینماید.
برای مثال توانایی فراخوانی بستارهای نسبت داده شده به یک تنظیمات با استفاده از دستوری همانند زیر:
($object->closureProperty)();
به وسیله این دستور ما میتوانیم زنجیره ای از متغیر های static را در برنامه فراخوانی نماییم، همانند مثال زیر
class foo { static $bar = "baz"; }
class baz { static $bat = "Hello World"; }
baz::$bat = function () { echo "Hello World"; };
$foo = "foo";
($foo::$bar::$bat)();
بعد از این مسئله ممکن است بعضی از الفاظ و دستورات تغییر نمایند، این امر در متغیر ها و تنظیمات به طور کامل دیده می شود.
قبل از php7، دستور $obj->$properties["name"] ما را قادر میساخت تا به خانه name در داخل ارایه properties دسترسی داشته باشیم. به طور کلی این دستور در جوامع بینالمللی درست می باشد ولی طبق استاندارد php7 تغییراتی در ان صورت گرفته که به شرح زیر می باشد:
استاندارد اصلی دستور
$obj->$properties["name"]
استاندارد استفاده شده در php 5.6
$obj->{$properties["name"]}
و استاندارد اصلی استفاده شده در php7
{$obj->$properties}["name"]
در طی بررسی ها بنده به این مسئله پی بردم که این تغییر از تغییرات شکل گرفته از تنظیمات کلاس ها و propertiesها صورت گرفته است. ولی در کل استفاده از دستورات در حالت های قبل نیز مشکلی به وجود نخواهد آورد ( برای اطلاعات بیشتر در این موضوع به وب سایت php.net مراجعه نمایید)
کارایی و کارکرد:
بزرگترین عاملی که باید از php7 استفاده نماییم کارایی آن می باشد؛ با تغییرات عمده ای که در phpng بوجود آمده است باعث بالا رفتن فوقالعاده سرعت پردازش اطلاعات در php7 شده است. این مسئله میزبانان هاست کوچک را بسیار تحت تاثیر قرار خواهد داد، به دلیل این که این میزبانان هاست کوچک به ندرت علاقه ای به تغییر سخت افزار های سرور خود دارند بالا رفتن سرعت بدون تغییر سخت افزار و هزینه اضافی حائز اهمیت زیادی خواهد بود.
ادامه این مطلب را در قسمت دوم بحث خواهیم کرد