PHP 8.1.0 Release Announcement

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • Scout APM - Less time debugging, more time building
  • SonarLint - Deliver Cleaner and Safer Code - Right in Your IDE of Choice!
  • SaaSHub - Software Alternatives and Reviews
  • unasync

    The async transformation code.

    Fibers "allow blocking and non-blocking implementations to share the same API"

    That's an interesting contrast to Python where the need to use "value = await fn()" v.s. "value = fn()" depending on whether or not that function is awaitable causes all kinds of API design complexity, all the way up to the existence of tools like https://github.com/python-trio/unasync which can code-generate the non-async version of a library from the async version.

  • Amp

    A non-blocking concurrency framework for PHP applications. 🐘

    like the sibling comment said, web apps are written in Symfony/Laravel, but the framework abstractions with web apps might not paint you a clear picture of how the core language has improved. it will give you a good idea what it's like to build applications.

    my favorite part of modern PHP is how nice writing libraries is. so it might not be what you're looking for, but I remember being pretty impressed with the code quality of the Amp PHP library recently. the v3 branch is 8.x only and (I believe) is targeting the Fibers feature just introduced in 8.1

    https://github.com/amphp/amp/tree/v3

  • Scout APM

    Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.

  • create-siler-app

    🧱 Set up a modern Siler app by running one command.

  • woocommerce-custom-orders-table

    Store WooCommerce order data in a custom table for improved performance.

  • Swoole

    🚀 Coroutine-based concurrency library for PHP

    > modern times to run php, people would use php-fpm with nginx, it is running multiple worker (single) process, so why would anyone [2], [3] wants multi-core coroutines in it? What does it even mean?

    Not everyone does. There's also https://reactphp.org (which is an event loop runtime, similar to Node), and https://amphp.org (also event loops), and Swoole https://github.com/swoole/swoole-src (coroutine runtime, similar to Go).

    Fibers are basically an API that event-loop runtime libs can use so that userland code doesn't need to use promises or generators to run non-blocking operations.

  • React

    Event-driven, non-blocking I/O with PHP.

    > modern times to run php, people would use php-fpm with nginx, it is running multiple worker (single) process, so why would anyone [2], [3] wants multi-core coroutines in it? What does it even mean?

    Not everyone does. There's also https://reactphp.org (which is an event loop runtime, similar to Node), and https://amphp.org (also event loops), and Swoole https://github.com/swoole/swoole-src (coroutine runtime, similar to Go).

    Fibers are basically an API that event-loop runtime libs can use so that userland code doesn't need to use promises or generators to run non-blocking operations.

  • phpmiko

    A netmiko implementation in php

    Not intended as a plug but you can even use php for network automation. I cobbled this together:

    https://github.com/epiecs/phpmiko for connecting to devices and https://github.com/epiecs/mikodo for inventories and concurrency

    The multi core coroutines comment is true but there are ways (to hack) around that.

    The way I solved concurrency is just by forking and using sockets:

  • SonarLint

    Deliver Cleaner and Safer Code - Right in Your IDE of Choice!. SonarLint is a free and open source IDE extension that identifies and catches bugs and vulnerabilities as you code, directly in the IDE. Install from your favorite IDE marketplace today.

  • mikodo

    Concurrent library on top of phpmiko. Speeds up the process of sending commands. Libraries are bundled (or planned) to be able to use different providers such as Nornir yaml files, PhpIpam, etc..

    Not intended as a plug but you can even use php for network automation. I cobbled this together:

    https://github.com/epiecs/phpmiko for connecting to devices and https://github.com/epiecs/mikodo for inventories and concurrency

    The multi core coroutines comment is true but there are ways (to hack) around that.

    The way I solved concurrency is just by forking and using sockets:

  • jigsaw

    Simple static sites with Laravel’s Blade.

    https://github.com/tighten/jigsaw/blob/main/src/Jigsaw.php

    I also would argue that the majority of code I see in other languages is equally or worse than the example you gave.

    You can write terribly in any language, Laravel included.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts