• by duskwuff on 2/15/2025, 6:31:06 AM

    Slightly more interesting changelog:

    https://www.php.net/ChangeLog-8.php#8.4.4

    That being said, this is a pretty boring release. Save the upvotes for 8.5 when it comes? :)

  • by someothherguyy on 2/15/2025, 6:08:17 AM

    One wonders, why is a minor release announcement for PHP on the front page?

  • by satvikpendem on 2/15/2025, 7:02:14 AM

    How is PHP's speed these days? I haven't been following but I heard that PHP has become much more capable in features and performance since I used it a decade ago.

  • by tored on 2/15/2025, 9:25:59 AM

    A great bug fix release on a great major release. Thank you to everyone involved to make this possible.

  • by lbj on 2/15/2025, 7:43:10 AM

    Does anyone know specifically how much of this is no longer true? https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/

  • by phplovesong on 2/15/2025, 8:11:16 AM

    Still no builtun unicode. Still no way to do concurrency. Sees like PHP is only getting closer to become a poormans Java.

  • by TekMol on 2/15/2025, 7:43:05 AM

    PHP needs modules. The way it solves code reuse by tooling that helps making class names longer to avoid collisions is just too cumbersome.

    Python:

        calc.py
        -------
    
        def sum(a, b):
            return a+b
    
        hello.py
        --------
    
        import calc
        print(calc.sum(1, 2))
    
    PHP:

        LongUniqueStringToHopefullyAvoidCollisions/Calc.php
        ---------------------------------------------------
    
        <?php
        namespace LongUniqueStringToHopefullyAvoidCollisions;
        class Calc {
            public static function sum($a, $b) {
                return $a + $b;
            }
        }
    
        hello.php
        ---------
    
        <?php
        require_once 'LongUniqueStringToHopefullyAvoidCollisions/Calc.php';
        use LongUniqueStringToHopefullyAvoidCollisions\Calc;
        echo Calc::sum(1, 2)
    
    For people who don't know PHP it is probably hard to grasp and hard to believe: To avoid name collisions, you have to wrap your code in classes and then use the "namespace" and "use" keywords which function like prefixing the class names with a given string, so the class names hopefully do not collide with other class names in your codebase.