for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace Sanchescom\WiFi\System;
/**
* Class AbstractNetwork.
*/
abstract class AbstractNetwork
{
/** @var string */
const WPA2_SECURITY = 'WPA2';
const WPA_SECURITY = 'WPA';
const WEP_SECURITY = 'WEP';
const UNKNOWN_SECURITY = 'Unknown';
public $bssid;
public $ssid;
/** @var int */
public $channel;
/** @var float */
public $quality;
public $dbm;
public $security;
public $securityFlags;
public $frequency;
/** @var bool */
public $connected;
/** @var array */
protected static $securityTypes = [
self::WPA2_SECURITY,
self::WPA_SECURITY,
self::WEP_SECURITY,
];
/** @var Command */
protected $command;
* AbstractNetwork constructor.
*
* @param Command $command
public function __construct(Command $command)
$this->command = $command;
}
* @return string
public function getSecurityType(): string
$securityType = self::UNKNOWN_SECURITY;
foreach (self::$securityTypes as $securityType) {
if (strpos($this->security, $securityType) !== false) {
break;
return $securityType;
public function __toString(): string
return implode('|', [
$this->bssid,
$this->ssid,
$this->quality,
$this->dbm,
$this->security,
$this->securityFlags,
$this->frequency,
var_export($this->connected, true),
]);
* @param string $password
* @param string $device
abstract public function connect(string $password, string $device): void;
abstract public function disconnect(string $device): void;
* @param array $network
* @return AbstractNetwork
abstract public function createFromArray(array $network): self;