I've run PHPCPD for longer than I want to admit in print. It does what it needs to, which is find the duplicated blocks someone (not me...) copied from one class into another when I they were in a hur...
In Part IX, we treated queues as real production infrastructure. Once asynchronous work is bounded and durable, the next weak point is often much closer to the request itself - the PHP runtime. by Wen...
We've talked about how neural networks make predictions through forward propagation, and how gradient descent helps them learn by adjusting weights. But we've been glossing over a crucial detail - how...
A few years back, this column took apart the Mersenne Twister algorithm. The lesson was blunt - watch 624 outputs and you own the generator's entire internal state. Output that looks perfectly random...
Hello friends, and welcome to the next installment of my Grumpy Testing Patterns series. In these articles, I am applying the same principles of "design patterns" to the subject of testing by identify...
Caching is the highest-leverage performance change you can make in most Laravel apps. It is also one of the easiest to get subtly wrong in ways that cause stale data, thundering herds, and impossible-...
This month, let's examine how to integrate Doctrine ORM 3.x into a standalone, non-Symfony PHP application, like our Spacetraders Web UI. We can let Doctrine ORM handle stock database queries for us s...
The application I work in every day started life as a ColdFusion app. It has been a PHP application for the last fifteen or sixteen years, and the Git history only goes back to 2010 because that is wh...
Clean Architecture organizes your code into distinct layers where dependencies always flow inward toward your business rules. This keeps your core logic independent of databases and web frameworks. Th...
Our Partners
Collaborating with industry leaders to bring you the best PHP resources and expertise