Несколько копий PHP-сайта с настройками: максимизировать повторное использование кода и минимизировать дублирование? - PullRequest
0 голосов
/ 22 января 2010

Извините за запутанный заголовок ....

Мы разрабатываем приложение, которое будет использоваться несколькими компаниями. По большей части, это то же самое приложение, ваш стандартный вид страниц манипулирования базой данных (страницы поиска, страницы редактирования и т. Д.), Настроенный для данных, для которых он предназначен.

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

Я понимаю, что это все гипотетически, и мне хотелось бы привести конкретный пример, но, честно говоря, компании даже не дали нам очень хороших примеров. Мы просто хотим быть готовыми.

Итак, мой основной вопрос: Какой самый гибкий способ учесть эти настройки и индивидуальные настройки для каждой компании? Очевидно, что самым гибким, но наименее дружественным для программиста способом было бы сделать полная копия приложения для каждой компании. Это, очевидно, не вариант, потому что нам нужно управлять обновлением кода на всех сайтах, пытаться поддерживать их работу и тестирование, а также иметь проблемы, возникающие из-за измененного кода.

Что вы думаете о том, чтобы Smarty был решением этой проблемы? Возможно, если у нас есть основной набор шаблонов, но тогда у каждой компании может быть отдельная подпапка с любыми заменяемыми файлами шаблонов ... Конечно, нам все равно нужно обновлять кучу разных файлов шаблонов всякий раз, когда мы меняем один из них, но в любом случае он будет немного более локализован.

Есть ли лучший способ? Может быть, это какой-то механизм разностных шаблонов, так что мы все еще можем редактировать исходные файлы, и изменения будут адаптироваться поверх оригиналов (вроде как патч)? Или, возможно, нам следует использовать объектно-ориентированные возможности PHP5, а затем использовать полиморфизм? Каково ваше лучшее предложение, особенно если у вас есть опыт работы с подобными вещами, какие варианты и какие вы использовали и почему?

Ответы [ 2 ]

1 голос
/ 22 января 2010

Я бы посоветовал вам попытаться создать приложение, используя mvc framework или используя собственную реализацию mvc .

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

1 голос
/ 22 января 2010

Думаю, шаблонный шаблон очень вам поможет. Это действительно отличный шаблон для факторинга, который в основном одинаков, но отличается в нескольких местах. На самом деле я сейчас разрабатываю иерархию шаблонных методов для своего собственного проекта.

...