korpus
злой бобёр
Помогите разработать архитектуру класса или по крайней мере дайте совет как лучше делать надо в таких случаях.
Есть задача: получить данные от пользователя, сделать XML-документ, с помощью курла отправить его на сервер, получить в ответ другой xml-документ, распарсить его и вывести результат в браузер, создав для этого пейджинацию.
Для удобства использования, я считаю, что надо поместить всю логику в один класс. Так просто, т.к. не нужно подключать отдельные классы, а нужно подключить только отдельный файл пускай и с большим классом.
Теперь в $result у меня в результатах содержатся данные, которые я могу обработать и вывести в браузер
По хорошему так делать не надо, т.к. это будет очень сложный класс. Преимущества помещения всей логики в один класс я вижу в том, что мне нет необходимости использовать отдельно модули, отвечающие за а) создание xml-документа, б) отправки запроса с помощью curl, в) парсинг xml-документа, полученного в ответе. Также у меня есть возможность один раз проверить все данные в массиве $ar на корректность, когда я передаю этот массив с помощью $myclass->set_param().
В то же время если я создам несколько классов в предположении, что а) это удобно б) классы можно будет использовать отдельно друг от друга как модули, то у меня появляется необходимость проверки исходных данных на корректность для каждого из этих модулей. Например, модуль, отвечающий за использование курла и отправки запроса на сервер должен получить какие-то данные для этого, а значит должен эти данные проверить-обработать, чтобы вместо например целого числа пользователь не отправил строку. Проверка данных, таким образом, должна производиться в каждом отдельном модуле: модуле отвечающем за создание xml-документа, модуле отвечающем за парсинг xml-документа, модуле отвечающим за curl и т.д. Я же хочу использовать модульность, а модули подразумевают то, что каждый из них проводит свою собственную проверку данных.
Если же забить на модульность и делать один сложный класс, то я просто все данные, полученные от пользователя, сохраню в одну переменную так
И теперь не нужно проводить проверку в каждом модуле, а всё собрать в одну кучу, так как ясно, что весь класс будет иметь дело только с корректными и один раз проверенными данными.
Получилось немного многословно, но хотел подробно описать проблему и хотел бы получить совет, как в таких случаях лучше создавать архитектуру.
Есть задача: получить данные от пользователя, сделать XML-документ, с помощью курла отправить его на сервер, получить в ответ другой xml-документ, распарсить его и вывести результат в браузер, создав для этого пейджинацию.
Для удобства использования, я считаю, что надо поместить всю логику в один класс. Так просто, т.к. не нужно подключать отдельные классы, а нужно подключить только отдельный файл пускай и с большим классом.
PHP:
$ar=array(); //массив с опциями, полученный от пользователя
$myclass=new myclass();
$myclass->set_param($ar); //в объект класса добавляю исходные данные
$result=$myclass->execute(); //вся логика скрыта внутри класса
По хорошему так делать не надо, т.к. это будет очень сложный класс. Преимущества помещения всей логики в один класс я вижу в том, что мне нет необходимости использовать отдельно модули, отвечающие за а) создание xml-документа, б) отправки запроса с помощью curl, в) парсинг xml-документа, полученного в ответе. Также у меня есть возможность один раз проверить все данные в массиве $ar на корректность, когда я передаю этот массив с помощью $myclass->set_param().
В то же время если я создам несколько классов в предположении, что а) это удобно б) классы можно будет использовать отдельно друг от друга как модули, то у меня появляется необходимость проверки исходных данных на корректность для каждого из этих модулей. Например, модуль, отвечающий за использование курла и отправки запроса на сервер должен получить какие-то данные для этого, а значит должен эти данные проверить-обработать, чтобы вместо например целого числа пользователь не отправил строку. Проверка данных, таким образом, должна производиться в каждом отдельном модуле: модуле отвечающем за создание xml-документа, модуле отвечающем за парсинг xml-документа, модуле отвечающим за curl и т.д. Я же хочу использовать модульность, а модули подразумевают то, что каждый из них проводит свою собственную проверку данных.
Если же забить на модульность и делать один сложный класс, то я просто все данные, полученные от пользователя, сохраню в одну переменную так
PHP:
class myclass
{
$ar=array(); //здесь хранятся один раз проверенные данные
function set_param($ar)
{
//здесь проверка всех данных из $ar
$this->ar=$ar;
}
}
Получилось немного многословно, но хотел подробно описать проблему и хотел бы получить совет, как в таких случаях лучше создавать архитектуру.