Subject: bug#76955: 30.1; php-ts-mode-php-executable default path may not match remote path

From: Eli Zaretskii <[email-masked]>
Date: Thu, 13 Mar 2025 19:17:24 +0200

> From: Morgan Willcock <[email-masked]>
> Cc: Eli Zaretskii <[email-masked]>,  [email-masked]
> Date: Thu, 13 Mar 2025 16:45:04 +0000
> 
> Vincenzo Pupillo <[email-masked]> writes:
> 
> > In data giovedì 13 marzo 2025 15:25:57 Ora standard dell’Europa centrale, Eli
> > Zaretskii ha scritto:
> >> > From: Vincenzo Pupillo <[email-masked]>
> >> > Cc: [email-masked]
> >> > Date: Thu, 13 Mar 2025 11:17:11 +0100
> >> >
> >> > Ciao,
> >> >
> >> > 'php-ts-mode-php-executable' it's used for 'php-ts-mode-flymake-php',
> >> > 'run-php' and 'php-ts-mode-run-php-webserver'.
> >>
> >> Then please consider the solution proposed below.
> >>
> >> > @Morgan: Will setting the executable path to "php" work in your scenario?
> >> > Of the functions listed above, which one do you usually use?
> >>
> >> Customizing the value is an okay solution, but we are discussing how
> >> to solve this for users that don't customize.
> >>
> >> How about the following solution:
> >>
> >>  . we replace references to php-ts-mode-php-executable with a call to
> >>    a function
> >>  . that function will do something like
> >>
> >>    (let ((php-prog (if (file-remote-p default-directory)
> >>                        (executable-find "php" t)
> >> 		     php-ts-mode-php-executable)))
> >>      php-prog)
> >>
> >> WDYT?
> > Yes, that's fine. Maybe we should also rename 'php-ts-mode-php-executable',
> > something like 'php-ts-mode-php-default-executable'. It seems to me that it
> > might not be clear that this value would not be used if the file was remote.
> 
> Wouldn't this approach make it impossible to override the value for the
> remote system if the wrong PHP binary is found by executable-find?

If executable-find fails to find the PHP binary on the remote host,
how can using "php" which you suggested do any better?

But if we want to allow customization of remote PHP executable, we
could introduce another defcustom.