Disable symfony deprecation warnings in PHPUnit tests

Symfony’s deprecation warnings while running tests is a great service to keep track with upcoming changes in newer symfony versions.
However these warnings can break your CI/CD pipeline and sometimes you cant fix all deprecation warnings immediatly.

To disable them you can set the ENV var
SYMFONY_DEPRECATIONS_HELPER=disabled
and the warnings will not be displayed anymore and CI/CD will pass again.
Update from comments:

SYMFONY_DEPRECATIONS_HELPER=weak
does also work and will still show the deprecation warnings count. (Thx Max)

Continue reading “Disable symfony deprecation warnings in PHPUnit tests”

mocking APIs with Guzzle

When working with APIs you sometimes cant use the live API in the tests.
Because you dont own the API, dont want to spam, cant create entities for testing or various other reasons.

Then you need to mock the API and deliever responses from fixtures.
Though there is this term of “Don’t mock what you don’t own” we will mock the API because we dont own it. :)

https://github.com/julienfalque/http-mock is a nice library which helps a lot when mocking an API.
And when your client is using Guzzle there is also a Guzzle handler for HttpMock that makes integration easy.

How does this work?
Continue reading “mocking APIs with Guzzle”

Symfony and Angular: shared translations

Angular for frontend with symfony delivering the data have become quite a common setup.

When working with this constellation you will sooner or later come across the i18n topic. Most likely you would want to share translations between front- and backend. So that you could keep translations in one single location while using it for frontend templates as well as server-side error messages etc.

One approach would be to store translations in the symfony yml or xml files and deliver those to the frontend via an api endpoint.
Given that front- and backend-code run on the same server, there is an even simpler solution.
Continue reading “Symfony and Angular: shared translations”

Symfony Cache Component with SncRedisBundle

Since version 3.1 there is a Cache component with a PSR-6 implementation integrated in Symfony.
So we do not need to add a 3rd party lib as Doctrine Cache anymore when we need caching these days.

Doctrine Cache does the job but by implementing a standard the Symfony Cache seems to have another advantage besides its delievered anyway. So i checked it out.

Documentation is still a bit sparse and the best resource so far is this blogpost:
https://symfony.com/blog/new-in-symfony-3-1-cache-component

I wont go into detail on how you use the Cache but rather how you integrate it with Redis, which is my favourite Cache backend.
Continue reading “Symfony Cache Component with SncRedisBundle”

Twig Extension for Money value object

I just released a twig extension for https://github.com/sebastianbergmann/money

The money libary contains a money represention based on the currency’s smallest unit to provide a more accurate handling. See the libary’s readme for more information.

Although the v1.x version of Money brings a Formatter the Twig extension uses its own, which is better suited and more flexible.

Continue reading “Twig Extension for Money value object”

Superleansilexplate Update v3

Some news from the Superleansilexplate:

  • v3 now uses symfony3 components
    Silex 1.3 supports symfony3 so lets use it :)
    Note: as symfony3 doesnt support php5.4 anymore, we dont either!
  • new ConsoleServiceProvider
    the one from knplabs that was used before seems to be unmaintained and wasnt matching the dependencies anymore.
    So i decided to take it over and renew it a bit. Check it out!
  • Docker support
    I started to use Docker as dev enviroment for my projects, so i added dev & prod Docker support.
    For the sake of simplicity it uses a single container with Apache and PHP7.
    If you have Docker and docker-compose on your machine just spin it up with docker-compose up and check on localhost:8088.

Continue reading “Superleansilexplate Update v3”

PHP package generators

For creating PHP packages several best practices has been established, like composer support (ofc) and putting the package on packagist, travis integration, directory organisation, tests, documentation and so on.
For further information i recommend these slides https://laravel-news.com/2015/08/hannes-van-de-vreken-package-development-slides/ which describe the situation very well.

And as we are all lazy, we like generators that scaffold a basic php package layout and luckily there are several out there.
They all differ a bit, so pick your favorite.
Continue reading “PHP package generators”