PHP7-এ কিছু ফিচার deprecated বা removed করা হয়েছে, যা পূর্ববর্তী সংস্করণে বিদ্যমান ছিল কিন্তু নতুন ভার্সনে সেগুলির ব্যবহার অদূরদর্শী বা নিরাপত্তাজনিত কারণে না করার পরামর্শ দেওয়া হয়েছে। এছাড়া কিছু ফিচার PHP7 থেকে পুরোপুরি remove করা হয়েছে। এই পরিবর্তনগুলি PHP কোডের উন্নততর নিরাপত্তা, পারফরম্যান্স এবং প্রযোজ্যতা নিশ্চিত করার জন্য করা হয়েছে।
নিচে PHP7-এ deprecated এবং removed ফিচারের বিস্তারিত আলোচনা করা হলো:
Deprecated ফিচারসমূহ
Deprecated ফিচারগুলি PHP 7-এ এখন ব্যবহার না করার জন্য পরামর্শ দেওয়া হয়, কিন্তু এগুলি পুরোপুরি remove করা হয়নি। পরবর্তীতে এই ফিচারগুলিকে ভবিষ্যত সংস্করণে সরানো হতে পারে।
ereg()ফাংশনereg(),ereg_replace(), এবংsplit()ফাংশনগুলি PCRE (Perl Compatible Regular Expressions) এর মাধ্যমে প্রতিস্থাপিত হয়েছে।ereg()ফাংশনটি deprecated হয়েছে, এবং এর পরিবর্তেpreg_match()বাpreg_replace()ব্যবহারের পরামর্শ দেওয়া হয়েছে।
ব্যবহার থেকে বিরত থাকা:
// Deprecated ereg('pattern', $string);পরিবর্তন:
// Recommended preg_match('/pattern/', $string);
mysql_*ফাংশনmysql_*এক্সটেনশনের ফাংশনগুলি যেমনmysql_connect(),mysql_query()ইত্যাদি, deprecated হয়েছে এবং এটি PHP 7-এ remove করা হয়েছে।mysqli_*অথবাPDOএর পরিবর্তে ব্যবহারের পরামর্শ দেওয়া হয়েছে, যা আরও নিরাপদ এবং আধুনিক।
Deprecated:
mysql_connect('localhost', 'user', 'password');Recommended:
$conn = new mysqli('localhost', 'user', 'password');
$php_errormsgগ্লোবাল ভ্যারিয়েবল$php_errormsgগ্লোবাল ভ্যারিয়েবলটি deprecated হয়েছে। PHP 7 এর পর, ত্রুটি বার্তা শো করার জন্যerror_get_last()ফাংশন ব্যবহার করতে হবে।
Deprecated:
echo $php_errormsg;Recommended:
$error = error_get_last(); echo $error['message'];
mcrypt_*ফাংশনগুলিmcrypt_*ফাংশনগুলো নিরাপত্তার কারণে deprecated হয়েছে এবংopensslএর মাধ্যমে এনক্রিপশন ব্যবহারের পরামর্শ দেওয়া হয়েছে।
Deprecated:
mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, $iv);Recommended:
openssl_encrypt($data, 'aes-128-cbc', $key, 0, $iv);
parse_str()এর আউটপুট প্যারামিটারparse_str()ফাংশনে আউটপুট প্যারামিটারটি deprecated হয়েছে। এটি ইনপুট ভেরিয়েবলদের অ্যাসোসিয়েটিভ অ্যারে তৈরি করার জন্য ব্যবহৃত হত। এখন এটিকে সরাসরি ব্যবহার না করার পরামর্শ দেওয়া হয়েছে।
Deprecated:
parse_str("a=1&b=2", $output);Recommended:
parse_str("a=1&b=2", $output);
Removed ফিচারসমূহ
PHP7-এ কিছু ফিচার পুরোপুরি remove করা হয়েছে, অর্থাৎ এগুলি আর PHP7 তে কাজ করবে না এবং এগুলির পরিবর্তে নতুন ফিচার ব্যবহারের পরামর্শ দেওয়া হয়েছে।
mysql_*এক্সটেনশন- PHP 5.5.0 থেকে
mysql_*এক্সটেনশনটি deprecated করা হয়েছিল এবং PHP 7 তে এটি remove করা হয়েছে। - এর পরিবর্তে
mysqli_*অথবাPDOব্যবহারের পরামর্শ দেওয়া হয়েছে।
Removed:
mysql_connect('localhost', 'user', 'password'); // Error in PHP7Recommended:
$conn = new mysqli('localhost', 'user', 'password'); // Safe in PHP7- PHP 5.5.0 থেকে
eregএবংsplitফাংশনereg(),ereg_replace(),split()এবংspliti()ফাংশনগুলি PHP7-এ remove করা হয়েছে, এবং এগুলির পরিবর্তেpreg_*ফাংশনগুলি ব্যবহৃত হবে।
Removed:
ereg('pattern', $string); // Error in PHP7Recommended:
preg_match('/pattern/', $string); // Safe in PHP7
call_user_method()এবংcall_user_method_array()call_user_method()এবংcall_user_method_array()ফাংশন দুটি PHP7-এ remove করা হয়েছে। এটি ব্যবহার করার পরিবর্তেcall_user_func()বাcall_user_func_array()ব্যবহার করতে হবে।
Removed:
call_user_method('method', $object); // Error in PHP7Recommended:
call_user_func([$object, 'method']); // Safe in PHP7
$HTTP_*গ্লোবাল ভ্যারিয়েবলস$HTTP_*গ্লোবাল ভ্যারিয়েবলগুলি (যেমন,$HTTP_POST_VARS,$HTTP_GET_VARS) PHP7-এ remove করা হয়েছে। এগুলির পরিবর্তে সরাসরি$_POST,$_GET,$_REQUESTইত্যাদি সুপারগ্লোবাল ভ্যারিয়েবল ব্যবহার করতে হবে।
Removed:
$HTTP_GET_VARS['username']; // Error in PHP7Recommended:
$_GET['username']; // Safe in PHP7
সারসংক্ষেপ
PHP7-এ অনেক পুরনো এবং নিরাপত্তাহীন ফিচার deprecated বা removed করা হয়েছে। mysql_* ফাংশনগুলির ব্যবহার নিষিদ্ধ করা হয়েছে এবং এর পরিবর্তে mysqli_* অথবা PDO ব্যবহারের পরামর্শ দেওয়া হয়েছে। এছাড়াও, ereg(), split(), এবং $HTTP_* গ্লোবাল ভ্যারিয়েবলগুলির মতো কিছু পুরানো ফিচার PHP7 থেকে সরানো হয়েছে। এই পরিবর্তনগুলি PHP কোডের নিরাপত্তা, কার্যকারিতা এবং আধুনিকতার জন্য অত্যন্ত গুরুত্বপূর্ণ।
Read more