В настоящее время я работаю с коммерческим проектом на PHP. Я думаю, что этот вопрос не относится к PHP для всех языков программирования, просто хочу обсудить, как ваши ребята решают его.
Я работаю в среде MVC (CodeIgniter).
весь код транзакции базы данных в классе модели.
Раньше я разделял разные критерии поиска с разными именами функций.
Просто пример
function get_student_detail_by_ID($id){}
function get_student_detail_by_name($name){}
как вы можете видеть, что функция действительно может слиться с одной, просто добавьте параметр для нее. Но что-то, что вы спешите с проектом, вы не будете оглядываться назад, ранее получили, что аналогичные функции просто внести некоторые изменения могут достичь цели. В этом случае мы обнаружили, что там много функций и их сложно обслуживать.
В последнее время мы пытаемся сгруппировать сущность в один конечный поиск
как то так
function get_ResList($is_row_count=FALSE, $record_start=0, $arr_search_criteria='', $paging_limit=20, $orderby='name', $sortdir='ASC')
мы пытаемся сделать эту функцию соответствующей всем критериям поиска. Однако наша система становится все больше и больше, критерии поиска не более 1-2 таблиц. Это требует объединения с другим столом с другим назначением.
Мы использовали IF ELSE,
if(bla bla bla)
{
$sql_join = JOIN_SOME_TABLE;
$sql_where = CONDITION;
}
в конце мы обнаружили, что очень трудно поддерживать функцию. это также очень трудно отлаживать.
Я хотел бы спросить ваше мнение, какое коммерческое решение они решают, такого рода проблемы, как определить функцию и как ее пересмотреть. Я думаю, что это навык управления проектами связи. Надеюсь, что вы готовы поделиться с нами.
Спасибо.