Google Chrome, Firefox, Caddy, and Apache now support a new HTTP status code: 103 Early Hints. Since version 6.3, Symfony also supports 103 responses, and FrankenPHP also supports it natively. This new, rather unusual type of response has a single objective: to speed up the loading time of your websites and applications by allowing the…
Tag: PHP
The PHP Revolution Is Underway: FrankenPHP 1.0 Beta
I’m very proud to announce the immediate availability of FrankenPHP 1.0 beta. FrankenPHP is a brand-new application server for PHP, written in Go and built on top of Caddy, that dramatically simplifies the deployment of PHP apps, and brings new features to PHP such as: FrankenPHP is available as a Docker image (Debian, Alpine, PHP…
6x faster Docker builds for Symfony and API Platform projects
Available translations: French At Les-Tilleuls.coop, we’re constantly striving to reduce the environmental footprint and hosting costs of the projects we work on (eco-design, GreenOps, and FinOps strategies…). We generally focus on optimizing production code and infrastructure, but the CI/CD pipelines used to build and deploy applications can also consume a lot of physical and financial…
Mitigate Attacks on your PHP Supply Chain
Here are the slides I presented at the AFUP Day Lille 2023 and the companion Pull Request on Composer: Abstract When you install a JavaScript library, it usually comes with hundreds of transitive dependencies, i.e. libraries that are installed as a side effect because they are essential to the operation of the library you want…
Symfony ImportMaps: Manage Your JavaScript Dependencies Without Node
View the recording of this talk (in French) View the Pull Request Yarn, NPM, pnpm, Babel, SWC, Webpack, TurboPack, Rollup, Parcel… Is it really necessary to introduce so much complexity to create a beautiful and interactive website? The Symfony UX initiative greatly simplified how to build frontend applications with Symfony by going back to the…
FrankenPHP: The Modern Php App Server, written in Go
Today I released FrankenPHP during the ForumPHP conference. FrankenPHP is a new app server for PHP apps (built on top of Caddy) and a library to embed the PHP interpreter in Go web servers. Key features: Learn more in this slide deck, on the website and on GitHub! SymfonyCon version: Recording of the talk (in…
Securely Access Private Git Repositories and Composer Packages in Docker Builds
When working on enterprise projects, it’s common to have to download private dependencies that require authentication to be installed (usually, internal or paid packages). In modern setups, you’ll most likely use Docker to package your application (or service) and all its dependencies into a standalone image. Typically, building the Docker image is automated through a…
Goroutines, threads, and thread IDs
If you attended AFUP Day 2022, you might know that I am currently working on a PHP module for web servers written in Go. While testing my upcoming library, I encountered strange memory access issues related to the threads created by the Go runtime (you know, cgo…). By default, the Go scheduler runs many goroutines…
JSON Columns and Doctrine DBAL 3 Upgrade
Version 3 of the popular Doctrine DBAL library has been released at the end of 2020, almost 10 years after the initial release of version 2. In September 2021, Doctrine ORM 2.10 added support for DBAL 3, while still supporting DBAL 2 at the same time. Versions prior to 2.10 aren’t compatible with DBAL 3….
Schema Generator 3: A Step Towards Redecentralizing the Web!
I just released API Platform Schema Generator version 3! It’s a command-line tool, part of the API Platform framework, that instantly generates a complete PHP data model (classes, enumerations, ORM mapping, validation rules, web API definitions, PHPDoc…) from RDF vocabularies and ontologies. RDF vocabularies are commonly used to define web-scale (Schema.org), industry-wide (The NASA Air…