[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Автоматический вызов метода, при вызове другого
Страницы: 1, 2
bestxp
AllesKlar
а зачем его вообще на счет этого спрашивать?
ты должен сделать правильно и надежно, а не городить огород,
и да надо делать проверки перед вскармливанием simple_xml
chee
можно повесить обработчик ошибок и в нем кидать эксепшен, а потом перехватывать.

set_error_handler(function ($error, $message) {
throw new Exception($message, $error);
});

try {
simplexml_load_string('s');
} catch (Exception $ex) {
die($ex->getMessage());
}

Это рабочий код.

Но как заметили выше, ситуацию с фейлом по запросу нужно отлавливать выше так как это ИСКЛЮЧИТЕЛЬНАЯ ситуация, потому лучше при плохом исходе кидать исключения, которое уже можно перехватить.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
AllesKlar
bestxp
Цитата
а зачем его вообще на счет этого спрашивать?

Потому что заказчик - это девелоперская фирма.
И потом мой класс будут другие дополнять / изменять.
Колективная работа - это в том числе и забота о тех, кто будет твой код использовать smile.gif

Bolik
Цитата
что может быть проще и эффективнее одного единственного метода загрузки контента через курл и проверки заголовков? все остальное и есть дублирование кода, которое ты хочешь избежать.

Ну, например, когда модуль работает не с нашего сервера, а заказчик покупает его целеком и ставит на свой.
А оно не работает.
Почему?
А у него курла нет.
Те, кто скажут "сам дурак", могут дальше на фрилансе писать плагины к JQuery
А реально будет выглядить так:
Заказчик видит модуль у нас на сервере, покупает. Устанавливает. Не работает. звонит в суппорт. (время-деньги пошло) Суппорт не понимает в чем проблема и передает тикет в суппорт level-2 (программистам, т.е.). Программисты гоняют модуль у нас, все работает, просят доступ к серверу заказчика. Гоняют модуль у него, дебажат, находят место, где вываливается ошибка, что curl_init() вообще ни разу не знакомая серверу функция, сообщают об этом заказчику.
Заказчик говорит, что мы дебилы, а мы, чтобы не выглядить дебилами и не потерять заказчика, устанавливем ему за бесплатно curl
(время-дженьги стоп)
Итого, примерно штук 8 человеко/часов. С учетом ттого, что человеко-час среднему работадателю программистов обходится в 60-70 Евро, то получаем вот из-за такой ерунды 500 евро убытка, которые мне потом при случае вспомнят.

И оно мне надо???


_____________
[продано копирайтерам]
sergeiss
Цитата (AllesKlar @ 20.03.2015 - 23:13)
И оно мне надо???

Напиши в каментах и в доках к модулю, что для его работы нужен курл и "все идут лесом".

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
killer8080
столько проблем из-за предрассудков насчет собак smile.gif
Invis1ble
насколько я понял, ТС разрабатывает клиента под API
в таком случае собаками не решишь проблему распознавания причины ошибки со стороны сервера, а это может быть очень полезно
например, сервер может отдавать различные коды ошибок, может просто лежать и всё это очень неплохо логировать

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

killer8080
Цитата (Invis1ble @ 21.03.2015 - 00:14)
например, сервер может отдавать различные коды ошибок, может просто лежать и всё это очень неплохо логировать

если сервер отдал контент, то что мешает посмотреть заголовки?
Свернутый текст
$xml = @simplexml_load_file('http://phpforum.su/rss/'); 

echo '<pre>';

print_r($http_response_header);
print_r($xml);

echo '</pre>';
Invis1ble
а если не отдал? smile.gif

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

killer8080
Цитата (Invis1ble @ 21.03.2015 - 01:14)
а если не отдал?

под контентом я подразумевал любой ответ сервера, в том числе и с 500-ми ошибками
Но вообще имхо для работы с xnl лучше использовать отдельный класс, а не городить костыли прямо в методах вокруг simplexml.
Invis1ble
Цитата (killer8080 @ 21.03.2015 - 15:23)
под контентом я подразумевал любой ответ сервера, в том числе и с 500-ми ошибками

ну а если сервер лежит, не отвечая?

Цитата (killer8080 @ 21.03.2015 - 15:23)
Но вообще имхо для работы с xnl лучше использовать отдельный класс, а не городить костыли прямо в методах вокруг simplexml.

например, какой класс? впрочем, это дело второстепенное, как мне кажется, отдельный класс или отдельный метод
непонятно, правда, почему ты считаешь это костылем?

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

killer8080
Цитата (Invis1ble @ 21.03.2015 - 16:32)
ну а если сервер лежит, не отвечая?

тогда и кода ошибки нет smile.gif
Цитата (Invis1ble @ 21.03.2015 - 16:32)
например, какой класс? впрочем, это дело второстепенное, как мне кажется, отдельный класс или отдельный метод
непонятно, правда, почему ты считаешь это костылем?

получение и парсинг xml можно выделить как отдельную сущность. Пихать её в метод, значит дублировать код в каждом месте где нужно работать с xml.
костылем я считаю
Цитата
выключить ошибки
вызвать функцию
включить ошибки

собаку для этих целей использовать не только можно, но и нужно smile.gif
Invis1ble
Цитата (killer8080 @ 21.03.2015 - 17:11)
тогда и кода ошибки нет 

а с курлом можно будет понять, почему нет ответа smile.gif

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

killer8080
Цитата (Invis1ble @ 21.03.2015 - 17:16)
а с курлом можно будет понять, почему нет ответа

нет ответа, значит нет соединения smile.gif
В целом согласен, с курлом ошибка будет информативней
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.