Лучший способ - запустить «другое приложение» в качестве демона в фоновом режиме и обмениваться данными с ним через сокет (tcp, unix, ..).
Это может быть сделано довольно легко, если вы действительно разрабатываете консольное приложение. Если вы этого не сделаете, а это приложение только для чтения / записи из stdin / stdout, вы можете создать какой-нибудь другой процесс контроллера, который выставит эти два канала ввода / вывода в сокет.
Первой идеей, которую я настаиваю на этом, будет сценарий Python, использующий модуль subprocess
для запуска другого процесса в фоновом режиме и последующей связи с ним. Затем заставьте скрипт Python открыть сокет для диалога с приложением PHP (конечно, вы должны быть в состоянии сделать это на вашем любимом языке. Мой - это Python:)).