Blog
/
Category
/
Details
PHP 8.3: নতুন ফিচার (RFC সহ) এবং রিলিজ ডেট
পিএইচপি একটি ওপেন-সোর্স প্রজেক্ট। অল্প কয়েক মিনিট ঘাঁটাঘাঁটি করলেই জেনে যাওয়া যায় পরের ভার্সনে কী আসছে।
নিচে আপনি একটা সংক্ষিপ্ত তালিকায় ধারণা পেয়ে যাবেন- নতুন কী কী এসেছে, এবং তাদের স্যাম্পল কোড কেমন।
পিএইচপি 8.৩ কবে আসবে?
প্রিপারেশন টাস্ক লিস্ট অনুযায়ী, পিএইচপি ৮.৩ আসবে নভেম্বর ২৩, ২০২৩ এ– তিনটি আলফা, তিনটি, বেটা এবং ছয়টি রিলিজ ক্যান্ডিডেটের পরে।
নতুন কী আছে পিএইচপি ৮.৩ এ: নতুন ফিচার এবং পরিবর্তনসমূহ
json_validate()
JSON স্ট্রিং যাচাই করতে json_decode() এর পরিবর্তে এখন আপনি json_validate() ব্যবহার করতে পারেন। আরএফসি অনুযায়ী, এতে কম রিসোর্স ব্যবহৃত হয়।
json_validate('{ "foo": "bar", }');
// Syntax error
echo json_last_error_msg();
দেখতে পাচ্ছেন, এখানে json_validate() একটা boolean রিটার্ন করে, আর আপনি এই এরোর ম্যাসেজটি json_last_error() অথবা json_last_error_msg() দিয়ে এনে আরও ডিটেইলস পেতে পারেন।
উন্নত unserialize() এরোর হ্যান্ডলিং
পিএইচপি ৮.৩ এর রয়েছে আনসিরিয়ালাইজিংএর সময়ে উন্নত এরোর হ্যান্ডলিং সুবিধা।
আমি কাস্টম আনসিরিয়ালাইজেশনের ব্যাপারে জ্ঞাত নই, তবে আমি আমার সর্বোচ্চ চেষ্টা করব কীভাবে এই আরএফসি কাজ করে এটা খুব সহজে বোঝাতে।
এতদিন আমাদের কাস্টম এরোর হ্যান্ডলারের মত ভয়ানক কোডের উপর ভরসা করে থাকতে হত, কিন্তু এখন সেখানে রয়েছে unserialize() ফাংশন।
try {
set_error_handler(static function ($severity, $message, $file, $line) {
throw new ErrorException($message, 0, $severity, $file, $line);
});
$result = unserialize($serialized);
} catch (Throwable $e) {
// Unserialization failed. Catch block optional if the error should not be handled.
} finally {
restore_error_handler();
}
পিএইচপি ৮.৩ এ আমরা unserialize() মেথড ব্যবহার করে সরাসরি এরোর হ্যান্ডেল করতে পারব:
function unserialize(string $data): mixed
{
try {
//
} catch (Throwable $e) {
throw new UnserializationFailedException(previous: $e);
}
}
র্যান্ডমাইজার অ্যাডিশন (Randomizer Additions)
এই আরএফসি \Random\Randomizer এবং IntervalBoundary নামক একটি enum এ তিনটি নতুন মেথড যুক্ত করার সুবিধা প্রদান করে, যা নিচের মেথডগুলোর একটিতে ব্যবহৃত হয়:
final class Randomizer {
public function getBytesFromString(string $string, int $length) : string {}
public function nextFloat() : float {}
public function getFloat(float $min, float $max, IntervalBoundary $boundary = IntervalBoundary::ClosedOpen) : float {}
}
enum IntervalBoundary
{
case ClosedOpen;
case ClosedClosed;
case OpenClosed;
case OpenOpen;
}
ডায়নামিক ক্লাস কন্সট্যান্ট ফেচ (Dynamic class constant fetch)
এই আরএফসি ভ্যারিয়েবলের সাহায্যে ডায়নামিকভাবে ক্লাস কন্সট্যান্টদের অ্যাক্সেস করার সুবিধা দেয়।
এর মানে হচ্ছে একটা স্ট্যাটিক স্ট্রিং ভ্যালু দিয়ে ক্লাস কন্সট্যান্টদের অ্যাক্সেস (যেমন- ClassName::CONSTANT) করার পরিবর্তে আপনি কন্সট্যান্টের নাম সংবলিত একটি ভ্যারিয়েবল ব্যবহার করতে পারেন।
$constant = 'CONSTANT';
ClassName::{$constant}
এই পরিবর্তনের কারণে ডায়নামিকভাবে এবং প্রোগ্রামাটিকভাবে ক্লাস কন্সট্যান্ট অ্যাক্সেস করা সহজতর হবে।
আরও যথাযথ ডেট/টাইম এক্সেপশন
এই আরএফসির সাহায্যে পিএইচপিতে নির্দিষ্ট তারিখ ও সময়ের এক্সেপশন হ্যান্ডেল করা যায়।
বর্তমানে এখানে ওয়ার্নিং, এরোর অথবা একটা সাধারণ Exception রয়েছে যা ততটা নির্দিষ্ট নয়।
এখানে আলাদা আলাদা এরোরের জন্য আলাদা আলাদা এক্সেপশন থাকবে, যেমন ‘DateInvalidTimeZoneException’, ‘DateInvalidOperationException’, এবং ‘DateMalformedStringException’।
পিএইচপি ৮.৩ এর জন্য আজ এই পর্যন্তই।
আমি আসন্ন মাসগুলোতে গৃহীত নতুন আরএফসি নিয়ে রিপোর্ট করতে থাকব।
RELATED ARTICLES
ওয়েব vs অ্যাপ (ফ্লাটারের যেখানে একচ্ছত্র আধিপত্য)
ক্র্যাক করুন কোডিং ইন্টারভিউ
একজন কোডার হিসেবে আল্টিমেট গোল থাকা উচিৎ ড্রিম জব এচিভ করা। তবে ড্রিম জব এচিভ করার ক্ষেত্রে সবচেয়ে বড় বাধা কোডিং ইন্টারভিউ ক্র্যাক করা। জ আজ কথা হবে কোডিং ইন্টারভিউ ক্র্যাক করা নিয়ে,কথা হবে কীভাবে ইজিলি ক্র্যাক করতে পারবেন তা নিয়ে। তাই বিগিনার,মিডিওকার বা এক্সপেরিমেন্ট যে লেভেল এর কোডার হন না কেন কোডিং ইন্টারভিউ ক্র্যাক করার সলিউশন জানতে চাইলে পড়ে নিন আজকের এই ব্লগটি। কোডারদের ড্রিম জব এচিভ করার ক্ষেত্রে প্রধান বাধা হতে পারে ইন্টারভিউ ক্র্যাকিং। তবে একবার ভাবুন তো যদি আপনি এই প্রসেসে সারর্ভাইব
চ্যাটজিপিটি ইউজেস ফর লারাভেল ডেভেলপারস
বর্তমান সময়ে এক্সপার্ট হতে হলে সবাইকেই AI ইউজ করা জানতে হয়। আর সেটা যদি হয় লারাভেল ডেভেলপার্সদের জন্য, তাহলে বলা যায়, chatgpt আপনার কাজকে করতে পারে আরো ইজি এন্ড টাইম-ফ্রেন্ডলি। কিন্তু তা কিভাবে?এই নিয়ে ডিটেইলস জেনে নিতে পড়ে নিন আজকের ব্লগটি। ChatGPT চ্যাটজিপিটি হল OpenAI-এর ক্রিয়েট করা একটি Large Language Model, যা বিভিন্ন কাজের জন্য ইউজ করা যেতে পারে। আর এই বিভিন্ন কাজের মধ্যে রয়েছে কোড ক্রিয়েট এবং ডিবাগ করা। Laravel লারাভেল হলো PHP-ভিত্তিক একটি জনপ্রিয় ওপেন-সোর্স ওয়েব অ্যাপ্লিকেশন ফ্রেম
Envato মার্কেটপ্লেসে শাইন করতে কী শিখবেন?
Envato Marketplace কে এক কথায় ক্রিয়েটিভ ডিজিটাল asset এর শপিংমল বলা যেতে পারে। বিশ্বব্যাপী ক্রিয়েটিভ প্রফেশনালরা, যেমন - ওয়েব ডিজাইনার, গ্রাফিক্স ডিজাইনার, ফটোগ্রাফার ইত্যাদি মানুষদের কাছে এই অনলাইন মার্কেটপ্লেসটি খুবই জনপ্রিয়। তাঁরা যেমন তাদের কন্টেন্ট বিক্রি করার জন্য এই মার্কেটপ্লেসে আসেন, ঠিক তেমনি অসংখ্য ক্রেতাও সেগুলি কিনতে আসেন। তাই এই মার্কেটপ্লেসটি ক্রিয়েটিভ পেশার মানুষদের জন্য আয়ের বেশ সম্ভাবনাময় একটি ক্ষেত্র। আপনি হয়তো ইতোমধ্যেই Envato Marketplace এ জয়েন করে ফেলেছেন কিংবা করতে যাচ্ছ