<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Bhanu Pratap</title>
    <description>The latest articles on Forem by Bhanu Pratap (@er_bhanu_pratap_95).</description>
    <link>https://forem.com/er_bhanu_pratap_95</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3616959%2Ff26e8f00-730e-44bf-a5a0-5f40d61ecc2f.jpg</url>
      <title>Forem: Bhanu Pratap</title>
      <link>https://forem.com/er_bhanu_pratap_95</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/er_bhanu_pratap_95"/>
    <language>en</language>
    <item>
      <title>🐘 PHP 8.5: 10 New Features, 4 Deprecations, and Why This Release Matters to Modern PHP Developers</title>
      <dc:creator>Bhanu Pratap</dc:creator>
      <pubDate>Wed, 19 Nov 2025 03:55:35 +0000</pubDate>
      <link>https://forem.com/er_bhanu_pratap_95/php-85-10-new-features-4-deprecations-and-why-this-release-matters-to-modern-php-developers-3bfn</link>
      <guid>https://forem.com/er_bhanu_pratap_95/php-85-10-new-features-4-deprecations-and-why-this-release-matters-to-modern-php-developers-3bfn</guid>
      <description>&lt;p&gt;After two years of steady evolution, PHP is preparing to ship another major update — &lt;strong&gt;PHP 8.5&lt;/strong&gt;, scheduled for release in &lt;strong&gt;November 2025&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;As someone who builds production-grade applications daily, I see PHP 8.5 as a meaningful step forward. It isn’t as disruptive as the JIT introduction in PHP 8.0, but it brings a collection of practical improvements that enhance developer experience, safety, and performance. PHP continues its journey toward becoming a more expressive and modern language — while still keeping the clarity and pragmatism we rely on.&lt;/p&gt;

&lt;p&gt;Here’s my breakdown of what’s new, what’s going away, and why this release is worth paying attention to.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡ 1. Asynchronous Signal Handling (pcntl_async_signals)
&lt;/h2&gt;

&lt;p&gt;For developers working with long-running scripts, queue workers, or background tasks, this is a welcome upgrade.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nb"&gt;pcntl_async_signals&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nb"&gt;pcntl_signal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="no"&gt;SIGTERM&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;fn&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;exit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Terminated safely&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt;&lt;br&gt;
PHP can now handle system signals &lt;em&gt;asynchronously&lt;/em&gt;, without manually calling &lt;code&gt;pcntl_signal_dispatch()&lt;/code&gt; in loops. Cleaner daemon code and safer shutdowns.&lt;/p&gt;


&lt;h2&gt;
  
  
  🧠 2. Property Hooks (get/set)
&lt;/h2&gt;

&lt;p&gt;A huge quality-of-life improvement.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;User&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="nv"&gt;$name&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;get&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;ucfirst&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;trim&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$value&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt;&lt;br&gt;
You no longer need &lt;code&gt;__get()&lt;/code&gt; or &lt;code&gt;__set()&lt;/code&gt; for simple transformations. This makes PHP feel more modern, similar to Swift and Kotlin.&lt;/p&gt;


&lt;h2&gt;
  
  
  🎯 3. Compact Attribute Syntax
&lt;/h2&gt;

&lt;p&gt;PHP 8.5 allows multiple attributes in a single block:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="na"&gt;#[ORM\Column, ORM\Id, ORM\GeneratedValue]&lt;/span&gt;
&lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nv"&gt;$id&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt;&lt;br&gt;
Classes with many attributes (Doctrine entities, Laravel models) become cleaner and more readable.&lt;/p&gt;


&lt;h2&gt;
  
  
  🧩 4. Native JSON Validation with &lt;code&gt;json_validate()&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Finally, a safe way to validate JSON before decoding.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;json_validate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$input&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nv"&gt;$data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;json_decode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$input&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt;&lt;br&gt;
Useful for APIs and data-heavy applications where malformed JSON can break flow.&lt;/p&gt;




&lt;h2&gt;
  
  
  🕓 5. &lt;code&gt;DateTimeImmutable::createFromTimestamp()&lt;/code&gt;
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$date&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;DateTimeImmutable&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;createFromTimestamp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1730982645&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt;&lt;br&gt;
A simple, intuitive way to convert timestamps — something that should have existed years ago.&lt;/p&gt;




&lt;h2&gt;
  
  
  🐢 6. Native Lazy Object Initialization
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$report&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;lazy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;Report&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'/tmp/log.txt'&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt;&lt;br&gt;
Huge performance wins for classes with heavy constructors — particularly in frameworks like Laravel or Symfony.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧭 7. Smarter Enums (Traits + Static Methods)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="n"&gt;enum&lt;/span&gt; &lt;span class="nc"&gt;Status&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Loggable&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nc"&gt;Active&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nc"&gt;Inactive&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;default&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt; &lt;span class="kt"&gt;self&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;self&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nc"&gt;Active&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt;&lt;br&gt;
Enums now behave more like real objects with shared logic.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✂️ 8. New String Helpers: &lt;code&gt;str_join()&lt;/code&gt; and &lt;code&gt;str_split_by()&lt;/code&gt;
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nf"&gt;str_join&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="s1"&gt;'foo'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'bar'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="s1"&gt;'-'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 'foo-bar'&lt;/span&gt;
&lt;span class="nf"&gt;str_split_by&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'abcdef'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;     &lt;span class="c1"&gt;// ['ab', 'cd', 'ef']&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt;&lt;br&gt;
Cleaner, more descriptive alternatives to older helpers.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔍 9. Functional Array Search: &lt;code&gt;array_find()&lt;/code&gt; and &lt;code&gt;array_find_key()&lt;/code&gt;
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$user&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;array_find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$users&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;fn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$u&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;$u&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'id'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="mi"&gt;42&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt;&lt;br&gt;
Removes a lot of boilerplate loops. Much more expressive.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 10. JIT v3 &amp;amp; Core Performance Improvements
&lt;/h2&gt;

&lt;p&gt;The JIT engine gets another upgrade:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;~10–15% faster CPU-heavy execution&lt;/li&gt;
&lt;li&gt;Better memory usage&lt;/li&gt;
&lt;li&gt;Improved FPM stability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why it matters:&lt;/strong&gt;&lt;br&gt;
JIT is finally reliable enough for production workloads.&lt;/p&gt;




&lt;h1&gt;
  
  
  ⚠️ Deprecations &amp;amp; Removals
&lt;/h1&gt;

&lt;p&gt;Here are four things PHP is phasing out:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. &lt;strong&gt;Dynamic Properties — Fully Removed&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;No more creating properties on the fly.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. &lt;strong&gt;&lt;code&gt;mbstring.func_overload&lt;/code&gt; — Removed&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;A legacy feature finally retired.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. &lt;strong&gt;&lt;code&gt;utf8_encode()&lt;/code&gt; and &lt;code&gt;utf8_decode()&lt;/code&gt; — Deprecated&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Use &lt;code&gt;mb_convert_encoding()&lt;/code&gt; instead.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. &lt;strong&gt;&lt;code&gt;assert()&lt;/code&gt; — Deprecated&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Safer validation practices should replace it.&lt;/p&gt;




&lt;h1&gt;
  
  
  🧭 Final Thoughts
&lt;/h1&gt;

&lt;p&gt;PHP 8.5 is not a groundbreaking release — and it doesn’t need to be.&lt;br&gt;
What it delivers is evolutionary improvement: better performance, cleaner syntax, modern language features, and removal of outdated quirks.&lt;/p&gt;

&lt;p&gt;As someone working daily with Laravel, APIs, and backend workflows, these updates genuinely improve the developer experience.&lt;/p&gt;

&lt;p&gt;If you want more updates like this on Laravel, PHP, and modern backend development, feel free to follow my page.&lt;/p&gt;

&lt;p&gt;🧡🐘 Happy coding!&lt;/p&gt;

</description>
      <category>php</category>
      <category>laravel</category>
      <category>development</category>
      <category>backend</category>
    </item>
    <item>
      <title>Why Laravel Continues to Lead PHP Development in 2026</title>
      <dc:creator>Bhanu Pratap</dc:creator>
      <pubDate>Tue, 18 Nov 2025 07:39:39 +0000</pubDate>
      <link>https://forem.com/er_bhanu_pratap_95/why-laravel-continues-to-lead-php-development-in-2026-4ep0</link>
      <guid>https://forem.com/er_bhanu_pratap_95/why-laravel-continues-to-lead-php-development-in-2026-4ep0</guid>
      <description>&lt;p&gt;In the ever-evolving landscape of web development, choosing the right framework can significantly impact project success and developer productivity. Among the many available PHP frameworks, Laravel has consistently established itself as a top choice for developers and enterprises alike. As we step into 2026, let’s explore what makes Laravel the preferred framework for scalable, modern, and secure web applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Elegant Syntax and Developer Experience&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of Laravel's core strengths is its clean, expressive syntax. By prioritizing developer experience, Laravel reduces boilerplate code and helps teams build applications faster. Features such as Eloquent ORM, Blade templating, and built-in routing enable developers to focus less on repetitive tasks and more on core business logic.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Powerful and Modular Ecosystem&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Laravel’s robust ecosystem—comprising tools like Horizon, Telescope, Cashier, Sanctum, Jetstream, and Sail—offers out-of-the-box solutions for common application needs such as monitoring, authentication, billing, and containerization. This not only saves time but also ensures the solutions are secure and well-integrated.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Modern Full-Stack Capabilities&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With Inertia.js and Laravel Livewire, Laravel communicates seamlessly with modern frontend frameworks like Vue, React, and Next.js, enabling developers to build full-stack applications without leaving PHP. This hybrid approach offers the flexibility of a single-page application while retaining server-side simplicity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Community and Long-Term Support&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Laravel’s vibrant community plays a crucial role in its adoption. A rich library of packages, extensive documentation, and continuous releases ensure that developers have everything they need to build and scale applications effectively. Moreover, Laravel’s security updates and long-term support contribute to its reliability for enterprise solutions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Laravel remains at the forefront of PHP development due to its rich feature set, support for modern architectures, and unparalleled developer experience. Whether you're building a startup MVP, a SaaS platform, or an enterprise system, Laravel offers the foundations and flexibility needed in today’s fast-paced environment.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>php</category>
      <category>productivity</category>
      <category>laravel</category>
    </item>
  </channel>
</rss>
