Это старый вопрос, но ответы здесь не совсем то, что мне было нужно, но указали мне правильное направление. Мы хотели минимизировать код PHP прежде всего, чтобы сделать его более сложным для людей, которые действительно не знают, что они делают, чтобы связываться с кодом. Это ни в коем случае не является надежным и не остановит людей, которые знают, что они делают, от копирования вашего кода. В любом случае мы хотели иметь возможность запускать его как опцию из нашего процесса сборки, основанного на bash и perl. Эта команда найдет все файлы php и удалит пробелы и комментарии, используя php -w:
find . -name '*.php' -type f -exec sh -c 'php -w "${0%.*}.php" > "${0%.*}.cphp";
rm "${0%.*}.php"; mv "${0%.*}.cphp" "${0%.*}.php"' {} \;
разрыв строки добавлен для ясности, его следует вводить в одну строку.
Я не эксперт по оболочкам, поэтому, возможно, потребуется некоторая очистка, но мы используем ее, и она работает. Мы используем его только после того, как код был размещен на сервере, а не на фактическом источнике разработки.
Также обратите внимание, что поскольку он найден, доступны все виды параметров фильтрации, а также параметр -maxdepth, чтобы запретить его действие на подпапки.
По сути, это просто использование команды find и выполнение оболочки, которая преобразует php в новый файл, удаляет исходный файл и переименовывает новый файл в исходное имя.
Опять же, это следует использовать только после того, как код был развернут на тестовом сервере или в рабочей среде, но не в активном коде разработки.
Мы также делаем нечто подобное для файлов CSS и JS ...