Adminer for Sqlite in Docker

Recently i wanted to use Sqlite with Adminer in Docker and it turned out to be not so easy.
I actually thought i could just declare Adminer in a docker-compose.yml file with a volume mounted, similar as i would do for adminer with mysql.

But since Adminer is a popular hacking target they introduced a feature that does not allow to run adminer without a password, out of the box.
Sqlite database usually runs without password and dang, workaround needed!

Continue reading “Adminer for Sqlite in Docker”

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
and the warnings will not be displayed anymore and CI/CD will pass again.
Update from comments:

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

Continue reading “Disable symfony deprecation warnings in PHPUnit tests”

Directories settings in PHPStorm and IntelliJ Ultimate

I recently switched from PHPStorm to IntelliJ Ultimate because of some Java. But still i am working a lot on PHP and symfony projects.

One thing i usually do on symfony projects in PHPStorm is to edit the “Directories” in the settings to avoid having results from var/cache or var/logs in the search results.

Also it slows down the search which i heavily use. So i exlude all folders that should not be searched because they are cache files or are redundant in some other way.

Continue reading “Directories settings in PHPStorm and IntelliJ Ultimate”

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. :) 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”

Not allowed to connect to Mysql error in docker

From time to time i receive this error while running the official mysql image in docker:

An exception occured in driver: SQLSTATE[HY000] [1130] Host ‘’ is
not allowed to connect to this MySQL server

The reason for this is not quite clear yet but i usually resolve it like described here.
Note that all data stored in the project will be lost!
So this error is quite annyoing but luckily i work on fixtures so i can restore data easily.
These steps let me connect to the mysql container again, at least.

Continue reading “Not allowed to connect to Mysql error in docker”

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:

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”

SilverStripe with php built-in server

Sometimes you just want to check a SilverStripe version, module or theme fast and dont want to setup the whole stack.
Then simply use PHPs built-in webserver to serve your SilverStripe site.

php -S localhost:8000 ./framework/main.php

Now you can call http://localhost:8000 to check your SilverStripe website.

Or, a bit more verbose, use
which is a nice wrapper around this.
Continue reading “SilverStripe with php built-in server”