В-третьих, помимо баз данных, KPHP много чего не умеет, что опять-таки не нужно было ВК. Запуск процессов, парсинг XML и прочее. Мы были на связи с разработчиками компилятора. Что-то они добавляли, что-то фиксили, где-то мы вставляли костыли и подпорки. Иногда падало, иногда работало по-другому. Почти всему находилось объяснение, почти всегда дело было в нашем коде. Месяца два мы были в состоянии “почти-почти”, казалось бы вот ещё исправить и заработает, но нет, что-то находилось ещё, а потом ещё и ещё. И это когда тебя бизнес каждую неделю пингует — нучотам, когда коробка?
Спасибо за то, что поделились крутым опытом. Тоже присматриваемся к KPHP для создания коробочных версий из SaaS и думаем над технической защитой кода.
Что касается защиты кода, то видим смысл защищать только код PHP. Всякие картинки, стили, скрипты - не видим смысла, потому что веб-ресурсы открытые.
Чтобы сократить возможные трудности по переходу с PHP на KPHP, мы тупо сокращаем объем PHP-кода по следующей стратегии:
1. Фронтенд пытаемся сделать максимально независимым от бекенда. Считайте, UI просто принимает на вход данные в формате JSON. Никакого SSR. Где можно, там SPA.
2. Обмен данными с сервером - RPC. Так нам проще контролировать.
3. На бекенде код PHP изначально пишется с указанием типов.
Мне кажется, что в вашем проекте вы были сильно завязаны на бекенд. Собственно поэтому вам и пришлось столкнуться с проблемой перелопачивания огромного объема кода, который необходимо было привести к строгой типизации.
Кстати, вы упаковываете только сервер в коробку? Браузер в нее не добавляете?
У нас была миграция на React/JSL с XSLT в 2020 году примерно. Это тоже было больно, но реальных шаблонов на PHP у нас никогда не было. Поэтому миграция была простой. После миграции на PHP/JSL всё приложение стало SPA и миграция в KPHP стала доступной (ввиду отсутствия LIBXML внтури).
Упаковка картинок и скриптов внутрь кода повышает скорость их отдачи, и уменьшает вероятность нарушения целостности при обновлениях и разных размещениях.
Бек у нас умный, много вычислений, предвычислений, то есть это не тупая прослойка в базе, поэтому его много.
Старый код у нас был еще под PHP4 написан, в технической статье (внизу ссылка) детали раскрыты. Поэтому на типизации мы огребли сильно. Но сейчас конечно сразу проверка идёт по типам потому что сборка выполняется.
По KPHP есть чатик в телеграмме https://t.me/kphp_chat там даже есть и отвечают на вопросы , а если из Петербурга, то можно даже с ними встретиться!
Очень интересно, спасибо что поделились опытом.
Прочитав название, вспомнился продукт от Гевина Бэлсона - the Box)) https://www.youtube.com/watch?v=OSZOf9pyepc
Кажется это будет все более и более актуально. Переходить из облака в серверные решения внутри предприятия.
С названием у нас длинная история. Был "Бизнес Пульс " (чтобы держать руку на пульсе бизнеса) при перезапуске в 2015 году сменили на BI PULSE , потом убрали пробел. Потом отделили Методику от системы https://pulsemanagement.org/ сейчас система начала отставать от Методики.
Так а как защищаетесь от того, что клиент тупо виртуалки накопирует для всех своих друзей? Если там что-то типа запроса на центральный сервер каждые 5 минут для валидации ключа, то чем это лучше облака для клиента (что так, что так, все может превратиться в тыкву)?
Сервер пока не спрашиваем, но привязка есть к железу. Так как решение корпоративное, то "накопирует для друзей" маловероятно, но даже если и так, то значит пойдем по пути Windows %))