====== SNMPHelper ======
Являє собою шар абстракції для взаємодії з різноманітними пристроями за допомогою SNMP. Поведінка трішечки керується відповідними опціями SNMP_* в [[alteriniconf|alter.ini]].
Ініціалізація:
$snmp=new SNMPHelper();
Типу робимо walk:
$ip = '192.168.0.151';
$community = 'public';
$oid = '.1.3.6.1.2.1.1.1.0';
$cache = true;
$result = $snmp->walk($ip, $community, $oid, $cache);
Ну або в один рядок, якщо так простіше сприймати:
$result = $snmp->walk('192.168.0.151', 'public', '.1.3.6.1.2.1.1.1.0', true);
І отримуємо в result на вихлопі sysDescr. Оскільки версія хост-системи в нашому прикладі у нас змінюється не щомиті, ми можемо вільно покладатися на кешовані дані. Там де нам потрібно отримувати дані realtime, природно, краще використовувати кеш у false. Але здебільшого на практиці ми робимо періодичні опитування обладнання і хочемо надалі використовувати ці результати десь. Тобто приклад із кешем у true з нашого прикладу є в цьому контексті повністю валідним. Ось ми типу отримали версію системи пристрою, а потім хочемо її десь показати. У такому разі, за наявності кешованих даних наш walk() для цього ж пристрою з цим же OID-ом миттєво поверне ці дані з кешу, не роблячи чергового безглуздого запиту. Якщо ж кеш відсутній або вже протух за часом - він їх запитає, і закешує для своїх наступних викликів на час з опції SNMPCACHE_TIME. Коротше це все просто про швидкодію і юзабіліті.
Типу робимо set:
$ip = '192.168.0.151';
$community = 'private';
$data[] = array(
'oid' => '.1.3.6.1.2.1.1.6.0',
'type' => 's',
'value' => 'some location'
);
$resut = $snmp->set($ip, $community, $data);
І загалом так, це все, що вам у базі потрібно знати про цей клас. Ми ж обіцяли, що все буде до неподобства просто? ;)