Извините за запутанное название ....Несколько копий PHP-сайта с трюками: максимизировать повторное использование кода и минимизировать дублирование?
Мы разрабатываем приложение, которое будет использоваться несколькими компаниями. По большей части приложение одно и то же, ваш стандартный вид страниц манипулирования базами данных (страницы поиска, страницы редактирования и т. Д.), Настроенные для данных, для которых он предназначен.
Однако каждая компания имеет несколько иной процесс, и мы будем иметь дело непосредственно с каждой компанией, поэтому мы хотели бы использовать какую-то систему, которая позволит нам настраивать страницы в зависимости от того, какая компания просматривает страницу. Например, одна компания может потребовать пару дополнительных полей на странице ввода данных, или другая компания может захотеть просмотреть другую часть данных на экране результатов поиска и т. Д.
Я понимаю, что все это гипотетично, и я бы хотел, чтобы у меня был конкретный пример, чтобы дать вам, но, честно говоря, компании даже не дали нам очень хороших примеров. Мы просто хотим быть готовыми.
Итак, мой основной вопрос: Каков самый гибкий способ разрешить эти настройки и настройки для каждой компании? Очевидно, что наиболее гибким, но наименее удобным для программиста способом было бы сделать полную копию приложения для каждой компании. Это, очевидно, не вариант, потому что нам нужно будет управлять обновлением кода на всех сайтах, пытаясь сохранить их работоспособность и протестировать, а также проблемы, возникающие в результате настроенного кода.
Что вы думаете о Smarty, являетесь ли это решением? Возможно, если у нас есть мастер-набор шаблонов, но тогда каждая компания может иметь другую подпапку с любыми файлами замещающих шаблонов ... Конечно, нам все равно нужно обновлять кучу разных файлов шаблонов всякий раз, когда мы меняем один из них, но в любом случае это будет немного более локализованным.
Есть ли лучший способ? Может быть, какой-то механизм разностного шаблона, так что мы все равно можем редактировать исходные файлы, и изменения будут адаптироваться поверх оригиналов (вроде патча)? Или, возможно, мы должны использовать объектно-ориентированные функции PHP5, а затем использовать полиморфизм? Каково ваше лучшее предложение, и особенно если у вас был опыт такого рода вещей, какие варианты и какие вы использовали и почему?