PHP code example of meklis / switcher-core

1. Go to this page and download the library: Download meklis/switcher-core library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

meklis / switcher-core example snippets



SwitcherCore\Modules\Helper; 
use SwitcherCore\Switcher\CoreConnector; //Подготавливает объект кора, более удобно
use SwitcherCore\Switcher\Device;
use SwitcherCore\Switcher\PhpCache; //Кеш для кора, или используйте свой, реализовав интерфейс SwitcherCore\Switcher\CacheInterface
 
 $deviceIp = '127.0.0.1';
 $deviceCommunity = 'public';
 $deviceLogin = 'login';
 $devicePassword = 'password';
 
$coreConnector = new CoreConnector(
    //Возвращает путь к встроенному каталогу с конфигурацией
    //При желании можно скопировать конфигурацию с библиотеки (vendor/meklis/switcher-core/configs) и изменять ее
    Helper::getBuildInConfig()    
);
$connector = ($coreConnector)
    //Кеш устанавливать необязательно, но желательно и желательно использовать реализацию с memcache
    ->setCache(new PhpCache());

$core = $connector->init(
    //Метод init возвращает экземпляр класса Device
    Device::init($deviceIp, $deviceCommunity, $deviceLogin, $devicePassword)
        //Установка параметров для подключений, необязательно (в примере указаны дефолтные параметры)
        ->set('consoleConnectionType', Device::CONSOLE_TELNET) 
        ->set('consoleTimeout', 10) 
        ->set('consolePort', 23)
        ->set('snmpRepeats', 3)
        ->set('snmpTimeoutSec', 2)
        ->set('mikrotikApiPort', 8728)
);

//Пример получения данных с модуля 
echo json_encode($core->action('system'), JSON_PRETTY_PRINT);
/*
Модуль system вернет следующий вывод (поля могут изменяться в зависимости от производителя)
 {
    "descr": "RouterOS RB952Ui-5ac2nD",
    "uptime": "8d 9h 55min 32sec",
    "contact": "",
    "name": "G_OfficeMik",
    "location": "",
    "meta": {
        "name": "Mikrotik RB952Ui-5ac2nD",
        "detect": {
            "description": "^RouterOS RB952Ui-5ac2nD$",
            "objid": "^.1.3.6.1.4.1.14988.1$"
        },
        "ports": 0,
        "extra": [],
        "modules": [
            "system",
            "arp_info",
            "arp_ping",
            "interface_vlan_info",
            "dhcp_server_info",
            "lease_info",
            "ctrl_static_arp",
            "ctrl_static_lease"
        ]
    }
}
*/