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
টেকনোলজি না জানা কেউ কি DevOps শিখতে পারবে? || Can A Non_IT Person Learn DevOps? (DevOps Guideline for Non-IT Person)
বর্তমান টেক দুনিয়ায় DevOps (Development and Operations) একটি জনপ্রিয় প্রফেশান হিসেবে গড়ে উঠেছে। DevOps মূলত একটি প্রসেস যা সফটওয়্যার ডেভেলপমেন্ট এবং আইটি অপারেশনস টিমের মধ্যে কম্বাইন করে, যার ফলে ফাস্ট, রিলায়েবল এবং ইফেক্টিভ সফটওয়্যার ডেলিভারি এনশিউর হয়। DevOps-এ ডেভেলপ মানে কেবল টেকনিক্যাল স্কিল নয়, বরং টিম কোলাবোরেশন, কালচারাল চেঞ্জ এবং ডেভেলপ প্রসেসের ইউজের স্কিলও এতে ইনক্লুডেট। আজ আলোচনা করা হবে, Non-IT বা টেকনোলজিক ফিল্ডে না থাকা কেউ কি DevOps শিখতে পারবে? এবং এই প্রফেশানে সাকসেসফুলল
DevOps শেখা কি সহজ? || Is DevOps Easy to Learn? (DevOps Learning Guideline)
বর্তমান টেক দুনিয়ায় DevOps একটি বহুল আলোচিত ও গুরুত্বপূর্ণ আইডিয়া। সফটওয়্যার ডেভেলপমেন্ট ও আইটি অপারেশনের মধ্যে একটি ব্রিজ হিসেবে DevOps-এর ইনোভেশন হয়েছে। এটি সফটওয়্যার ডেভেলমেন্ট ও ডেলিভারির স্পীড বাড়ানোর জন্য অটোমেটিক টুলস ও প্র্যাকটিসের মাধ্যমে কাজ করে। এই DevOps শেখা কি সহজ? এই প্রশ্নের উত্তর অনেকাংশে নির্ভর করে একজন লার্নারের ব্যাকগ্রাউন্ড, এক্সপেরিয়েন্স এবং শেখার ইন্টারেস্টের উপর। আসুন এই বিষয়ে বিস্তারিত আলোচনার আগে আজকের টপিকগুলো জেনে নেই, DevOps কী? DevOps শেখার চ্যালেঞ্জ শেখা
DevOps এর কোন ল্যাঙ্গুয়েজটি বেস্ট? || Which Language is Best for DevOps? || (Best Language For DepOps)
DevOps বর্তমানে সফটওয়্যার ডেভেলপমেন্ট এবং আইটি অপারেশনসের কম্বাইন প্রসেস হিসেবে কাজ করছে। এর মূল উদ্দেশ্য হলো সফটওয়্যার ডেলিভারি প্রসেসকে ফাস্ট এবং কারেক্টলি কমপ্লিট করা, যেখানে ডেভেলপার এবং অপারেশন টিম কোলাবোরেটলি কাজ করে। DevOps প্রসেসে DevOps এর জন্য পারফেক্ট প্রোগ্রামিং ল্যাঙ্গুয়েজের সিলেক্ট করা অত্যন্ত গুরুত্বপূর্ণ কারণ এটি সিস্টেম অটোমেশন, কনফিগারেশন ম্যানেজমেন্ট, ইনফ্রাস্ট্রাকচার ম্যানেজমেন্ট এবং আরও বিভিন্ন কাজে হেল্পফুল হয়। DevOps-এর কাজের প্রসেসে ইউজ করার মতো বিভিন্ন প্রোগ্রামিং ল্
পাইথন কি বিগিনারদের জন্য শেখা সহজ? || Is Python Easy to Learn for Beginners || ( Python Guideline for Beginners)
প্রোগ্রামিংয়ের দুনিয়া বিগিনারদের জন্য অনেকটা কঠিন। প্রোগ্রামিংয়ে আগ্রহ থেকে ক্যারিয়ার হিসেবে অনেকেই প্রোগ্রামার হতে চায়। কিন্তু প্রোগ্রামার হওয়ার জার্নিটা এতো সহজ নয়। দিনের পর দিন কোডিং নিয়ে থাকতে থাকতে অনেকেই হাপিয়ে যায়। ঠিক তখন-ই বিগিনারদের এই কোডিংয়ের ঝামেলা থেকে চলে আসে পাইথন। প্রোগ্রামিং ল্যাঙ্গুয়েজের দুনিয়ায় সবচেয়ে সহজ প্রোগ্রামিং ল্যাঙ্গুয়েজ বলা হয় পাইথনকে। কিন্তু এই কথা কি আসলেই সত্যি? * কেন পাইথন শেখা সহজ? ● পাইথনের ইংরেজি সিনট্যাক্স ● পাইথন লজিকে ফোকাস করে ● পাইথন ফ্রি-তে ইউজ করা