PHP 8, নভেম্বর 26, 2020-এ প্রকাশিত, ভাষায় উল্লেখযোগ্য উন্নতি এবং নতুন বৈশিষ্ট্য এনেছে, কর্মক্ষমতা, পঠনযোগ্যতা এবং ব্যবহারযোগ্যতা বৃদ্ধি করেছে। এই নিবন্ধটি PHP 8-এ সবচেয়ে উল্লেখযোগ্য পরিবর্তন এবং সংযোজন কভার করে।
JIT (জাস্ট-ইন-টাইম) কম্পাইলার
JIT কি?
জাস্ট-ইন-টাইম (JIT) কম্পাইলার হল PHP 8-এর সবচেয়ে উল্লেখযোগ্য বর্ধনগুলির মধ্যে একটি। এটি রানটাইমে কোড কম্পাইল করার মাধ্যমে কর্মক্ষমতা উন্নত করে, সম্ভাব্যভাবে CPU- নিবিড় কাজগুলির জন্য আরও ভাল এক্সিকিউশন গতি প্রদান করে।
কিভাবে JIT কাজ করে
JIT রানটাইমে কোডের কিছু অংশকে মেশিন ল্যাঙ্গুয়েজে অনুবাদ করে, যা সরাসরি CPU দ্বারা কার্যকর করা যেতে পারে। এটি প্রথাগত ব্যাখ্যা থেকে ভিন্ন, যেখানে কোড লাইন-বাই-লাইন কার্যকর করা হয়।
সুবিধা
- কর্মক্ষমতা: CPU- আবদ্ধ কাজগুলিতে উল্লেখযোগ্য গতির উন্নতি।
- অপ্টিমাইজেশান: বৈজ্ঞানিক গণনা বা ডেটা প্রক্রিয়াকরণের মতো ভারী গণনা জড়িত অ্যাপ্লিকেশনগুলির জন্য আরও ভাল কার্যকারিতা৷
ইউনিয়ন প্রকার
সংজ্ঞা
ইউনিয়ন প্রকারগুলি একটি ভেরিয়েবলকে একাধিক প্রকার ধরে রাখার অনুমতি দেয়। এই সংযোজন পিএইচপি-তে টাইপ সিস্টেমকে উন্নত করে, আরও সুনির্দিষ্ট টাইপ সংজ্ঞা সক্ষম করে।
বাক্য গঠন
function foo(int|float $number): int|float {
return $number;
}
সুবিধা
- টাইপ নিরাপত্তা: টাইপ-সম্পর্কিত ত্রুটি হ্রাস করে।
- নমনীয়তা: আরো অভিব্যক্তিপূর্ণ এবং নমনীয় ধরনের ঘোষণা।
নামযুক্ত আর্গুমেন্টস
সংজ্ঞা
নামযুক্ত আর্গুমেন্ট তাদের অবস্থানের পরিবর্তে প্যারামিটার নামের উপর ভিত্তি করে একটি ফাংশনে আর্গুমেন্ট পাস করার অনুমতি দেয়।
বাক্য গঠন
function foo(string $a, string $b, string $c) {}
foo(a: 'first', c: 'third', b: 'second');
সুবিধা
- পঠনযোগ্যতা: ফাংশন কলগুলিকে আরও পাঠযোগ্য করে তোলে।
- নমনীয়তা: অনেক প্যারামিটার আছে এমন ফাংশনগুলির সাথে কাজ করা সহজ, বিশেষ করে ডিফল্ট মান সহ।
গুণাবলী
সংজ্ঞা
গুণাবলী, অন্যান্য ভাষায় টীকা হিসাবেও পরিচিত, ক্লাস, পদ্ধতি, বৈশিষ্ট্য এবং পরামিতিগুলিতে মেটাডেটা যোগ করার একটি উপায় প্রদান করে।
বাক্য গঠন
#[ExampleAttribute]
class Foo {
#[AnotherAttribute]
public function bar() {}
}
সুবিধা
- মেটাডেটা: মেটাডেটা সংজ্ঞায়িত করার জন্য একটি প্রমিত উপায় প্রদান করে।
- প্রতিফলন: প্রতিফলন API এর মাধ্যমে মেটাডেটার সাথে কাজ করা সহজ।
কনস্ট্রাক্টর সম্পত্তি প্রচার
সংজ্ঞা
কনস্ট্রাক্টর প্রোপার্টি প্রমোশন কন্সট্রাক্টরদের ক্লাস প্রোপার্টি ডিক্লেয়ারেশন এবং ইনিশিয়ালাইজেশনকে সহজ করে।
বাক্য গঠন
class Point {
public function __construct(
public float $x,
public float $y,
public float $z
) {}
}
সুবিধা
- সংক্ষিপ্ততা: বয়লারপ্লেট কোড হ্রাস করে।
- পঠনযোগ্যতা: ক্লাস সংজ্ঞা পরিষ্কার এবং আরো পঠনযোগ্য করে তোলে.
অভিব্যক্তি ম্যাচ
সংজ্ঞা
দ্য match
অভিব্যক্তি অনুরূপ switch
, কিন্তু আরো শক্তিশালী এবং সংক্ষিপ্ত।
বাক্য গঠন
$result = match ($input) {
1 => 'one',
2 => 'two',
3 => 'three',
default => 'unknown',
};
সুবিধা
- সংক্ষিপ্ততা: এর চেয়ে বেশি সংক্ষিপ্ত
switch
. - অভিব্যক্তি: অসদৃশ একটি মান প্রদান করে
switch
.
নালসেফ অপারেটর
সংজ্ঞা
নালসেফ অপারেটর (?->
) বৈশিষ্ট্য বা পদ্ধতি অ্যাক্সেস করার সময় নাল চেক সহজ করে।
বাক্য গঠন
$result = $object?->property?->method();
সুবিধা
- সরলতা: একাধিক নাল চেকের প্রয়োজনীয়তা হ্রাস করে।
- পঠনযোগ্যতা: বাতিলযোগ্য বৈশিষ্ট্য বা পদ্ধতি ক্লিনার জড়িত কোড করে তোলে।
ত্রুটি হ্যান্ডলিং উন্নতি
TypeError এবং ValueError
পিএইচপি 8 চালু করা হয়েছে TypeError
এবং ValueError
আরও ভাল ত্রুটি পরিচালনার জন্য। এই ব্যতিক্রমগুলি নির্দিষ্ট ধরণের ত্রুটি ধরা এবং পরিচালনা করা সহজ করে তোলে।
সুবিধা
- গ্রানুলারিটি: আরো দানাদার এবং নির্দিষ্ট ত্রুটি হ্যান্ডলিং.
- ডিবাগিং: সমস্যা চিহ্নিত করা এবং সমাধান করা সহজ।
দুর্বল মানচিত্র
সংজ্ঞা
দুর্বল মানচিত্রগুলি তাদের আবর্জনা সংগ্রহে বাধা না দিয়ে বস্তুর সংরক্ষণের অনুমতি দেয়।
বাক্য গঠন
$weakMap = new WeakMap();
$weakMap[$object] = $data;
সুবিধা
- স্মৃতি ব্যবস্থাপনা: অব্যবহৃত বস্তুকে আবর্জনা সংগ্রহ করার অনুমতি দিয়ে আরও দক্ষতার সাথে মেমরি পরিচালনা করতে সাহায্য করে।
- নমনীয়তা: ক্যাশিং এবং অন্যান্য পরিস্থিতিতে যেখানে অবজেক্ট লাইফসাইকেল ম্যানেজমেন্ট গুরুত্বপূর্ণ।
অন্যান্য নতুন বৈশিষ্ট্য এবং উন্নতি
সামঞ্জস্যপূর্ণ টাইপ ত্রুটি
PHP 8 টাইপ ত্রুটির ক্ষেত্রে আরও সামঞ্জস্য আনে, টাইপ-সম্পর্কিত সমস্যাগুলি বোঝা এবং ঠিক করা সহজ করে তোলে।
নতুন স্ট্রিং ফাংশন
নতুন স্ট্রিং ফাংশন, যেমন str_contains
, str_starts_with
, এবং str_ends_with
, আরো সুবিধা এবং পঠনযোগ্যতা প্রদান.
উন্নত সিনট্যাক্স
বিভিন্ন সিনট্যাক্স উন্নতি, যেমন প্যারামিটার তালিকায় কমা এবং নাম দেওয়া প্যারামিটার, কোড পঠনযোগ্যতা এবং রক্ষণাবেক্ষণযোগ্যতা বাড়ায়।
উপসংহার
PHP 8 শক্তিশালী বৈশিষ্ট্য এবং উন্নতির একটি পরিসর প্রবর্তন করে যা ভাষার কার্যক্ষমতা, পাঠযোগ্যতা এবং ব্যবহারযোগ্যতা বাড়ায়। জেআইটি কম্পাইলার থেকে নামযুক্ত আর্গুমেন্ট এবং অ্যাট্রিবিউট পর্যন্ত, এই সংযোজনগুলি পিএইচপিকে আরও শক্তিশালী এবং আধুনিক ভাষা করে তোলে, যা আধুনিক ওয়েব ডেভেলপমেন্টের চাহিদা পূরণ করে। ক্লিনার, আরও দক্ষ, এবং রক্ষণাবেক্ষণযোগ্য কোড লেখার জন্য এই নতুন বৈশিষ্ট্যগুলি অন্বেষণ করতে এবং ব্যবহার করতে বিকাশকারীদের উত্সাহিত করা হয়।