Solid mobile applications with our React Native boilerplate

Writing solid React Native applications just got easier with TheCodingMachine's boilerplate.

Written by Matthieu Napoli on 09/26/2018

Open-source matters

At TheCodingMachine, we are using open-source tools daily to build our projects. And since we and our clients are ripping huge benefits from these open-source products, we also try to "give back" to the open-source community.

Safe PHP: throwing exceptions instead of returning false

For historic reasons, the PHP core functions return false on failure instead of throwing exceptions. Let's see how we can fix this!

Written by David Négrier on 09/11/2018

Freelance Developer?

At TheCodingMachine, we are always looking for top freelance developers to work with us on our next state-of-the-art project.
Interested in developing quality projects? We love good work and we pay fairly.

Building a single-page application with Symfony 4, Vue.js, Vue Router, Vuex and axios

A complete tutorial for setting up a single-page application with Symfony 4, Vue.js, Vue Router, Vuex, and axios

Written by Julien Neuhart on 08/13/2018

Debugging PHP (web and cli) with Xdebug using Docker and PHPStorm

To follow this tutorial, you must have the Xdebug extension installed on your container. In my example, I will use a Docker image of TheCodingMachine created by David Négrier. If you are starting a project, I recommend you to download one of our images here TheCodingMachine Docker PHP images

Written by Alexis PREVOT on 07/26/2018

[TDBM 5] Coming out!

TDBM 5 is coming out. Discover a fresh approach to ORMs.

Written by David Négrier on 05/11/2018

Gotenberg, a stateless API for converting Markdown files, HTML files and Office documents to PDF

Or how to wrap useful libraries into a scalable API.

Written by Julien Neuhart on 04/12/2018

We are hiring!

Living in France? We are actively looking developers and project leaders in our Paris and Lyon office.

[PSR-11+] Discussing the scope of the service providers PSR... part 2

In this article, I'm trying (again!) to define the scope of the "put-things-in-a-container" PSR.

Written by David Négrier on 03/19/2018

About us

At TheCodingMachine, we strive to develop websites , extranets, intranets and business web applications in PHP and JavaScript for a wide range of clients.

Do not hesitate to contact us!

[PSR-11+] Discussing the scope of the service providers PSR

In this article, I'm trying to define the scope of the "put-things-in-a-container" PSR.

Written by David Négrier on 03/01/2018

Building the ultimate general purpose PHP image for Docker

In this article, I will explain why we decided to build "general purpose" PHP images for Docker, and what you can gain from using one of these images (spoiler alert: it's time).

Written by David Négrier on 02/13/2018

Continuous delivery with Gitlab, Docker and Traefik on a dedicated server

In this article, I will show how you can deploy your application using Docker and the continuous delivery options of Gitlab.

Written by David Négrier on 01/04/2018

Best practices

When writing code, we expect it to be of the best possible quality. To enforce this quality, we redacted our own "best practices" described in a dedicated website.

We are happy to share those with you!

Packanalyst

We are the happy parents of Packanalyst, a free online service that lets you search any possible PHP class or interface referenced on Packagist.

Pretty useful for open-source developer to keep an eye on who is using what class/interface of your packages.

Type hint all the things!

If you haven't seen the video yet, you can have a look at it on Laracast. At some point, the video advocates to remove the type-hints because they are not needed by the program and are "visually polluting" the code.I really could not disagree more with this statement, but others have reacted before

Written by David Négrier on 07/03/2017

A practical guide to continuous integration in PHP

When it comes to continuous integration, there are many solutions out there. Many open-source developers will be used to a stack made of GitHub, Travis, Scrutinizer and Coveralls. This stack is absolutely great, but is made of closed source tools. In this blog article, we will present a 100% open-so

Written by David Négrier on 03/02/2017

[PSR-11] An in-depth view at the Delegate lookup feature

In this article, we are diving into the details of the delegate lookup-feature of container-interop.

Written by David Négrier on 11/17/2016

[PSR-11+] An update on standard service providers

In my previous blog post, I talked about the different ways to build interoperable PHP modules. It turns out we have had quite a lot of very constructive feedback from many different sources. In this blog post, I'll keep you updated with everything that was said since my last article.

Written by David Négrier on 06/01/2016

[PSR-11+] An overview of interoperable PHP modules

A lot has been going on in the past months regarding the creation and standardization of interoperable PHP packages. We (the team behind container-interop) have been testing a lot of different solutions, and many of them have the potential to become a good standard. In this article, I'm taking a ste

Written by David Négrier on 04/04/2016

OptimisticSessionHandler: A new way to think PHP sessions

PHP sessions are not designed for websites that use AJAX heavily and have multiple concurrent requests. This article will explain how we get rid of this behaviour.

Written by Xavier Huberty on 01/15/2016

Interoperable PHP packages with definition-interop and Puli

Lately, I’ve been playing quite a lot with the notion of container definition interoperability.

Written by David Négrier on 12/15/2015

[PSR-11] Performance impact of the delegate lookup feature

Some people fear that running more than one container in their application will have a negative impact on performances. This article studies the impact on performance of using PHP-11's delegate lookup feature with a composite container.

Written by David Négrier on 09/09/2015

DefinitionInterface: Playing with PHP DI compiled containers interoperability

This article is about experimenting the possibility to standardize how we register things (usually services) into containers. More specifically, here, I'm targeting only containers that can be compiled.

Written by David Négrier on 09/03/2015

Triggering a PHP script when your Postfix server receives a mail

In this tutorial, we will see how to trigger a PHP script each time your web server is receiving some e-mails.Why would you want to do that? Well you could want to do that to develop a custom mailing list system, to archive your mail in database, trigger commands in your website by sending mails...

Written by David Négrier on 01/04/2012

Fixing Java memory leaks in Ubuntu 11.04 using jmap

When facing problems regarding memory consumption of a Java application, the JDK contains a number of useful tools to help you understand what is going on. You can get a list of the tools on this page.One of these tools is "jmap". Jmap will let you now (among other things) know what objects are usin

Written by David Négrier on 08/31/2011

Solving the "Too many open files" exception in Red5 (or any other application)

We have been running a Red5 server for quite some time, and as our application was getting more popular, we happened to see new errors we had never seen before. Actually, we saw a bunch of "Too many open files" exceptions in the logs, and most users could not connect anymore to our application.

Written by David Négrier on 06/27/2011

Setting up a XDebug debugging environment for PHP / WAMP / Eclipse PDT

In this article, we will step through all the steps required to enable debugging on your PHP environment.The setup we will use is: WAMP 2 with PHP 5.3, Eclipse Helios with PDT.

Written by David Négrier on 07/08/2010

Installing the PHP geolocalization extension on CentOS

Lately, I've had the need to install a geolocation database on a web server to localize (as closely as possible) a visitor based on its IP address.

Written by David Négrier on 06/07/2010