Как реализовать PHP class распределения задач? Сразу обозначу, что только начал кодить в стиле MVC используя при этом ООП. На данный момент встала задача написать класс, который можно использовать для распределения задач (задачи - что-то аля тикетов для сотрудников, например). Хотелось бы понять правильно ли я мыслю и вообще понимаю ООП-ый синтаксис в PHP. class swich_task {
// Массив исполнители
private static $_arr_users_skil;
// функция установки значений массив выше public static function set_arr_u($arr_u) {
}
// функция public static function switch($arr_task, $arr_users) {
} } Суть такая: 1) установил массив значений $arr_skill[user_id][id_skill]=0/1; (умения пользователей) Понятное дело, что эти данные редко меняются, установил и забыл. 2) Вызвал метод switch засунул туда Два массива (типа первого) только там другие данные: (id_user/query_lenght) и (id_task/id_skill). Метод получил эти два массива с ID пользователя + длинна очереди, в каких-то еденицах и ID задания + ID типа задания. А на выход выдал массив ID_TASK/ID_USER, выбрав юзера у котрого меньше всего навыков и самая короткая очередь, ну и разумеется он вообще имеет ID такого навыка. Ну это не полный функционал, а идея исполнения. Меня лично не покидает мысль, что я просто продолжаю кодить функционально, просто сгруппировал функции в классе. Вопрос: как решить эту задачу используя "всю мощь ООП"? Конкретная реализация методов не интересует, т.е. function useradd($id_user) { // берет переменную / массив и делает с ней что-то там } Более чем достаточно))
Для реализации данной задачи с помощью ООП вам необходимо создать несколько классов. Можно начать с создания класса User, который будет представлять пользователя с его навыками и очередью задач. Затем создайте класс Task, который будет представлять задачу с определенным навыком.
Далее создайте класс TaskDistribution, который будет отвечать за распределение задач пользователям на основе их навыков и очереди. У этого класса может быть метод distributeTasks, который принимает массив пользователей и массив задач, и возвращает массив с распределенными задачами пользователям.
Примерно таким образом можно использовать "всю мощь ООП" для решения данной задачи. Каждый класс будет отвечать за свою функциональность и будет иметь методы для работы с данными и их обработки. В итоге вы получите более структурированный и расширяемый код, который будет удобно поддерживать и дорабатывать в дальнейшем.
Для реализации данной задачи с помощью ООП вам необходимо создать несколько классов. Можно начать с создания класса User, который будет представлять пользователя с его навыками и очередью задач. Затем создайте класс Task, который будет представлять задачу с определенным навыком.
Далее создайте класс TaskDistribution, который будет отвечать за распределение задач пользователям на основе их навыков и очереди. У этого класса может быть метод distributeTasks, который принимает массив пользователей и массив задач, и возвращает массив с распределенными задачами пользователям.
Примерно таким образом можно использовать "всю мощь ООП" для решения данной задачи. Каждый класс будет отвечать за свою функциональность и будет иметь методы для работы с данными и их обработки. В итоге вы получите более структурированный и расширяемый код, который будет удобно поддерживать и дорабатывать в дальнейшем.