Skip to content
7 changes: 6 additions & 1 deletion apps/cli/lib/native-php/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,12 @@ export function getDefaultPhpArgs(
'-d',
`zend_extension="${ path.join( getExtensionDir( phpVersion ), getXdebugFilename() ) }"`,
'-d',
'xdebug.mode=debug'
'xdebug.mode=debug',
// Override Xdebug's default `trigger` mode
// (https://xdebug.org/docs/all_settings#start_with_request):
// enabling Xdebug for a site means every request starts debugging.
'-d',
'xdebug.start_with_request=yes'
);
}

Expand Down
17 changes: 17 additions & 0 deletions apps/cli/lib/native-php/tests/config.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { describe, expect, it } from 'vitest';
import { getDefaultPhpArgs } from 'cli/lib/native-php/config';

describe( 'getDefaultPhpArgs', () => {
it( 'omits Xdebug directives by default', () => {
const args = getDefaultPhpArgs( '8.4' );

expect( args.join( ' ' ) ).not.toContain( 'xdebug' );
} );

it( 'starts an Xdebug session on every request when enabled', () => {
const args = getDefaultPhpArgs( '8.4', { enableXdebug: true } );

expect( args ).toContain( 'xdebug.mode=debug' );
expect( args ).toContain( 'xdebug.start_with_request=yes' );
} );
} );
Loading