- इसमें property hooks, asymmetric visibility, अपडेटेड DOM API, परफ़ॉर्मेंस सुधार, बग फिक्स और सामान्य cleanup शामिल हैं
- property hooks उपलब्ध हैं, जो computed properties को सपोर्ट करते हैं जिन्हें IDE और static analysis tools native रूप से समझ सकते हैं
- asymmetric visibility पेश की गई है, जिससे properties के read और write scope को स्वतंत्र रूप से नियंत्रित किया जा सकता है
- नई सुविधाएँ
#[\Deprecated] attribute के ज़रिए custom functions, methods और class constants पर PHP का मौजूदा deprecation mechanism लागू किया जा सकता है
- नया DOM API HTML5 documents parsing के लिए standards-compliant support शामिल करता है और DOM functionality से जुड़े कई पुराने compatibility bugs को ठीक करता है
BcMath\Number object का उपयोग करके arbitrary-precision numbers को object-oriented तरीके से संभाला जा सकता है
array_find(), array_find_key(), array_any(), array_all() जैसी नई array functions उपलब्ध हैं
- PDO के नए subclasses
Pdo\Dblib, Pdo\Firebird, Pdo\MySql, Pdo\Odbc, Pdo\Pgsql, Pdo\Sqlite उपलब्ध हैं
- नए बनाए गए object की properties और methods को बिना parentheses के access किया जा सकता है
- नई classes, interfaces और functions
- नए Lazy Objects, और IR Framework आधारित JIT implementation
request_parse_body() function, bcceil(), bcdivmod(), bcfloor(), bcround() functions जोड़े गए
DateTime::createFromTimestamp(), DateTime::getMicrosecond(), DateTime::setMicrosecond() जैसी methods जोड़ी गईं
mb_trim(), mb_ltrim(), mb_rtrim(), mb_ucfirst(), mb_lcfirst() functions जोड़े गए
pcntl_getcpu(), pcntl_getcpuaffinity(), pcntl_getqos_class(), pcntl_setns(), pcntl_waitid() functions जोड़े गए
ReflectionClassConstant::isDeprecated(), ReflectionGenerator::isClosed(), ReflectionProperty::isDynamic() methods जोड़ी गईं
http_get_last_response_headers(), http_clear_last_response_headers(), fpow() functions जोड़े गए
XMLReader::fromStream(), XMLReader::fromUri(), XMLReader::fromString(), XMLWriter::toStream(), XMLWriter::toUri(), XMLWriter::toMemory() methods जोड़ी गईं
grapheme_str_split() function जोड़ा गया
- Deprecations और breaking changes
- IMAP, OCI8, PDO_OCI, pspell extensions को bundle से हटाकर PECL में स्थानांतरित किया गया
- implicit nullable parameter types अब deprecated हैं
- class name के रूप में
_ का उपयोग deprecated है
- 0 को किसी negative power तक बढ़ाना deprecated है
round() को invalid mode देने पर अब ValueError होता है
- extensions के class constants अब typed हैं
GMP class अब final के रूप में चिह्नित है
- MYSQLI से संबंधित constants और functions deprecated हैं
stream_bucket_make_writeable() और stream_bucket_new() अब StreamBucket instance लौटाते हैं
exit() का व्यवहार बदला गया है
E_STRICT constant deprecated है
- परफ़ॉर्मेंस और syntax सुधार
- परफ़ॉर्मेंस, syntax और type safety में सुधार
- PHP 8.4 में upgrade करने की सिफारिश की गई है
3 टिप्पणियां
WordPress और Laravel की वजह से कम से कम भूखों नहीं मरेगी यह language
WordPress और Laravel खत्म भी हो जाएँ, तब भी यह ऐसी भाषा है जिससे भूखे नहीं मरेंगे।
Hacker News राय
RFC में यह स्पष्ट किया गया है कि
$this->countryCodeअनंत recursion क्यों नहीं पैदा करता। यह कुछ जादुई सा लगता है कि PHP में property access संदर्भ के अनुसार अलग अर्थ ले सकता है।एक PHP programmer के तौर पर मुझे PHP की दिशा को लेकर चिंता है। नए language features संदिग्ध लाभ के लिए भाषा की जटिलता बढ़ा रहे हैं।
यह देखकर खुशी होती है कि PHP अब भी फल-फूल रहा है। 2021 में Nikita Popov के जाने पर चिंता हुई थी, लेकिन PHP अब भी एक अच्छी भाषा है और इस पर बहुत से developers सक्रिय हैं।
property hooks को लेकर सबसे ज़्यादा उत्साहित हूँ। यह वह feature है जिसकी कमी मुझे C# में महसूस होती थी।
__get()और__set()का उपयोग करके इसकी नकल भी की थी, लेकिन वह भारी था और बहुत सारे PHPDoc annotations की ज़रूरत पड़ती थी।array accessors overloading को देखते-देखते "Property Hooks" पर नज़र पड़ी। यह जानकर हैरानी हुई कि यह हाल ही में जोड़ा गया feature है।
PHP की नई release से संतुष्ट हूँ। closures के लिए बेहतर stack traces, performance improvements, HTML5 support, lazy objects जैसी कई सुधार किए गए हैं।
bcmath objects को लेकर उत्साहित हूँ। arithmetic operators से ज़्यादा यह बात पसंद आई कि अब wrapper classes के बिना data type checks किए जा सकते हैं।
यह देखकर खुशी है कि PHP अब भी आगे बढ़ रहा है। जब मैंने freelancer के रूप में शुरुआत की थी, तब की यादें ताज़ा हो गईं।
PHP का नया
array_findfunction भाषा डिज़ाइन की समस्या दिखाता है। यह मौजूदाarray_searchजैसा है, लेकिन arguments का क्रम अलग है।"public private(set)" समझ में नहीं आता। "readonly public" ज़्यादा उपयुक्त लगता है।
private(set)जैसा दिखता है।