@dunglas@mastodon.social
@dunglas@mastodon.social avatar

dunglas

@dunglas@mastodon.social

Founder of https://mastodon.online/@cooptilleuls, a tech worker cooperative. Free Software creator: https://fosstodon.org/@ApiPlatform, Mercure, Vulcain, FrankenPHP, various Symfony components…

This profile is from a federated server and may be incomplete. Browse more on the original instance.

dunglas, to random
@dunglas@mastodon.social avatar

Thanks for sponsoring me @sweikenb!

dunglas, to random
@dunglas@mastodon.social avatar

I've submitted 3 proposals for @afup's . Send yours and rate the others!

https://afup.org/event/forumphp2024?_locale=en

dunglas, to random
@dunglas@mastodon.social avatar

🌞 Mercure 0.16 is out! This version adds support for JSON Web Key Set (OIDC/Keycloak/Auth0/... integration) and @caddyserver 2.8!

https://github.com/dunglas/mercure/releases/tag/v0.16.0

dunglas, to random French
@dunglas@mastodon.social avatar

FrankenPHP at the top of the Hacker News homepage 😎

dunglas, to random
@dunglas@mastodon.social avatar

🐳 Here's a compilation of tips and tricks about PHP application dockerization that I've compiled over a few years of maintaining open-source projects!

Slides from my talk at @afup Day Lille.

https://dunglas.dev/2024/05/containerization-tips-and-tricks-for-php-apps/

ramsey, to Kubernetes
@ramsey@phpc.social avatar

I’m interested in running #FrankenPHP (i.e., #Caddy) as the app server for a website. The website has multiple domains pointing to it, and I plan to run this in a #Kubernetes cluster. Can someone point to any docs or blog posts that show how others have set up similar configurations with Caddy or FrankenPHP, especially with regard to how Caddy magically configures HTTPS for the domains in this kind of setup?

dunglas,
@dunglas@mastodon.social avatar

@ramsey to do so, you’ll have to either expose Caddy using a K8s Load Balancer, or to use Caddy/FrankenPHP as a K8s ingress controller (https://github.com/caddyserver/ingress).

Another option is to let your existing ingress controller do the TLS termination (you can use projects cert-manager to automatically manage the certificates, and many cloud ingresses also have native support Let’s Enctypt or automatic cert generation).

dunglas, to random
@dunglas@mastodon.social avatar

Tomorrow at @afup Day Lille I'll be presenting a series of tips and tricks on containerizing PHP applications, collected over nearly 10 years of work on the subject!

dunglas, to random
@dunglas@mastodon.social avatar

The lineup for this year's API Platform Con is insane: specialists in APIs, PHP, and JavaScript, creators of popular open-source software, trainers, streamers...

On September 19 and 20, Lille is the place to be 🤩

https://api-platform.com/con/2024/

dunglas, (edited ) to random
@dunglas@mastodon.social avatar

FrankenPHP 1.1.5 is now available! Many new extensions such as parallel, imagick, gmp, ssh2, protobuf, and many others are now included in the static binary. And, as usual, a few bugs have been fixed! https://github.com/dunglas/frankenphp/releases/tag/v1.1.5

dunglas, to random French
@dunglas@mastodon.social avatar

FrankenPHP support in Laravel Octane is out of beta! (teamwork with Nuno Maduro 🤝).

https://github.com/laravel/octane/releases/tag/v2.3.10

dunglas, to Laravel
@dunglas@mastodon.social avatar

Yesterday I learned that it's possible to change the path where #Laravel apps store uploaded files, caches, logs, etc thanks to the LARAVEL_STORAGE_PATH env var. This is super convenient when distributing apps as standalone binaries using FrankenPHP.

https://github.com/laravel/framework/pull/51243

dunglas, to random
@dunglas@mastodon.social avatar

Serve a PHP app behind a reverse proxy using FrankenPHP, the Proxy Protocol, or trusted headers: https://github.com/dunglas/frankenphp/discussions/718#discussioncomment-9250960

dunglas, to random
@dunglas@mastodon.social avatar

The Caddy rate limit module of the great Matt Holt now supports request matching rules with the Caddyfile format ⚡️

https://github.com/mholt/caddy-ratelimit/pull/45

dunglas, (edited ) to Symfony
@dunglas@mastodon.social avatar

Big day for ! A new version containing many static binaries-related fixes and improvements has been released (mimalloc support, autodetection of needed PHP extensions...).

https://github.com/dunglas/frankenphp/releases/tag/v1.1.3

Also, the long-standing "MySQL has gone away" issue when running apps in worker mode has been fixed by Allison Guilhem 🎉

https://github.com/symfony/symfony/pull/53214

dunglas, (edited ) to php
@dunglas@mastodon.social avatar

🧙 @arnaud_lb has crafted a patch for that improves performance when using @ApiPlatform by 20% with GNU libc and 40% with musl (Alpine Linux). What a wizard!
Of course, this will also benefit many other projects.

https://github.com/php/php-src/pull/13974

dunglas, to random French
@dunglas@mastodon.social avatar

Are you using in production? Please let us know!

dunglas,
@dunglas@mastodon.social avatar

@Skoop Nice! Thanks. Could you share the name of the project or could we use the name of your company in the reference list we are creating?

dunglas,
@dunglas@mastodon.social avatar

@shochdoerfer @bitexpert great! would you be able to share the names of the customers? We’re gathering a user list.

dunglas, to random
@dunglas@mastodon.social avatar

Thanks to , @withinboredom and I discover (and sometimes fix) many bugs in @php itself! Free software FTW. https://github.com/php/php-src/pull/13942

dunglas, to random
@dunglas@mastodon.social avatar

The latest versions of Chromium-based browsers now support Zstandard compression by default. This means that all your websites using Caddy or FrankenPHP are served using this state-of-the-art compression format for users of Chrome, Edge, and Opera 🎉.

dunglas, to random
@dunglas@mastodon.social avatar

Don't miss on June 27 in Paris. The lineup is top-notch! 😎

dunglas, to random French
@dunglas@mastodon.social avatar

FrankenPHP will soon be able to automatically detect the extensions to build for PHP apps packaged as standalone binaries. To do so, we use Composer of course! https://github.com/dunglas/frankenphp/pull/717

dgoosens, (edited ) to php
@dgoosens@phpc.social avatar

OK... here is a question ( but other communities are welcome to comment.

When building a decoupled app, do you consider the usage of something like
ClassWithAnnoyingName::class
(not to call the class, but to reference the name as a string and to simply avoid to type it out) as coupling?

IMHO, it is not

  • it is very trivial to replace with its string value if needed
  • it greatly improves DX
  • it greatly reduces errors because of typos

But what do you think ? And why ?

dunglas,
@dunglas@mastodon.social avatar

@dgoosens my 2 cents: it's ok in an application, but probably a sign of the lack of an extension point to do control inversion in a library.

dunglas, to random French
@dunglas@mastodon.social avatar

X-Sendfile/X-Accel-Redirect support is coming to and all Caddy modules! https://github.com/caddyserver/caddy/pull/6232

dunglas, (edited ) to php
@dunglas@mastodon.social avatar

Tonight at the @afup meetup, I'll be explaining how to debug the most bizarre problems in your applications. I'll take the opportunity to explain in an accessible way (I hope) how the execution engine of the venerable language that powers the web works.

Case in point: I'll show you how to use these techniques to find and fix a bug in... a debugger (in this case, Xdebug).

No need to know C (or even PHP) to attend this live coding session!

https://www.meetup.com/afup-hauts-de-france-php/events/300011985/

dunglas,
@dunglas@mastodon.social avatar

@derickr @afup Unfortunately, this will not be recorded, but I will likely submit a longer version of this presentation at a conference.

About Xdebug, I'll mostly explain step by step how - with your help (thanks!!) - we crafted this patch: https://github.com/xdebug/xdebug/pull/958

  • All
  • Subscribed
  • Moderated
  • Favorites
  • anitta
  • thenastyranch
  • rosin
  • GTA5RPClips
  • osvaldo12
  • love
  • Youngstown
  • slotface
  • khanakhh
  • everett
  • kavyap
  • mdbf
  • DreamBathrooms
  • ngwrru68w68
  • megavids
  • magazineikmin
  • InstantRegret
  • normalnudes
  • tacticalgear
  • cubers
  • ethstaker
  • modclub
  • cisconetworking
  • Durango
  • provamag3
  • tester
  • Leos
  • JUstTest
  • All magazines