Skip to content

dump() or dd() being sent to stdout instead of browser #846

@zerowebcorp

Description

@zerowebcorp

What happened?

I have upgraded my symfony 7.3 project to use the FROM dunglas/frankenphp:1-php8.4 container from 8.3.
While continuing to develop my project, I noticed that when I do dd("hello") it is being sent to stdout as html. Previously it was being sent to the browser.

I also noticed that from this version, Frankenphp in dev is running as worker mode whereas previous version wasn't.

root@77c6583aac23:/app# frankenphp -v
FrankenPHP v1.9.1 PHP 8.4.12 Caddy v2.10.2 h1:g/gTYjGMD0dec+UgMw8SnfmJ3I9+M2TdvoRL/Ovu6U8=
root@77c6583aac23:/app#

Is there anything I can do to fix this?

root@77c6583aac23:/app# cd /etc/frankenphp/
root@77c6583aac23:/etc/frankenphp# ls
Caddyfile
root@77c6583aac23:/etc/frankenphp# cat Caddyfile
{
        skip_install_trust

        {$CADDY_GLOBAL_OPTIONS}

        frankenphp {
                {$FRANKENPHP_CONFIG}

                worker {
                        file ./public/index.php
                        env APP_RUNTIME Runtime\FrankenPhpSymfony\Runtime
                        {$FRANKENPHP_WORKER_CONFIG}
                }
        }
}

{$CADDY_EXTRA_CONFIG}

{$SERVER_NAME:localhost} {
        log {
                {$CADDY_SERVER_LOG_OPTIONS}
                # Redact the authorization query parameter that can be set by Mercure
                format filter {
                        request>uri query {
                                replace authorization REDACTED
                        }
                }
        }

        root /app/public
        encode zstd br gzip

        mercure {
                # Publisher JWT key
                publisher_jwt {env.MERCURE_PUBLISHER_JWT_KEY} {env.MERCURE_PUBLISHER_JWT_ALG}
                # Subscriber JWT key
                subscriber_jwt {env.MERCURE_SUBSCRIBER_JWT_KEY} {env.MERCURE_SUBSCRIBER_JWT_ALG}
                # Allow anonymous subscribers (double-check that it's what you want)
                anonymous
                # Enable the subscription API (double-check that it's what you want)
                subscriptions
                # Extra directives
                {$MERCURE_EXTRA_DIRECTIVES}
        }

        vulcain

        {$CADDY_SERVER_EXTRA_DIRECTIVES}

        # Disable Topics tracking if not enabled explicitly: https://github.com/jkarlin/topics
        header ?Permissions-Policy "browsing-topics=()"

        @phpRoute {
                not path /.well-known/mercure*
                not file {path}
        }
        rewrite @phpRoute index.php

        @frontController path index.php
        php @frontController

        file_server {
                hide *.php
        }
}
root@77c6583aac23:/etc/frankenphp# printenv FRANKENPHP_WORKER_CONFIG
watch
root@77c6583aac23:/etc/frankenphp#

Build Type

Docker (Debian Trixie)

Worker Mode

Yes

Operating System

GNU/Linux

CPU Architecture

x86_64

PHP configuration

PHP logo
PHP Version 8.4.12
System	Linux 77c6583aac23 6.6.87.1-microsoft-standard-WSL2 #1 SMP PREEMPT_DYNAMIC Mon Apr 21 17:08:54 UTC 2025 x86_64
Build Date	Aug 28 2025 18:15:48
Build System	Linux - Docker
Build Provider	https://github.com/docker-library/php
Configure Command	'./configure' '--build=x86_64-linux-gnu' '--with-config-file-path=/usr/local/etc/php' '--with-config-file-scan-dir=/usr/local/etc/php/conf.d' '--enable-option-checking=fatal' '--with-mhash' '--with-pic' '--enable-mbstring' '--enable-mysqlnd' '--with-password-argon2' '--with-sodium=shared' '--with-pdo-sqlite=/usr' '--with-sqlite3=/usr' '--with-curl' '--with-iconv' '--with-openssl' '--with-readline' '--with-zlib' '--enable-phpdbg' '--enable-phpdbg-readline' '--with-pear' '--with-libdir=lib/x86_64-linux-gnu' '--enable-embed' '--enable-zts' '--disable-zend-signals' 'build_alias=x86_64-linux-gnu' 'PHP_UNAME=Linux - Docker' 'PHP_BUILD_PROVIDER=https://github.com/docker-library/php'
Server API	FrankenPHP
Virtual Directory Support	enabled
Configuration File (php.ini) Path	/usr/local/etc/php
Loaded Configuration File	/usr/local/etc/php/php.ini
Scan this dir for additional .ini files	:/usr/local/etc/php/app.conf.d
Additional .ini files parsed	/usr/local/etc/php/conf.d/docker-php-ext-apcu.ini, /usr/local/etc/php/conf.d/docker-php-ext-gd.ini, /usr/local/etc/php/conf.d/docker-php-ext-igbinary.ini, /usr/local/etc/php/conf.d/docker-php-ext-intl.ini, /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini, /usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini, /usr/local/etc/php/conf.d/docker-php-ext-redis.ini, /usr/local/etc/php/conf.d/docker-php-ext-soap.ini, /usr/local/etc/php/conf.d/docker-php-ext-sodium.ini, /usr/local/etc/php/conf.d/docker-php-ext-zip.ini, /usr/local/etc/php/app.conf.d/10-app.ini, /usr/local/etc/php/app.conf.d/20-app.dev.ini
PHP API	20240924
PHP Extension	20240924
Zend Extension	420240924
Zend Extension Build	API420240924,TS
PHP Extension Build	API20240924,TS
PHP Integer Size	64 bits
Debug Build	no
Thread Safety	enabled
Thread API	POSIX Threads
Zend Signal Handling	disabled
Zend Memory Manager	enabled
Zend Multibyte Support	provided by mbstring
Zend Max Execution Timers	enabled
IPv6 Support	enabled
DTrace Support	disabled
Registered PHP Streams	https, ftps, compress.zlib, php, file, glob, data, http, ftp, phar, zip
Registered Stream Socket Transports	tcp, udp, unix, udg, ssl, tls, tlsv1.0, tlsv1.1, tlsv1.2, tlsv1.3
Registered Stream Filters	zlib.*, convert.iconv.*, string.rot13, string.toupper, string.tolower, convert.*, consumed, dechunk

Relevant log output

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions