Метка работоспособности для NetCat 4.72 и особенности работы error_reporting

Если вы занимаетесь сложными проектами, то с определенного момента вы наверняка столкнетесь с необходимостью мониторинга сайта. Многие знают про замечательный pind-admin.ru, который неусыпно следит за работой ваших сайтов, но не многие знают как его правильно настроить.

По-умолчанию pind-admin проверяет работоспособность сайта путем отправки head-запроса. Если ваш сервер завис совсем, вы получите сообщение об ошибке. Однако если, например, упал сервис MySQL, то хоть Apache и выдаст в ответ ошибку php, а head-запрос при этом вернет положительный ответ. Вы не получите сообщение об ошибке. Поэтому, как минимум, следует использовать GET-запрос, причем желательно искать в нем в ответе сервера определенный осмысленный текст.

До недавнего времени мы использовали поиск тега , что довольно логично, но не спасает от ошибок MySQL, например.

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

И тут выяснилось несколько необычных свойств шаблонизатора NetCat версии 4.72:

  • код внутри макетов и компонентов NetCat скорее всего генерит ошибки уровня Notice. Ошибки возникают при использовании любых хэш-массивов (если они оказываются пустыми), а также неопределенных переменных. В общем-то это логично.
  • настройка error_reporting в vars.inc.php работает ммм... не знаю как, я увидел ее работу только на Главной странице сайта, на всех остальных, даже на /index/ эта настройка никак не влияет на поведение сайта.

Итак, сухой остаток. Метка работоспособности ставится в корневой шаблон дизайна вот так:

</body>
</html>

";
// Finar: детектор ошибок для мониторинга работоспособности сайта
$errorDetector = error_get_last();
if (!is_array($errorDetector) || $errorDetector[type] == 8 ) echo "<!--phphnoerrors-->";
echo "

но она не учитывает ошибки уровня Notice, поскольку шаблонизатор NetCat генерит такие ошибки сам по себе.

Update:

Установка на версию 5.x.x:
</body>
</html>

<?
// Finar: детектор ошибок для мониторинга работоспособности сайта
$errorDetector = error_get_last();
if (!is_array($errorDetector) || $errorDetector[type] == 8 ) echo "<!--phphnoerrors-->";
?>

Блог

WebSocket: интеграция с NetCat

Хотите добавить на сайт под управлением CMS NetCat поддержку технологии WebSocket? Обращайтесь к нам! Посетители сайта смогут получать мгновенные уведомления о событиях сайта без обращений к серверу и перезагрузок страниц. Превратите свой сайт в интерактивную площадку, работающую в реальном времени!

далее

Поломка админки NetCat 4.7 в Google Chrome и Opera

В современных версиях Google Chrome и Opera, вышедших в прошлом месяце, админка CMS NetCat 4.7 и младше вдруг сломалась. Поломка проявляется в том, что в правой части админки перестала показываться нижняя панель редактирования (там, где кнопки Добавить и прочие), а скролл-прокрутка не осуществляется до конца. Работать с сайтом и добавлять новые материалы не представляется возможным.

далее

NetCat: техническая поддержка и доработка сайтов

Мы работаем с CMS NetCat уже больше 10 лет. У нас большой опыт и ответственный подход к делу.

далее

Права Доступа в Компонентах: работают не так, как ожидается; но можно накостылить патч

Если в настройках Раздела или Инфоблока NetCat попробовать дать доступ на изменение объекта ВСЕМ, ничего не получится. Просмотр и Добавление работают одним образом, а Изменение, Включение и Удаление -- другим.

далее

Весь блог тут