librenms/html/includes/object-cache.inc.php
Tony Murray b8e9b2d917 Implement an autoloader (#4140)
* Implement an autoloader

When cleaning up classes for psr2, things got a bit unwieldy, so I implemented a class autoloader.
I created a PSR-0 compliant LibreNMS directory and moved all classes there that made sense.
Implemented LibreNMS\ClassLoader which supports adding manual class mappings

This reduces the file includes needed and only loads classes when needed.

* Add teh autoloader to graph.php

* Add a small bit of docs
Fix incomplete class in includes/discovery/functions.inc.php
2016-08-21 14:07:14 +01:00

36 lines
1.0 KiB
PHP

<?php
// FIXME queries such as the one below should probably go into index.php?
// FIXME: This appears to keep a complete cache of device details in memory for every page load.
// It would be interesting to know where this is used. It probably should have its own API.
use LibreNMS\ObjectCache;
foreach (dbFetchRows('SELECT * FROM `devices` ORDER BY `hostname`') as $device) {
$cache['devices']['hostname'][$device['hostname']] = $device['device_id'];
$cache['devices']['id'][$device['device_id']] = $device;
$cache['device_types'][$device['type']]++;
}
$devices = new ObjectCache('devices');
$ports = new ObjectCache('ports');
$services = new ObjectCache('services');
if ($devices['down']) {
$devices['bgcolour'] = '#ffcccc';
} else {
$devices['bgcolour'] = 'transparent';
}
if ($ports['down']) {
$ports['bgcolour'] = '#ffcccc';
} else {
$ports['bgcolour'] = '#e5e5e5';
}
if ($services['down']) {
$services['bgcolour'] = '#ffcccc';
} else {
$services['bgcolour'] = 'transparent';
}