tl;dr Moving open source projects with no active development into maintenance mode helps to satisfy expectations of both maintainers and users.
Development activity in open source projects depends on the community
contributions and the commitment style of its authors/maintainers.
Eventually every open source software will reach a point, when the maintainers
are not able…
tl;dr Developers who use several PHP versions must ensure that CLI calls start subscripts in child processes with the desired version as well.
Using the PPA ondrej/php
it is possible to run multiple PHP version on one system.
All single versions are useable on the CLI, e.g. php7.4 --version.
The command php will point…
tl;dr How to manage access tokens for GitLab and GitHub in Composer on your local machine, stages and CI
When you have a private package stored on GitHub or GitLab you'll need to store
an access token in Composer to let Composer fetch the access protected package.
This post will show you how…
tl;dr Patchbot is a tool to automate the distribution of patches to your own Git repositories and helps to reduce technical debt.
Technical debt is a common problem in software development and just like
financial debt there may be
good or bad reasons
for it, but an accumulation of technical debt may lead…
tl;dr PaaS are great for rapid PHP app development, but not all are good fit for microservices.
In the recent years I did more and more DevOps work tasks instead of
purely PHP app development. I like to solve technical architectural challenges,
and I like to automate things. That's why I don't mind…
tl;dr I build myself a convenient and effectice setup to organize paperwork at home.
During the current COVID-19 pandemic I reviewed my personal setup to organize
paperwork at home. It is a combination hard- and software with allows me
handle this rather boring task in a convenient and effectice way.
Since I shared my…
tl;dr WaterPipe and Slim are effective request and response handlers for minimal PHP apps.
Most PHP applications I work with either need a powerful API framework
(like ♥️Symfony) or CMS (like ♥️TYPO3).
A minimal PHP app however, which needs to react to two or three endpoints only,
may not need more than a single…
tl;dr Badges are a pretty way to display concise project information in a README.
Badges are a pretty way to display concise information about a project. They consist of a small image showing a topic and a status message and optionally linking to further information. Like tags they written in lowercase.…
tl;dr ITS tools help a lot to collect and organize tasks - I share a shortlist of self-hosted solutions and what to consider when installing Redmine
To organize tasks and collect descriptions of errors and improvement requests
the implementation of an Issue-Tracking-System (ITS)
is a suitable option. ITS Software helps to
I created package with a standalone script to display a cookie consent
according to EU cookie law. During the collection of all requirements
I read about the cookie specifications written by the EU Commission.
The most obvious reason for…
tl;dr Guzzle is great package to send and receive JSON data from a RESTful web service.
Guzzle is powerful PHP HTTP client. It helps to send
HTTP requests and work with the responses by provding a readable
abstraction layer to the underlying HTTP transport.
The documentation is
extensive and even provides a Quickstart.
I consistently look…
tl;dr Use Git to deploy your app to Heroku and let the service provide the required server architecture automatically
Now and then, when I build a small PHP app, I catch myself spending much more
time on infrastructure tasks than on writing the actual code. Select a server,
set up the right PHP…
tl;dr It is easy to execute any bash script or external tool within PhpStorm to enhance development.
PhpStorm easens PHP development a lot
with out-of-the-box features like autocompletion, code analysis, quick
navigation to files & methods, visual debugging, and VCS & Composer support.
More than 1.000 plugins are available
to extend PhpStorm core functionality.
tl;dr I made a single-serving site to get a simple HTML5 template wherever I want to.
Whenever I need a valid HTML5 template on a machine I end up in crawling
trough a list of search results for about 3 to 5 minutes. Again and again.
Some blogs explain HTML5 in great detail,…
tl;dr Use the »path« type in Composer to handle monolithic Git repositories.
Composer is able to fetch packages from various sources, as long as these
packages are self-contained. Each package in a single VCS or ZIP-file.
This improves reusability and distribution of packaged code a lot. It is also
required to enable smart dependency…
tl;dr TYPO3 offers a simple API to create a flexible logging setup.
Developers may write a log file with just two lines of code,
and configure custom logging endpoints for individual classes.
Sometimes it is necessary to write logs in an extension. For example
if a script imports data periodically, the developer may want…
tl;dr Bulk compress images with Trimage and TinyPNG to speed up page requests.
Images usually have the largest share of the total size of webpages.
Compressing them will lead to a significantly lower document size and therefore
speed up the rendering of a website and saving the client's bandwith.
Most CMS offer some plugins…
tl;dr Use a cron and a shell script to backup a website hosted on uberspace automatically.
One of the most important things to set up in a website project is a
working backup strategy.
If the project is static, without any user input, then it is sufficient to
write a deployment script, which installs…
tl;dr I wrote a simple PHP script to test and use cURL while working with APIs.
curl is a command line tool and library to transfer
data with many different types of servers with many different types of protocols.
The most basic curl request is done with curl example.com which triggers
a HTTP request…
tl;dr I made a comprehensive cheat sheet for daily work with Git commands.
Git is super cool to use and I prefer the commandline over any GUI.
But some of the commands are confusing and non-descriptive.
For example git pull is a shortcut for git fetch && git merge.
But the shortcut for git…
tl;dr I have a set of aliases which speed up and simplify my daily workflow a lot.
Git offers to feature to add custom aliases. As I wrote in a
previous post about bash aliases, I like not
having to remember bulky commands.
The regular Git configuration file includes aliases. So in order to…
tl;dr My favourite bash aliases help me tremendously to shortcut commands I can't or don't want to remember.
A bash alias is a shortcut to avoid the need to type or remember other commands.
Instead of typing ls -alh to print a nicely readable list of files and
directories, you could create the…
tl;dr Write useful Git commit messages by following an appropriate message format.
Git requires messages for every commit. These are shown in the
Git log. So whenever it is necessary to
examine the history of a file, it is very painful if these messages don't
contain any useful information, as this requires diving into…