Subsystem.php (1000B)
1 <?php 2 3 namespace Ssh; 4 5 use RuntimeException; 6 7 /** 8 * Abstract class for the SSH subsystems as Sftp and Publickey 9 * 10 * @author Antoine Hérault <antoine.herault@gmail.com> 11 */ 12 abstract class Subsystem extends AbstractResourceHolder 13 { 14 protected $session; 15 protected $resource; 16 17 /** 18 * Constructor 19 * 20 * @param mixed $session A Session instance or a SSH session resource 21 */ 22 public function __construct($session) 23 { 24 if (!$session instanceof Session && !is_resource($session)) { 25 throw new \InvalidArgumentException('The session must be either a Session instance or a SSH session resource.'); 26 } 27 28 $this->session = $session; 29 } 30 31 /** 32 * Returns the SSH session resource 33 * 34 * @return resource 35 */ 36 public function getSessionResource() 37 { 38 if ($this->session instanceof Session) { 39 return $this->session->getResource(); 40 } else { 41 return $this->session; 42 } 43 } 44 }