I don’t know if it’s due to over-exposure to programming memes but I certainly believed that no one was starting new PHP projects in 2023 (or 2020, or 2018, or 2012…). I was under the impression we only still discussed it at all because WordPress is still around.

Would a PHP evangelist like to disabuse me of my notions and make an argument for using PHP for projects such as Kbin in this day and age?

  • tias@discuss.tchncs.de
    link
    fedilink
    arrow-up
    4
    ·
    2 years ago

    It’s not just that it’s interpreted. I code a lot of Python and I’ve never just read in another Python file as configuration and executed it. Reading a yaml or json file is like 2-3 lines of code. But I’ll bet it’s not that simple in PHP.

    • l3mming@lemmy.fmhy.ml
      link
      fedilink
      arrow-up
      6
      ·
      edit-2
      2 years ago

      It is that easy in php:

      $jsonConfig = file_get_contents('config.json');
      $config = json_decode($jsonConfig);
      

      • tias@discuss.tchncs.de
        link
        fedilink
        arrow-up
        2
        ·
        2 years ago

        Well in that case, it’s just bad coding.

        I guess there’s a tendency for interpreted languages to attract more bad coders because trial & error is easier and you can get started in fewer steps. Also, fewer confusing compiler errors to deal with.

        • PJB@lemmy.spacestation14.com
          link
          fedilink
          English
          arrow-up
          5
          ·
          2 years ago

          To be honest, the “configuration is an executed .php file” system does make some amount of sense in the context of PHP. When your app has to re-run everything to serve a web request, having to re-load the config (especially if it’s YAML, though JSON is less bad) is expensive. Re-running the PHP code, on the other hand, can be cached way better, in theory.

          Of course, this is still all PHP’s fault in the end: the core problem here is that you need to re-run everything to serve a web request, without ability to pre-load state like configuration.