Параметры вместо разных копий одной и той же программы для разных целей

Случается такое, когда в отдельном модуле надо повторить имеющийся функционал другой программы. В подобных случаях рекомендую не создавать много разных копий одного и того же файла (скрипта) для разных целей т.к. из-за этого сложнее поддерживать общий код, ибо исправления в одном и том же скрипте приходится делать в разных файлах, которые отличаются друг от друга незначительно. Для разного поведения скрипта есть параметры запуска, вот и их надо использовать.

Всё делать проще в одной программе (в одном файле скрипта). Использовать параметры (ключи) запуска, переданные параметры для задания различного поведения программы (скрипта), а не создавать много копий одной и той же программы (скрипта) с минимальным отличием в поведении.

Как передавать параметры? Для запуска через консоль параметры передаются в виде ключей:

handler.exe --parameter1 value1 --parameter2 value2

Для запуска скрипта через протоколы http/https параметры передаются в URL после знака вопроса и разделяются амперсандом:

http://site.loc/handler.php?parameter1=value1&parameter2=value2

В программе написанной на PHP через глобальный массив $_REQUEST можно получить все параметры вне зависимости от того каким образом была запущена программа.

В коде самого алгоритма проверяем переданные параметры и меняем поведение, если нужно:

if (!empty($_REQUEST["parameter1"])) {}

Такой единый продукт будет гораздо легче поддерживать, чем 2 отдельных.