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

From: Morgan Willcock <[email-masked]>
Date: Thu, 13 Mar 2025 17:43:11 +0000

Eli Zaretskii <[email-masked]> writes:

>> 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?

Because in that case I can modify either search path or the value of the
variable to match where the (correct) PHP binary is.

I think that using the value "php" would work the in majority of cases
for the majority of people, and working around issues is already covered
by existing Emacs functionality.

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

This will have the same problems if connecting to two remote system
which are configured differently.

-- 
Morgan Willcock