Creating a PHP archive (phar)

Java has jar files. PHP has phar files. Those files are PHP projects packaged. You may know them through usages like composer or PHPUnit. But phar files were designed by taking into consideration the nature of PHP: the web. Therefore, we're going to try to show how to build a…

Test emails with Symfony

Symfony 4 brought us the awesome Mailer Component. Something that you may not know about it, is how to test if an email has been sent. This is something not well known, but actually easy! Let's see together how to do it with PHPUnit, but also with Behat - since…

How to get the real PHP memory usage on macOS

PHP provides the function memory_get_usage(), this is very helpful whenever you find your code using a lot of RAM. But this method has a significant limitation: it only counts memory used by your code directly and nothing out of the zend engine. The problem is that you may…

Simple strategy pattern with Symfony

The strategy pattern is a very easy implementation with the DIC from Symfony. Here is how: First let's define an interface for our strategies: namespace App\Domain\CustomProcess; interface MyStrategyInterface { public function execute(Whatever $input); public function supports(Whatever $input); }Then, we will add the tag app.my_strategy in…

Easy locks with Symfony

The Symfony documentation describes quite well how locks actually work, that's why this article will not describe why you should use a lock and how it actually works. But it says nothing about the short time installation it requires to set it up and run! Let's see that together. Install…