Если CMS достаточно модульный / расширяемый, чтобы вы могли писать свои собственные расширения без многих ограничений, я бы определенно пошел по этому пути. Подумайте о некоторых «неосновных» задачах, которые в противном случае вам пришлось бы выполнять самостоятельно:
- Управление пользователями (вход в систему, обработка забытых паролей, страницы пользователей и т. Д. - CMS обычно поставляется с «готовым к использованию»)
- Templating (CMS обычно обеспечивает хорошо зарекомендовавший себя шаблонизатор)
- «Окружающие» страницы (помимо ваших основных форм / страниц отчетов у вас, вероятно, будет довольно много других страниц, которые легко создавать / управлять ими с помощью CMS)
- Безопасность (Хорошая CMS предоставит вам множество API-интерфейсов, связанных с безопасностью, чтобы упростить предотвращение внедрения SQL, XSS и других проблем безопасности, например, при генерации и обработке форм)
- Абстракция базы данных (хорошая CMS должна обеспечить это для вас)
- Диспетчеризация на основе URL (хотите сами управлять своим URL-пространством?)
- и т.д.
В последнее время интенсивно работая с Drupal, я могу сказать, что он хорошо подходит для подобных вещей (за исключением определенного недостатка в абстракции базы данных, поскольку в настоящее время он поддерживает только MySQL и PostgreSQL).
Вы можете довольно быстро настроить стандартный сайт и сфокусировать свою пользовательскую разработку на своих основных задачах, создав один или несколько пользовательских модулей, которые выполняют все необходимые задачи сбора данных и составления отчетов.
Недостатком является, конечно, кривая обучения - вы должны думать о CMS как о структуре, подобной любой другой, которая будет действовать, изучая все входы и выходы.