Alejandro Celaya | Blog

Software development, agile methodologies and open source software.

category Archive — "php"

— 2024 —

Capturing remote code coverage in E2E tests with PHPUnit

A couple of years ago I wrote about how to capture code coverage in API tests. In that article I explained the implications of code coverage collection when the code under test does not run in the same process as the test itself. However, the process explained there was a bit hacky and limited to AP…

— 2022 —

Capturing remote code coverage in API tests with PHPUnit

You can find an improved version of what's described here in Capturing remote code coverage in E2E tests with PHPUnit Capturing code coverage for a test suite is a very useful way to know which parts of your source code are actually getting executed by tests. This is useful not only to know if you…

— 2020 —

Considerations when working with async PHP runtimes like swoole

Asynchronous and non-blocking runtimes are pretty usual in many programming languages, as well as long-lived web apps that stay in memory and are capable of dispatching multiple HTTP requests without having to be fully bootstrapped every time. This has not been traditionally the case with PHP apps. …

— 2019 —

— 2018 —

Delay constructor execution by using ServiceManager lazy services

A couple years ago I wrote a post about how to improve PHP applications performance by using zend-servicemanager lazy services. In that article I explained how the ServiceManager takes advantage of the proxy design pattern to delay the creation of services, when they are marked as lazy. That can imp…

Demonstrating the interoperability and decoupling of Zend Expressive

I have written a lot of posts about Zend Framework in general and Zend Expressive in particular, but I have noticed that I have never talked about one of the things that, from my point of view, makes Expressive so game-changing, Interoperability. Some context In the past, PHP frameworks used to be v…

Mutation testing with infection in big PHP projects

There's no doubt that having tests in a project allows you to find potential bugs earlier and more easily. Lots of OSS projects require a minimum code coverage in order to accept new pull requests from contributors, and proprietary projects also tend to have some sort of continuous integration workf…

— 2017 —

AcMailer 7.0, the most important release in a long time

A couple of hours ago I have released the seventh major version of a module I created more than 4 years ago. It was born as an abstraction to send emails in Zend Framework 2 applications, but trying to make the process simpler than directly working with the lower-level zend/mail component. I initia…

Reusing factories in Zend ServiceManager

I think it is doubtless that modern PHP embraces SOLID principles, and therefore, dependency injection. That's why every modern PHP application needs a dependency injection container to deal with it. There are several options out there, depending on the way you like to work. Every container has a sl…


Older postsNewer posts